You may have the problem of actually giving assignments which are just too simple - so easy they can be effectively Googled - but not at the same time making it clear that this is building to a compound problem that isn't so easily looked up, while building up skills that will make them good at their job.
A simple example: use regex to check to see if an email address might be valid. In theory, this is to help students learn regular expressions, as well as developing their skills of debugging, problem solving, and familiarity with string-handling in their computer language. The problem? Students think the problem is just about checking to see if an email is valid. As a real programmer, you absolutely should not even attempt to build your own solution for this - Google it and find a high-quality implementation suitable for your needs, then conduct your own testing and make sure it works. But your students might only be learning how to copy-paste ineffectively, not testing, altering, or understanding, and they do not learn how to modify the solution to fit custom business rules.
So, in this example I would suggest you twist it. The new problem is "test to see if an email address might be valid, using regex". Encourage them to find a nice regex online if they'd like, or build one on their own if they want extra practice on regex. Now, part 2 of the problem: our business rules only allow certain email addresses in our application. We only want to allow addresses that have a '.edu' extension, and before the @ symbol there must be 3 numbers (of the form: email@example.com).
This is not a complicated problem, but now there are two parts: 1) you need to find or build a regex to check an email, and 2) you need to be able to change it so it supports a non-standard rule that's terribly hard to Google. Hey, if you can find an answer on Google, knock yourself out - cite it so I can see where you found it and you'd still get full credit.
You may even want to state the 'hard' version of the problem first, then note how this is actually a few sets of simple problems combined together - then assign those easy ones right from the book if you like.
This is also a perfect way to then have the small in class problem that ff524 suggested. If they did the problem, then they should have no trouble with a solution to a minorly modified version like "this time, we want 4 numbers and a .co.uk extension - and you can use the solution you turned in to help your memory". Done right, at least some students will hopefully get the idea that it's actually harder to take the shortcuts than it is to genuinely understand the material so they can solve any problem that comes up in the future.
As a closing remark: I tend to try to skip most "try this problem from the book" type of assignments as a student myself, especially in anything programming related, because I find them trivial and unrecognizable compared to the kinds of problems I deal with as an actual real-life professional. So I don't really blame other students for not wanting to do them, either. I try to skew all my programming tasks towards real-world issues, preferably grounded in personal experience or existing applications, but I realize this is not always possible for teachers. Still, a little twist goes a long way!