I think this will be a recurring pattern:
topic = pubsub.Topic('book-process-queue')
if not topic.exists():
topic.create()
subscription = pubsub.Subscription('book-sub', topic)
if not subscription.exists():
subscription.create()
So it might be a good idea to simplify it to:
topic = pubsub.Topic('book-process-queue', auto_create=True)
gcloud-node does something like this already.