gcloud ビルドを送信できません

gcloud ビルドを送信できません

ローカル ワークステーションからビルドを送信しようとしていますが、説明のないエラーが発生します。

gcloud builds submit --config cloudbuild.yaml .
Creating temporary tarball archive of 149 file(s) totalling 121.5 MiB before compression.
Uploading tarball of [.] to [gs://***/source/1598211672.63-e76a3db01aa3435885a35cc3b94f0246.tgz]
ERROR: (gcloud.builds.submit) INVALID_ARGUMENT: Request contains an invalid argument.

git push または github PR コメントによってトリガーされた場合、同じことがcloudbuild.yaml正しく実行されます。また、数か月前には、この方法でビルドを送信することができました。

gcloud auth listアクティブなアカウントは、プロジェクト オーナーの役割を必ず持つアカウントであることを示しています。さらに、ストレージ バケット管理、コンピューティング インスタンス管理などの他の gcloud コマンドも実行できます。

答え1

これは意図したとおりに機能しており、文書化されていますここ:

デフォルトでは、置換変数または置換が欠落している場合、ビルドはエラーを返します。ただし、ALLOW_LOOSE オプションを設定すると、このチェックをスキップできます。

トリガーを使用してビルドを呼び出す場合も同様です。

ビルドがトリガーによって呼び出される場合は、デフォルトで ALLOW_LOOSE オプションが設定されます。この場合、置換変数が欠落しているか、置換が欠落していても、ビルドはエラーを返しません。トリガーによって呼び出されるビルドの ALLOW_LOOSE オプションをオーバーライドすることはできません。

答え2

私は追加しました

options:
  substitution_option: 'ALLOW_LOOSE'

cloudbuild.yaml に追加され、ビルドが送信されるようになりました。何らかの理由で、cloudbuild.yaml に次のような置換が定義されている場合:

substitutions:
  _SLACK_MESSAGE_TEMPLATE: 'backend build succeeded"

_SLACK_MESSAGE_TEMPLATEcli cloudbuild submit は、経由で提供した場合でもエラーを返します--substitutions

関連情報