【发布时间】:2021-11-11 15:38:54
【问题描述】:
我正在使用在 GCP 上启用的 VM,并希望增加访问令牌时间。默认为 1 小时。
我使用以下命令生成令牌
query = "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"
response = requests.get(query,headers={"Metadata-Flavor": "Google"}).json()
它以以下格式生成令牌,并显示“expires_in”秒。这是令牌过期的剩余时间。
{'access_token': 'ya29.c.Ko8BEAjJKLI1bUQBiIj0zZz5hw3TlLjyCoXxKtyslbEnyRj9eUWO0sVdW3512f64ynOoi6laZNnPV
O23nELV5fYhk2epYodI1kXXXXXXXXXXX', 'expires_in': 3035, 'token_type': 'Bearer'}
如何通过 UI、配置文件或 Python API 增加 expires_in 参数,以使令牌按定义的时间过期?
创建长寿命令牌的目的是因为我正在使用 TPU 启动 API 从 Google VM 启动 TPU,并且 TPU 已打开,并且我的机器学习模型在 TPU 上进行了训练。 ML 模型相当复杂,在许多情况下需要 10 或 20 多个小时。在 TPU 上的计算结束后,我希望 TPU 自行关闭。然后我收到上面的错误,它说它无法验证令牌,因为它已过期。
任何增加令牌到期时间的示例/方法或其他解决此问题的方法。
【问题讨论】:
-
快速回答是您不能通过元数据服务器。但是,还有其他可能的解决方案。您的项目是组织的一部分吗?如果是,请参阅@guillaume 的回答。您真的需要长期 OAuth 令牌吗?使用详细信息编辑您的问题。
标签: oauth google-oauth metadata service-accounts google-apis-explorer