たとえば、さまざまなクラウド機能フォルダーを含むプロジェクトフォルダーがあります
Project_Folder
-Cloud-Function-Folder1
-main.py
-requirements.txt
-cloudbuild.yaml
-Cloud-Function-Folder2
-main.py
-requirements.txt
-cloudbuild.yaml
-Cloud-Function-Folder3
-main.py
-requirements.txt
-cloudbuild.yaml
--------- and so on!
今私が今持っているのはです。クラウド機能フォルダーからソース リポジトリにコードを 1 つずつプッシュします (関数フォルダーごとに別のリポジトリ)。そして、クラウドビルドをトリガーしてから関数をデプロイするトリガーが有効になっています。私が持っているcloudbuild.yamlファイルは以下のようなものです..
steps:
- name: 'python:3.7'
entrypoint: 'bash'
args:
- '-c'
- |
pip3 install -r requirements.txt
pytest
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- Function
- --runtime=python37
- --source=.
- --entry-point=function_main
- --trigger-topic=Function
- --region=europe-west3
今、私がやりたいことは、単一のソース リポジトリを作成し、1 つのクラウド関数のコードを変更してそれをプッシュするたびに、それがデプロイされ、残りは以前のように残ることです。
アップデート
今、私は以下のようなことも試しましたが、単一の機能に取り組んでいても、すべての機能を同時に展開します。
Project_Folder
-Cloud-Function-Folder1
-main.py
-requirements.txt
-Cloud-Function-Folder2
-main.py
-requirements.txt
-Cloud-Function-Folder3
-main.py
-requirements.txt
-cloudbuild.yaml
-requirements.txt
cloudbuild.yaml ファイルは次のようになります。
steps:
- name: 'python:3.7'
entrypoint: 'bash'
args:
- '-c'
- |
pip3 install -r requirements.txt
pytest
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- Function1
- --runtime=python37
- --source=./Cloud-Function-Folder1
- --entry-point=function1_main
- --trigger-topic=Function1
- --region=europe-west3
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- Function2
- --runtime=python37
- --source=./Cloud-Function-Folder2
- --entry-point=function2_main
- --trigger-topic=Function2
- --region=europe-west3