Google Cloud Run 部署 GitHub Action 教程
1. 项目介绍
deploy-cloudrun
是一个由 Google 提供的 GitHub Action,用于将服务部署到 Google Cloud Run。它支持从容器镜像或源代码部署,并且可以将部署后的服务 URL 作为 GitHub Actions 的输出,以便在后续步骤中使用。
该项目并非 Google 官方支持的产品,也不在 Google Cloud 支持合同的覆盖范围内。如果需要报告错误或请求 Google Cloud 产品的功能,请通过 Google Cloud 支持联系。
2. 项目快速启动
2.1 前提条件
在使用此 GitHub Action 之前,您需要具备以下条件:
- Google Cloud 凭据,授权访问所需的资源。
- 使用 Node 20 或更高版本的 GitHub Actions 运行器。
2.2 快速启动步骤
-
创建 GitHub Actions 工作流文件:
在您的 GitHub 仓库中,创建一个
.github/workflows/deploy.yml
文件,并添加以下内容:name: Deploy to Cloud Run on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest permissions: contents: 'read' id-token: 'write' steps: - name: Checkout code uses: actions/checkout@v4 - name: Authenticate with Google Cloud uses: google-github-actions/auth@v2 with: workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider' service_account: '[email protected]' - name: Deploy to Cloud Run id: deploy uses: google-github-actions/deploy-cloudrun@v2 with: service: 'hello-cloud-run' image: 'gcr.io/cloudrun/hello' - name: Use output run: 'curl "$[[ steps.deploy.outputs.url ]]"
-
配置 Google Cloud 凭据:
确保您已经配置了 Google Cloud 凭据,并将其与 GitHub Actions 工作流中的
google-github-actions/auth
步骤关联。 -
触发部署:
当您将代码推送到
main
分支时,GitHub Actions 将自动触发部署流程,并将服务部署到 Google Cloud Run。
3. 应用案例和最佳实践
3.1 应用案例
- 持续集成与部署 (CI/CD):使用
deploy-cloudrun
GitHub Action 可以轻松实现从代码提交到服务部署的自动化流程。 - 微服务架构:在微服务架构中,每个服务可以独立部署到 Cloud Run,从而实现快速迭代和扩展。
3.2 最佳实践
- 使用环境变量:通过
env_vars
或env_vars_file
输入,您可以轻松管理环境变量,确保不同环境(如开发、测试、生产)的配置一致性。 - 版本控制:使用
suffix
输入为每个部署的修订版本添加后缀,便于跟踪和管理不同版本的部署。 - 安全配置:通过
secrets
输入,您可以将敏感信息(如 API 密钥)安全地传递给 Cloud Run 服务。
4. 典型生态项目
- Google Cloud Build:用于构建容器镜像,并与
deploy-cloudrun
结合使用,实现从代码到部署的完整流程。 - GitHub Actions:作为 CI/CD 平台,与
deploy-cloudrun
无缝集成,提供强大的自动化能力。 - Google Cloud Run:作为无服务器平台,支持快速部署和扩展容器化应用。
通过结合这些生态项目,您可以构建一个高效、可靠的云原生应用部署流程。