将标头添加到 gcloud 创建订阅推送命令
Posted
技术标签:
【中文标题】将标头添加到 gcloud 创建订阅推送命令【英文标题】:Add header into gcloud create subscription push command 【发布时间】:2020-01-06 01:53:08 【问题描述】:如何在使用 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
--header 不是可识别的参数
【问题讨论】:
【参考方案1】:根据documentation,您可以在使用服务帐户创建 pubsub 订阅时进行身份验证。这可以使用以下标志来实现:
--push-auth-service-account=SERVICE_ACCOUNT_EMAIL
它将使用提供的服务帐户电子邮件作为生成的 Open ID Connect 令牌的身份进行身份验证推送。
【讨论】:
【参考方案2】:最后我用了access_token,gcloud命令不支持header中的参数
--push-endpoint=$MY_API_URL/products-update?access_token=$AUTHORIZED_API_KEY
【讨论】:
如果这对您有用,您能否编辑您的答案并用英文编写,以便其他人也可以使用它?谢谢!【参考方案3】:无法定义特定的标头。您可以使用 @bhito 描述的 pubsub 身份,但不能按预期设置 API KEY。
一种解决方法是使用代理,例如 Endpoint (ESP),它可以识别您的 pubsub 身份并在转发请求时添加您的 API KEY 标头。但这会在您的流程中增加一些延迟(以及额外的成本)
【讨论】:
以上是关于将标头添加到 gcloud 创建订阅推送命令的主要内容,如果未能解决你的问题,请参考以下文章