将标头添加到 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 创建订阅推送命令的主要内容,如果未能解决你的问题,请参考以下文章

借助云开发实现小程序订阅消息(模板消息)推送功能

gcloud pubsub 订阅 pull 经常报空消息列表

如何将消息从 GCP 推送订阅传递到本地 PC?

从通过服务工作者创建的数据库中删除过期的推送订阅端点

redis之pub/sub(发布与订阅)

未收到来自 CloudKit 订阅的推送通知