我在this GitHub issue上的一条 comments 中发现了这一点.他们的 comments 是针对 node 函数的.下面我提供的代码是针对Python的,但对于所有这些代码都是相同的.
您需要一个服务帐户json密钥和使用它的YAML--仅此而已!
Service Account个
- 通过GCP控制台在项目中创建一个service account
- 授予它
Cloud Functions Developer
和Service Account User
权限(source)
- 点击进入服务帐户-&>密钥-&>添加密钥-&>创建JSON密钥
- 复制JSON
- 现在转到您的GitHub个回购设置-&>"秘密和变量"(边栏)-&>操作
- 点击"新建储存库密码"
- 名称:
GCP_SA_DEPLOY_KEY
(或您想要的任何名称,在下面的YAML中)
- 秘诀:粘贴JSON服务帐户密钥
GitHub Action个
在你的回购中创建.github/workflows/deploy-python-src.yml
(你想怎么命名都行).
更新以下代码中的Deploy命令(如果需要帮助解决此问题,请询问ChatGPT).在测试操作之前,通过在本地运行它来确保它正常工作.
name: Deploy Cloud Functions
run-name: 🚀 ${{ github.actor }} is deploying all cloud functions
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ls
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GCP_SA_DEPLOY_KEY }}'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v1'
with:
version: '>= 363.0.0'
- name: 'Use gcloud CLI'
run: 'gcloud info'
- name: 'Deploy to gen2 cloud function'
run: |
gcloud functions deploy <cloud-function-name> \
--gen2 \
--region=us-east1 \
--runtime=python310 \
--source=<source-folder-in-repo> \
--entry-point=<function-in-main-file> \
--trigger-topic=<topic-if-pub-sub>
⚠️Notes⚠️个