将 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。但这会在您的流程中增加一些延迟(和额外成本)
如何在使用 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。但这会在您的流程中增加一些延迟(和额外成本)