我有一個帶有推送訂閱的 Pub/Sub 主題。我希望在向主題發布訊息時呼叫我的 AppEngine 應用程式。
以下是我創建訂閱的方式:
subscriber.create_subscription(
name=subscription_name,
topic=pubsub_topic,
push_config=pubsub_v1.types.PushConfig(
push_endpoint=f'my_gae_app_hostname/api/update',
oidc_token=pubsub_v1.types.PushConfig.OidcToken(
service_account_email=f"{project_id}@appspot.gserviceaccount.com")))
我的 GAE 應用程式位于 Identity-Aware Proxy (IAP) 之后。沒有 IAP 一切正常。但如果啟用 IAP,則不會呼叫 GAE。日志中沒有任何錯誤。在 Cloud Console 的 Pub/Sub Subscriptions 頁面上,我只能看到有未送達的訊息(在概覽圖上)。

IAP 有一個用于訂閱的 GAE 默認帳戶的主體 (service_account_email)
我授予 Pub/Sub SA 具有 iam.serviceAccountTokenCreator 角色(盡管根據檔案不再需要它):
gcloud projects add-iam-policy-binding $PROJECT_ID
--member="serviceAccount:[email protected]"
--role=roles/iam.serviceAccountTokenCreator
我也嘗試創建一個單獨的 SA(如this answer中所建議),但沒有幫助。
uj5u.com熱心網友回復:
您必須指定正確的受眾。當您使用 App Engine 和 IAP 時,受眾是不尋常的。我寫了一篇文章,您可以在其中找到要設定的正確值。
為了加快您的搜索速度,這里最重要的資訊:
- 觀眾有這種模式
<PROJECT_NUMBER>-<HASH>.apps.googleusercontent.com - 受眾是 IAP 客戶端 ID。您可以通過轉到
API & Services并選擇來找到它Credentials。查看OAuth 2.0 client IDs并查找IAP-App-Engine-app行并復制Client ID
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/436458.html
下一篇:GCP-無法訪問資料存盤區
