【发布时间】:2020-01-03 16:34:48
【问题描述】:
刚刚关注the tutorial available here,一切都清楚了;显然没有任何障碍
配置的运行服务iam:
gcloud beta run services get-iam-policy $CLOUD_RUN_INSTANCE_NAME
返回
bindings:
- members:
- serviceAccount:cloud-run-pubsub-invoker@$PROJECT_NAME.iam.gserviceaccount.com
role: roles/run.invoker
etag: BwWRVC2n5Ek=
version: 1
订阅:
gcloud pubsub subscriptions describe $app_subscription
返回
ackDeadlineSeconds: 10
expirationPolicy:
ttl: 2678400s
messageRetentionDuration: 604800s
name: projects/$PROJECT_NAME/subscriptions/$app_subscription
pushConfig:
oidcToken:
serviceAccountEmail: cloud-run-pubsub-invoker@$PROJECT_NAME.iam.gserviceaccount.com
pushEndpoint: https://$CLOUD_RUN_INSTANCE_NAME-he6agqsita-ew.a.run.app/
但是,该服务不接受来自 pubsub 触发器的任何内容(不断返回 403)。
本教程没有明确告诉人们将此角色添加到服务帐户。但根据经验,运行实例上的add-iam-binding 命令似乎不是正确的步骤
服务帐户令牌创建者也在 pusub 服务帐户上正确设置
这发生在托管上下文中,而不是 gke。运行服务在欧洲
教程中是否缺少它?这是预期的还是我在某处遗漏了什么?
【问题讨论】:
-
您已将
cloud-run-pubsub-invoker@$PROJECT_NAME.iam.gserviceaccount.com添加到 Cloud Run,但 Pub/Sub 使用的是PROJECT_NAME@$PROJECT_NAME.iam.gserviceaccount.com。不同的服务帐号。 -
@JohnHanley 抱歉,不,这是重写/隐藏名称的拼写错误;服务帐户匹配
标签: google-cloud-pubsub google-iam google-cloud-run