В своей работе вы используете этот контейнер google/cloud-sdk
, который является установкой с нуля gcloud
инструмента.Он универсален, без какой-либо настройки.
Когда вы звоните по этому номеру $(gcloud auth print-identity-token)
, вы запрашиваете идентификационный токен учетной записи службы, настроенной в инструменте gcloud
.
Если мы соединим это 2абзацы, вы хотите сгенерировать идентификационный токен из общей / пустой установки инструмента gcloud
.Кстати, вы не указали служебную учетную запись в gcloud
, и ваш токен пуст (как сказал @johnhanley).
Для решения этой проблемы добавьте переменную среды, подобную этой
env:
- GOOGLE_APPLICATION_CREDENTIAL=<path to your credential.json>
Я не знаю, где находится ваша текущая credential.json
вашей рабочей среды.Попробуйте выполнить echo
этой переменной env, чтобы найти ее и правильно переслать в свою работу gcloud
.
Если вы используете вычислительную машину или аналогичную систему, совместимую с сервером метаданных, вы можете получить правильныйтокен с этой командой:
curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=<URL of your service>"
ОБНОВЛЕНИЕ
Попробуйте выполнить свою команду вне контейнера gcloud
.Вот обновление вашей работы
- name: pre-upgrade-job
image: "google/cloud-sdk"
entrypoint: "bash"
args:
- -c
- "curl -s -X GET -H \"Authorization: Bearer $(gcloud auth print-identity-token)\" https://my-cloud-run-endpoint"
Не уверен, что работает.Дайте мне знать