为什么 GCP Cloud Run 在使用 Python pub/sub 库时不使用 Compute Engine SA 进行身份验证?

问题描述 投票:0回答:1

我正在尝试使用 Python 库从云运行将消息发布到 pubsub 主题。我已向 Compute Engine 服务帐户授予 pubsub 管理员角色,并通过 gcloud 命令,我能够将消息发布到 pubsub 主题。但是,如果我尝试使用 python pubsub 库,它会抛出异常并显示消息:

File ./service-account-key.json was not found.

以下是代码:

os.system('gcloud pubsub topics publish pubsub-test1 --message="test" --project=project1')
credentials, project_id = google.auth.default()
publisher_audience = "https://pubsub.googleapis.com/google.pubsub.v1.Publisher"
credentials_pub = credentials.with_claims(audience=publisher_audience)
publisher = pubsub_v1.PublisherClient(credentials=credentials_pub)

参考

python google-cloud-pubsub
1个回答
0
投票

google-auth 库提供了各种身份验证方法,请参阅此 文档设置 身份验证。

使用与您的 Google 帐户关联的凭据设置 ADC。 安装并初始化 gcloud CLI 后,使用以下方法配置 ADC:

gcloud auth 应用程序-默认登录

  • 出现登录屏幕。登录后,您的凭据将存储在 ADC 使用的本地凭据文件中。

  • 使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量提供 GCP 项目中凭证 JSON 文件的位置。

  • 有关更多信息,请参阅设置应用程序默认凭据

© www.soinside.com 2019 - 2024. All rights reserved.