Google Cloud Pubsub-Authentifizierungsfehler von App Engine

Es treten Probleme beim Veröffentlichen von Nachrichten in einem Google Cloud PubSub-Thema in Google AppEngine auf. Die Verwendung der Standardanmeldeinformationen der Anwendung funktioniert lokal einwandfrei. Sobald es jedoch in Google AppEngine implementiert ist, wird der folgende Fehler angezeigt:

<HttpError 403 when requesting https://pubsub.googleapis.com/v1/projects/our-project-id/topics/our-topic:publish?alt=json returned "The request cannot be identified with a project. Please pass a valid API key with the request.">

Ich gehe davon aus, dass es das Dienstkonto der App-Engine verwendet, um auf die PubSub-API zuzugreifen. Hier ist der Code, mit dem wir die Anmeldeinformationen erstellt haben.

credentials = GoogleCredentials.get_application_default()
if credentials.create_scoped_required():
   credentials = credentials.create_scoped(['https://www.googleapis.com/auth/pubsub'])

http = httplib2.Http()
credentials.authorize(http)
pubsub_service = build('pubsub', 'v1', http=http)

Der Fehler wird beim Veröffentlichen der eigentlichen Nachricht in PubSub ausgelöst.

pubsub_service.projects().topics().publish(topic="projects/out-project-id/topics/out-topic", body = { 'messages' : [ { 'data': base64.b64encode(request.get_data()) }]}).execute()

Nicht, dass derselbe Ablauf funktioniert, wenn API-Aufrufe an " BigQuery ", es handelt sich also nicht um ein allgemeines Google API-Problem. Es scheint spezifisch für PubSub zu sein ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage