У нас есть отдельные проекты GCP для сред "build" и "prod". Я хотел бы использовать Cloud Build для проекта «build», чтобы развернуть облачную функцию в проекте «prod». При следовании документации а>.
В частности, я добавил роль «Разработчик облачных функций» в учетную запись службы сборки в проекте сборки и роль «Пользователь учетной записи службы IAM» в учетную запись [email protected], как указано в документации и в этот вопрос, при запуске сборки я получаю:
ОШИБКА: (gcloud.functions.deploy) ResponseError: status = [403], code = [Forbidden], message = [У вызывающего абонента нет разрешения]
Упрощенный пример моего cloudbuild.yaml:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['source', 'repos', 'clone', 'a_mirrored_repo', '--project=build-xxxx']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['functions', 'deploy', 'some_function', '--trigger-http', '--runtime', 'python37', '--project', 'prod-yyyy']
Я могу развернуть свой fucntion на prod с помощью утилиты командной строки gsutil со своего ноутбука, и я могу использовать свой cloudbuild.yaml для развертывания этой функции в проекте build. Но я не уверен, какие роли мне нужно назначить для каких учетных записей, чтобы проект сборки мог развернуть облачную функцию в проекте prod.