Я создал простую приложение python для запуска в Google App Engine. Код:Google App Engine - ошибка аутентификации развернутой версии приложения
import webapp2
from oauth2client.contrib.appengine import AppAssertionCredentials
from apiclient.discovery import build
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('BigQuery App')
credentials = AppAssertionCredentials(
'https://www.googleapis.com/auth/sqlservice.admin')
service = discovery.build('bigquery', 'v2', credentials=credentials)
projectId = '<Project-ID>'
query_request_body = {
"query": "SELECT a from Data.test LIMIT 10"
}
request = service.jobs().query(projectId=projectId, body=query_request_body)
response = request.execute()
self.response.write(response)
app = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
Я могу разместить этот код локально (http://localhost:8080) и все работает правильно, но я получаю следующее сообщение об ошибке Ошибка сервера 500 при попытке развернуть его на GAE с помощью:
appcfg.py -A <Project-Id> -V v1 update .
Это ошибка я получаю от Error Report Console:
error: An error occured while connecting to the server: DNS lookup failed for URL:http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/https://www.googleapis.com/auth/sqlservice.admin/?recursive=True
Я считаю, что это проблема аутентификации и убедиться, что счет моей службы был авторизован я прошел через gclo ud для учетных записей служб, и я также установил заданные переменные среды из SDK.
Я пытался обойти это некоторое время, любые указатели очень оценены. Спасибо.
Кроме того, я использую служебную учетную запись Auth, следуя этим документам: https://developers.google.com/identity/protocols/OAuth2ServiceAccount, где говорится, что я не должен запускать AppAsseritionCredenitals локально, что добавляет к моей путанице, потому что на самом деле я не могу без ошибок.
EDIT:
После reuploading и reauthorizing моей учетной записи службы я был в состоянии подключиться к серверу. Тем не менее, ошибка авторизации продолжается с этим:
HttpError: <HttpError 403 when requesting https://www.googleapis.com/bigquery/v2/projects/sqlserver-1384/queries?alt=json returned "Insufficient Permission">