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 ...