У нас есть отдельные проекты GCP для сред "build" и "prod". Я хотел бы использовать Cloud Build для проекта "build" для развертывания функции Cloud в проекте "prod". При соблюдении документации .
В частности, я добавил роль «Разработчик облачных функций» в учетную запись службы сборки в проекте сборки и роль «Пользователь учетной записи службы IAM» в учетную запись PROJECT_ID@appspot.gserviceaccount.com, как указано в документации. и в этот вопрос , при запуске сборки я получаю:
ОШИБКА: (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']
Я могу развернуть свою функцию на prod с помощью gsutilутилита командной строки с моего ноутбука, и я могу использовать мой cloudbuild.yaml для развертывания этой функции в проекте build . Но я не уверен, какие роли мне нужно назначить для каких учетных записей, чтобы позволить проекту сборки развернуть облачную функцию в проекте prod.