使用 gcloud 命令创建推送订阅时如何添加标头授权。我试过这个
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
--标头不是可识别的参数
根据文档,您可以在使用服务帐户创建 pubsub 订阅时进行身份验证。这可以使用以下标志来实现:
--push-auth-service-account=SERVICE_ACCOUNT_EMAIL
它将使用提供的服务帐户电子邮件作为生成的 Open ID Connect 令牌的标识,以进行经过身份验证的推送。
最后我使用了access_token,gcloud 命令不支持标头中的参数
--push-endpoint=${MY_API_URL}/products-update?access_token=${AUTHORIZED_API_KEY}
无法定义特定的标头。您可以按照@bhito所述使用 pubsub 身份,但无法按预期设置 API 密钥。
解决方法是使用代理,如终结点 (ESP(,该代理标识您的 pubsub 身份并在转发请求时添加您的 API KEY 标头。但这会增加您的过程中的一些延迟(以及额外的成本(