cloudbuil.yaml не отменяет маршалинг при использовании значения в кодировке base64 для триггера сборки

На моем cloudbuild.yaml определение, я имел обыкновение иметь secrets раздел, чтобы получить значения среды из Google KMS. secretEnv поля имели ключи, сопоставленные с "зашифрованными + base64-закодированными" значениями:

...

secrets:
- kmsKeyName: <API_PATH>
  secretEnv:
    <KEY>: <ENCRYPTED+BASE64>

Я попытался поместить это значение вместо замены, которая заменяется при использовании триггера сборки:

...

secrets:
- kmsKeyName: <API_PATH>
  secretEnv:
    <KEY>: ${_VALUE}

После этого я намерен сохранить файл универсальным.

Тем не менее, процесс сборки продолжает сбой с сообщением не удалось, демаршаллинг конфигурации сборки cloudbuild.yaml: недопустимые данные base64 на входном байте 0. Я проверил несколько раз, и значение base64 не было скопировано неправильно в подстановку на триггере.

Заранее спасибо.

2 ответа

https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values

После прочтения Using user-defined substitutions Раздел внимательно, я видел, что замены ограничены до 100 символов. Моя была длинной строкой из 253 символов.

Мне удалось воспроизвести ошибку, похожую на вашу (именно эта: "Не удалось запустить сборку: сбой демаршаллирования конфигурации сборки cloudbuild.yaml: json: не удалось отменить преобразование строки в значение Go типа map[string]json.RawMessage, это потому, что при использовании "). Но это было только тогда, когда моя переменная была чем-то вроде "name: content" вместо "name: content". Обратите внимание на пустое пространство, так важно.

Затем, возвращаясь к вашей точке зрения... пользовательские замены ограничены 255 символами (да, документы в настоящее время неверны, и об этом сообщалось). Но, например, если вы используете что-то вроде:

substitutions:
    variable_name: cool_really_long_content_but_still_no_255_chars

И тогда вы делаете это:

steps:
- name: "gcr.io/cloud-builders/docker"
  args: ["build", "-t", "gcr.io/$PROJECT_ID/$cool_really_long_content_but_still_no_255_chars", "."]

По-прежнему произойдет сбой, если "gcr.io/$PROJECT_ID/$cool_really_long_content_but_still_no_255_chars" на самом деле больше 255 символов, даже если ваш действительно длинный контент все еще не 255 символов. И эта ошибка появится в "Сведения о сборке"> "Журналы" вместо того, чтобы быть всплывающим окном, которое вы видите, когда нажимаете "Запустить триггер" в разделе "Построение триггеров" в Google Cloud Build, где и отображается тип сообщаемой ошибки, так как в этом случае регистрируется журнал. отображаются отключены в разделе Сведения о сборке.

Другие вопросы по тегам