我正在尝试使用 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)
google-auth 库提供了各种身份验证方法,请参阅此 文档设置 身份验证。
使用与您的 Google 帐户关联的凭据设置 ADC。 安装并初始化 gcloud CLI 后,使用以下方法配置 ADC:
gcloud auth 应用程序-默认登录
出现登录屏幕。登录后,您的凭据将存储在 ADC 使用的本地凭据文件中。
使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量提供 GCP 项目中凭证 JSON 文件的位置。
有关更多信息,请参阅设置应用程序默认凭据。