首页 > 解决方案 > 我正在尝试使用谷歌服务帐户在 GitLab 中自动化邮递员收集。如何验证服务帐户并发送请求?

问题描述

背景:我有一个可以使用 Postman 发布到的 Google 发布/订阅主题。我想将此邮递员集合放入 GitLab 并使用 gcloud 服务帐户运行集合而无需任何人工干预(例如,必须生成不记名令牌并复制到邮递员集合中)。

问题:我的开发人员为有权向我的主题发布消息的服务帐户创建并给了我一个 .JSON 密钥文件(下面的屏幕截图)。

在此处输入图像描述

我遇到了一个障碍,我不知道如何将不记名令牌从 bash 传递到我的收藏中。这是我在 GitLab 中的 .yaml 文件到目前为止的样子:

stages:
    - test

postman_tests:
    stage: test
    image: 
        name: postman/newman_alpine33
        entrypoint: [""]
    script:
        - newman --version
        - npm config set unsafe-perm true
        - GOOGLE_APPLICATION_CREDENTIALS=~/path-to-my-serviceaccount-key.json gcloud auth application-default print-access-token
        - newman run name-of-my-collection.json -e name-of-my-postman-environment.json

打印出GOOGLE_APPLICATION_CREDENTIALS=~/path-to-my-serviceaccount-key.json gcloud auth application-default print-access-token一个令牌,但我不知道如何将它传递给集合。我这样做对吗?

标签: gitlabpostmangcloudgoogle-cloud-pubsubservice-accounts

解决方案


我认为您可以使用以下代码:

gcloud auth activate-service-account --key-file=KEY_FILE

之后,您可以使用以下方法打印您的身份令牌:

gcloud auth print-identity-token 

之后将其作为身份验证标头传递:

curl -H "Authorization: bearer $(gcloud auth print-identity-token)" <your usual curl params>

希望这可以帮助。

  1. gcloud auth 激活服务帐户

推荐阅读