如何获取 Google Vertex AI 服务的授权令牌?

San*_*ool 9 oauth-2.0 google-oauth google-cloud-platform google-cloud-vertex-ai

我正在尝试通过 REST 调用 Google 的 Vertex AI API,如下所示:

https://us-central1-aiplatform.googleapis.com/v1/projects/...

我无法弄清楚从哪里获取“访问令牌”:

-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
Run Code Online (Sandbox Code Playgroud)

我能够从 Google CLI 生成一个短期 OAUth,但我想生成一个长期 OAUth。我尝试了以下方法,所有这些都返回 401 错误:

  • API密钥

  • 服务帐号

我只是需要这个来进行测试。有没有办法让我轻松做到这一点?

使用 Google CLI,但这是一个短期解决方案。令牌在 30 分钟后过期。

NoC*_*ine 1

只能通过REST API(请参阅文档)执行此操作,并满足以下要求

默认情况下,最大令牌生命周期为 1 小时(3,600 秒)。要将这些令牌的最大生命周期延长至12 小时(43,200 秒),请将服务帐户添加到包含constraints/iam.allowServiceAccountCredentialLifetimeExtension 列表约束的组织策略中。

要使用 REST API,您需要执行 POST 方法来

https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateAccessToken

与身体

{
  "scope": [
    "https://www.googleapis.com/auth/cloud-platform"
  ],
  "lifetime": "LIFETIME"
}
Run Code Online (Sandbox Code Playgroud)

在哪里

LIFETIME:访问令牌过期之前的时间量(以秒为单位)。例如,300秒

PRIV_SA:为其创建短期令牌的特权服务帐户的电子邮件地址。

您当前的方法是通过 gcloud CLI。根据文件

Google Cloud CLI 不支持设置令牌的生命周期

这意味着您受到设计为较短的默认时间限制的限制(访问令牌称为短期凭证