You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为CloudRun上的FastAPI应用配置Pub/Sub服务账号认证

Cloud Run上FastAPI应用配置Pub/Sub发布认证步骤
  • 移除本地硬编码凭证配置
    直接删除代码中设置GOOGLE_APPLICATION_CREDENTIALS的相关代码,Cloud Run会自动为服务挂载默认服务账号的凭证,无需依赖本地JSON密钥文件。

  • 为Cloud Run服务的默认服务账号添加Pub/Sub发布权限

    1. 找到你的Cloud Run服务使用的默认服务账号,格式通常为[项目编号]-compute@developer.gserviceaccount.com
    2. 执行以下gcloud命令为该账号添加roles/pubsub.publisher角色:
      gcloud projects add-iam-policy-binding 你的项目ID \
        --member="serviceAccount:你的服务账号邮箱" \
        --role="roles/pubsub.publisher"
      

    也可以直接在Google Cloud控制台的IAM页面手动添加该角色。

  • 适配Cloud Run环境的Pub/Sub发布代码(结合FastAPI)
    简化后的代码示例,客户端库会自动读取环境中的凭证:

    from fastapi import FastAPI
    from google.cloud import pubsub_v1
    import os
    
    app = FastAPI()
    # 初始化发布客户端
    publisher = pubsub_v1.PublisherClient()
    # 通过环境变量获取项目ID,构建Topic路径
    topic_path = publisher.topic_path(os.getenv("PROJECT_ID"), "你的Pub/Sub主题名称")
    
    @app.post("/publish-message")
    async def publish_message(message: str):
        data = message.encode("utf-8")
        # 发布消息
        future = publisher.publish(topic_path, data)
        return {"message_id": future.result()}
    
  • 部署时传入必要环境变量
    部署Cloud Run服务时,通过参数传入项目ID:

    gcloud run deploy 你的服务名称 \
      --image=你的镜像地址 \
      --set-env-vars=PROJECT_ID=你的项目ID \
      --region=你的部署区域
    

内容的提问来源于stack exchange,提问作者Sarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 11:11:05