将 header 添加到 gcloud create subscription push 命令中

Add header into gcloud create subscription push command

如何在使用 gcloud 命令创建推送订阅时添加 header 授权。我试过这个

if [ $(gcloud pubsub subscriptions list --filter="name: subscriptions/${ENVIRONMENT_NAME}-my-subscription" 2>/dev/null | wc -l) = 0 ]; then
          gcloud pubsub subscriptions create ${ENVIRONMENT_NAME}-my-subscription \
            --topic ${TOPIC_PRODUCT_UPDATE} \
            --push-endpoint=${MY_API_URL}/products-update \
            --header=`Authorization: Bearer ${AUTHORIZED_API_KEY}`;
        fi

--header 不是可识别的参数

根据 documentation,您可以在使用服务帐户创建 pubsub 订阅时进行身份验证。这可以使用以下标志来实现:

--push-auth-service-account=SERVICE_ACCOUNT_EMAIL

这将使用提供的服务帐户电子邮件作为生成的 Open ID Connect 令牌的身份以进行身份​​验证推送。

最后我用了access_token,gcloud命令不支持header中的参数

--push-endpoint=${MY_API_URL}/products-update?access_token=${AUTHORIZED_API_KEY}

无法定义特定的 header。您可以按照@bhito 的描述使用 pubsub 身份,但不能按预期设置 API KEY。

解决方法是使用代理,例如 Endpoint (ESP),它可以识别您的 pubsub 身份并在转发请求时添加您的 API KEY header。但这会在您的流程中增加一些延迟(和额外成本)