Отсюда ... https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values
Я пытаюсь использовать замены внутри моего cloudbuild.yaml
файла, но почти все мои замены зависят от идентификатора проекта, которым я являюсь развертывание в.
У меня есть файл yaml, подобный этому ...
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${_SERVICE_ACCOUNT}', '--source', '${_SOURCE_REPO}']
substitutions:
_SOURCE_REPO: 'https://source.developers.google.com/projects/$PROJECT_ID/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
_SERVICE_ACCOUNT: 'blah@${PROJECT_ID}.iam.gserviceaccount.com'
И все, что я пытаюсь с заменами (я пробовал оба формата $_FOO
и ${_FOO}
) и в итоге я получаю blah@${PROJECT_ID}.iam.gserviceaccount.com
с текстом ${PROJECT_ID}
, который все еще там, а не с фактическим идентификатором проекта.
Если я переместлю текст на шаг и просто использую его вместо подстановки, то оно работает. Но в идеале я хотел бы использовать этот метод, так как эти значения будут использоваться очень часто, поэтому хотелось бы сохранить повторение. из предложений, упомянутых @ralemos, но, похоже, ничего не работает.
Если я использую этот формат ...
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${SERVICE_ACCOUNT}', '--source', '${SOURCE_REPO}']
options:
env:
SOURCE_REPO: 'https://source.developers.google.com/projects/${PROJECT_ID}/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
SERVICE_ACCOUNT: 'blah@${PROJECT_ID}.iam.gserviceaccount.com
Он жалуется, что строки env недействительны.
Если я использую этот формат ...
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['functions', 'deploy', 'functionName', ...other args... , '--service-account', '${SERVICE_ACCOUNT}', '--source', '${SOURCE_REPO}']
options:
env:
'SOURCE_REPO=https://source.developers.google.com/projects/${PROJECT_ID}/repos/my-repo-id/moveable-aliases/master/paths/functions/src'
'SERVICE_ACCOUNT=blah@${PROJECT_ID}.iam.gserviceaccount.com
Он жалуется, что SERVICE_ACCOUNT
и SOURCE_REPO
не являются допустимыми встроенными заменами.
Если я использую $$SOURCE_REPO
в качестве синтаксис просто заменяет его на $SOURCE_REPO
вместо использования подстановки.
На данный момент кажется, что то, что я пытаюсь сделать, просто невозможно.