有没有人知道,我如何在运行时访问正在运行我的云运行服务的服务帐户的电子邮件地址?
在将服务部署到gcloud时,我使用特定的服务帐户来运行该服务。在运行时,我需要这个服务帐户的电子邮件/ID,以便使用IAMCredentialsService进行blob签名。
是否有可能以某种方式获得服务帐户ID ?我手头的ComputeCredential对象不提供此信息。现在我必须设置一个包含服务帐户电子邮件地址的环境变量,我可以在运行时在服务中使用它。
在您的云运行容器中,您需要访问这个URL(一个GET)
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email
Metadata-Flavor: Google
如果您在获取值方面有困难,请提供您的语言,我将看看是否可以为您提供代码示例。
参见文档https://cloud.google.com/run/docs/reference/container-contract#metadata-server
容器实例元数据服务器
Cloud Run容器实例公开了一个元数据服务器,您可以使用它来检索有关容器实例的详细信息,例如项目ID、区域、实例ID或服务帐户。它还可以用于为运行时服务帐户生成令牌。
您可以使用简单的HTTP请求从元数据服务器访问具有
Metadata-Flavor: Google
头的http://metadata.google.internal/
端点:不需要客户端库。有关更多信息,请参见获取元数据。