我尝试通过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" \
我能够从Google CLI生成一个短期的OAUth,但我想生成一个长期的。我尝试了以下方法,所有这些都返回401错误:
- API密钥
- 服务帐户
我只需要这个做测试。有没有办法让我轻松地做到这一点?
使用Google CLI,但这是一个短期解决方案。令牌在30分钟后过期。
3条答案
按热度按时间pkwftd7m1#
您可以仅通过REST API(请参阅文档)执行此操作,并满足以下要求
默认情况下,最大令牌生存期为1小时(3,600秒)。要将这些令牌的最大生存期延长到12小时(43,200秒),请将服务帐户添加到包含constraints/iam.allowServiceAccountCredentialLifetimeExtension列表约束的组织策略中。
要使用REST API,您需要执行一个POST方法,
https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateAccessToken
与身体
哪里
**LIFETIME:**访问令牌到期前的时间,单位为秒。例如,300 s
**PRIV_SA:**创建短期令牌的承载令牌服务账户的邮箱地址。
您当前的方法是通过gcloud CLI。根据文件,
Google Cloud CLI不支持设置令牌的生命周期
这意味着你被限制在默认的时间限制内,这个时间限制被设计得很短(访问令牌被称为短期凭证)
j2cgzkjk2#
我终于能够从NodeJS和正常的服务帐户调用Palm(野牛)。请参见代码:
我还必须为服务帐户添加一些权限,如下所示:
7gcisfzg3#
更新:现在你可以使用google makersuite来生成一个简单的API key see step-by-step,在makersuite中为vertexAI生成API key,但目前还处于封闭测试阶段。然后调用顶点AI API,&key=thatKey
如果没有makersuite,由于您在非GCE服务器上,因此需要模拟服务帐户
您将需要这些配置步骤,以便该链接中的说明起作用:
1.安装Google Cloud SDK
1.创建服务帐户:如果您还没有这样做,并给予必要的权限。
1.获取服务帐户密钥文件。
1.使用“gcloud auth activate-service-account --key-file=[PATH_TO_KEY_FILE]”设置身份验证
1.通过将GOOGLE_APPLICATION_CREDENTIALS环境变量设置为服务帐户密钥文件的路径来模拟服务帐户。此步骤对于要与服务帐户关联的API调用至关重要。
1.生成(短期)访问令牌,并根据需要重新生成,因为您现在已经安装了密钥文件。