【发布时间】:2019-09-21 11:47:23
【问题描述】:
我正在尝试使用具有域范围委派的服务帐户从 App Engine 使用 Admin SDK API,该服务帐户允许它模拟管理员。
我找到了几个指南,但没有一个能像我预期的那样工作。
以下代码已部署到 App Engine 标准中。
main.py
from flask import Flask
from google.auth import app_engine
import google.auth
try:
import googleclouddebugger
googleclouddebugger.enable()
except ImportError:
pass
SCOPES = ['https://www.googleapis.com/auth/admin.directory.user']
app = Flask(__name__)
@app.route('/')
def hello():
credentials, project = google.auth.default()
appIdentity = app_engine.app_identity
credentials = app_engine.Credentials(scopes=SCOPES)
ret = "Expired:{}".format(credentials.expired)
ret += "\nvalid:{}".format(credentials.valid)
return 'Hello World!\n'+ret
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
app.yaml
runtime: python37
代码credentials = app_engine.Credentials(scopes=SCOPES) 将导致应用程序出现500 错误消息,因为app_engine.app_identity 始终为none。
"Traceback (most recent call last):
File "/env/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/env/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/env/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/env/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/env/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/env/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/srv/main.py", line 52, in hello
credentials = app_engine.Credentials(scopes=SCOPES)
File "/env/lib/python3.7/site-packages/google/auth/app_engine.py", line 107, in __init__
'The App Engine APIs are not available.')
OSError: The App Engine APIs are not available."
你可以看到错误报告The App Engine APIs are not available但是GCP项目中没有同名的API。
在我为项目启用的所有 API 之下,试图实现它的要求。当然,错误还是会出现。
这是一个测试环境,如果有人需要访问,请询问,我很乐意为您提供 GCP 项目的查看权限
感谢您的宝贵时间:)
【问题讨论】:
标签: python-3.x google-app-engine google-cloud-platform google-admin-sdk