Die*_*roz 4 python google-cloud-functions
有没有办法以编程方式从云功能获取运行时服务帐户的电子邮件?
我知道我可以“猜测”默认的 App Engine 帐户(因为它始终是 <project-id>@appspot.gserviceaccount.com),但这不是我想要的。
我期望有一些环境变量或包含此信息的内容,但我找不到任何内容。
对于较旧的运行时(Node.js 8、Python 3.7 和 Go 1.11),您可以使用FUNCTION_IDENTITY环境变量,如此处所述。
Python 中的示例:
import os
service_account_email = os.environ.get('FUNCTION_IDENTITY')
Run Code Online (Sandbox Code Playgroud)
对于较新的运行时,您需要查询元数据服务器,如下例所示:
import requests
def query_metadata(entry):
response = requests.get('http://metadata.google.internal/computeMetadata/v1/' + entry, headers={'Metadata-Flavor': 'Google'})
return response.content.decode("utf-8")
service_account_email = query_metadata('instance/service-accounts/default/email')
Run Code Online (Sandbox Code Playgroud)
您还可以使用以下方法编写支持两种运行时(较旧和较新)的函数:
service_account_email = os.environ.get('FUNCTION_IDENTITY') or query_metadata('instance/service-accounts/default/email')
Run Code Online (Sandbox Code Playgroud)
有关可用于查询信息的元数据端点的列表,请查看此处。
| 归档时间: |
|
| 查看次数: |
1415 次 |
| 最近记录: |