🙌

gcloud CLI でカンマをエスケープする方法

2024/06/28に公開

TL;DR

以下のように、^ で囲った文字列が新しい区切り文字となり、カンマをエスケープできます。

--list-flag=^:^a,b:c,d # => ['a,b', 'c,d']

https://cloud.google.com/sdk/gcloud/reference/topic/escaping

対象読者

  • gcloud CLI を使っている
  • カンマを含む文字列を引数に渡したい

はじめに

こんにちは。クラウドエース バックエンドエンジニアリング部 の伊藝です。

みなさんは、gcloud CLI を使ったことがありますか?

gcloud CLI は、Google Cloud のリソースを管理するためのコマンドラインツールです。

https://cloud.google.com/sdk/docs/install?hl=ja

gcloud CLI で、カンマを含む文字列を引数に渡すと、カンマが区切り文字として認識されてしまいます。

この記事では、gcloud CLI でカンマをエスケープする方法について説明します。

カンマをエスケープする方法

gcloud CLI でカンマをエスケープする方法は、以下の通りです。

^ で囲った文字列が新しい区切り文字となり、カンマをエスケープできます。^:^ だと、: が区切り文字となります。

--list-flag=^:^a,b:c,d # => ['a,b', 'c,d']

https://cloud.google.com/sdk/gcloud/reference/topic/escaping

^:^ 以外にも、^_^^@^ など、^ で囲った文字列を区切り文字として使うことができます。

この方法は、gcloud run deploygcloud builds submit のドキュメントでも案内されており、これらのサブコマンドで環境変数などを設定する際に使うことができます。

https://cloud.google.com/run/docs/configuring/services/environment-variables?hl=ja#escaping

https://cloud.google.com/build/docs/building/build-containers?hl=ja#:~:text=区切り文字に ^--^ を使用して、複数の環境変数をビルドに渡します。引数のエスケープについての詳細は、gcloud topic escaping をご覧ください。

まとめ

gcloud CLI でカンマをエスケープする方法について説明しました。

区切り文字のエラーは、「区切り文字が原因である」とは記載されないことが多いため、エラーの解決がやや難しいです。

gcloud topic の節では、エスケープの情報以外にも、gcloud CLI の全体で共通するような使い方や機能について詳しく説明されているので、確認してみてください。

https://cloud.google.com/sdk/gcloud/reference/topic

Discussion