ローカル ワークステーションからビルドを送信しようとしていますが、説明のないエラーが発生します。
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_TEMPLATE
cli cloudbuild submit は、経由で提供した場合でもエラーを返します--substitutions
。