将标头添加到 gcloud 创建订阅推送命令中



使用 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 标头。但这会增加您的过程中的一些延迟(以及额外的成本(

最新更新