У меня есть папка проекта с различными папками облачных функций, например
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!
Теперь то, что у меня есть сейчас. Я отправляю sh код в репозиторий исходного кода один за другим из папки Cloud Fucntions в репозиторий исходного кода (отдельные репозитории для каждой папки функций). И затем он имеет включенный триггер, который запускает сборку облака и затем развертывает функцию. Файл 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
Теперь я хотел бы сделать репо с одним исходным кодом и всякий раз, когда я изменяю код в одной облачной функции. и pu sh тогда только он получает развертывание, а остальные остаются как прежде.
Обновление
Теперь я также попробовал что-то подобное ниже, но он также развернул все функции в в то же время, хотя я работаю над одной функцией.
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