我正在尝试使用具有域范围委托的服务帐户从 App Engine 使用 Admin SDK API,允许它模拟管理员。
我找到了几个指南来这样做,但没有一个像我期望的那样工作。
以下代码部署到 App Engine 标准版中。
主文件
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)
Run Code Online (Sandbox Code Playgroud)
应用程序.yaml
runtime: python37
Run Code Online (Sandbox Code Playgroud)
该代码credentials = app_engine.Credentials(scopes=SCOPES)
将导致应用程序出现 500 错误消息,因为app_engine.app_identity
它始终是none
。
"Traceback …
Run Code Online (Sandbox Code Playgroud) google-app-engine python-3.x google-admin-sdk google-cloud-platform