Workflow の環境変数は、デプロイ時に定義できます。たとえば、デプロイ先の環境に応じて動的に構成されるワークフローを作成できます。または、テンプレートとして再利用でき、個別に管理されている環境変数に従って構成できるワークフローを作成することもできます。
環境変数は、実行時にワークフローからアクセスできる任意のキーと値の文字列ペアとして設定されます。Workflows バックエンドに保存され、ワークフロー実行のスコープが設定され、ワークフローの実行中に不変になります。
すべての環境変数はワークフローの関数のデプロイにバインドされています。デプロイを行うときにのみ、環境変数を設定または変更できます。環境変数の作成または変更には、デプロイに成功する必要があります。なんらかの理由でデプロイに失敗すると、環境変数の変更は適用されません。
Google Cloud CLI を使用して、ユーザー定義の環境変数を追加、更新、削除できます。
予約済みの名前
Workflows に定義された組み込み環境変数は予約されているため、設定はできません。
Workflow の環境変数を定義する場合は、以下を使用できません。
キー | 説明 |
---|---|
空白('' ) |
キーは空の文字列にできません。 |
GOOGLE_ |
キーの接頭辞として GOOGLE_ を使用することはできません。 |
WORKFLOWS_ |
キーの接頭辞として WORKFLOWS_ を使用することはできません。 |
環境変数を設定する
ワークフローをデプロイするときに、新しい変数を定義したり、既存の変数を置き換えたりできます。追加の変更を行うには、このドキュメントの環境変数を更新するをご覧ください。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
[ワークフロー] ページで、
[作成] をクリックします。[ワークフローの作成] ページで、該当するフィールドに入力してワークフローの定義を構成します。
[環境変数(オプション)] セクションで、[変数を追加] をクリックします。
[名前 1] フィールドで、変数名を指定します。
[値 1] フィールドで、変数の値を指定します。
別の変数を追加するには、[変数を追加] をクリックします。
[次へ] をクリックします。
ワークフローを定義してからデプロイするには [デプロイ] をクリックします。
gcloud
環境変数を設定するには、--set-env-vars
フラグを使用します。
gcloud workflows deploy WORKFLOW_NAME \ --set-env-vars KEY1=VALUE1
以下を置き換えます。
WORKFLOW_NAME
: ワークフローの ID。KEY1=VALUE1
: 環境変数の名前とその値(例:MONTH=January
)。
Terraform
ワークフローを作成するには、google_workflows_workflow
リソースを使用して、サンプルに示すように main.tf
ファイルを変更します。詳細については、Terraform を使用してワークフローを作成するをご覧ください。
user_env_vars
引数を使用して、環境変数をワークフロー リビジョンに関連付けます。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
複数の環境変数を設定する
複数の環境変数を設定するには、カンマ区切りのリストを使用します。
gcloud workflows deploy WORKFLOW_NAME \ --set-env-vars KEY1=VALUE1,KEY2=VALUE2
カンマをエスケープする
カンマ(,
)は環境変数の区切りに使用されるため、変数値にカンマが含まれている場合は、別の区切り文字(@
など)を指定する必要があります。
gcloud workflows deploy WORKFLOW_NAME \ --set-env-vars ^@^KEY1=VALUE1,VALUE2,VALUE3@KEY2=VALUE2
変数をファイルに格納する
ソース管理などにあるファイルに変数を保存するには、YAML ファイルと --env-vars-file
フラグを使用します。
gcloud workflows deploy WORKFLOW_NAME \ --env-vars-file FILE_PATH
FILE_PATH
は、環境変数の定義を一覧表示するローカル YAML ファイルのパスに置き換えます。変数名と値は文字列にする必要があります。新しい環境変数が追加される前に、既存の環境変数はすべて Workflows によって削除されます。
たとえば、YAML ファイルの内容は次のようになります。
KEY1: "value1" KEY2: "value2"
deploy
コマンドの詳細については、gcloud workflows deploy
をご覧ください。
環境変数にアクセスする
環境変数にアクセスするには、式で sys.get_env()
関数を呼び出し、環境変数の名前をパラメータとして渡します。環境変数の名前は文字列として渡す必要があります。
たとえば、次のワークフローは、環境変数 KEY1
の値を keyValue
というワークフロー変数に割り当て、その値を出力します。
main: steps: - init: assign: - keyValue: ${sys.get_env("KEY1")} - returnResult: return: ${keyValue}
環境変数を更新する
既存のワークフローのユーザー定義の環境変数を更新できます。これは非破壊的なアプローチです。環境変数の変更または追加は行いますが、変数の削除は行いません。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
更新するワークフローの名前をクリックします。
[Workflow の詳細] ページが表示されます。
既存の環境変数を編集するには、次のいずれかを行います。
[詳細] タブをクリックします。
- [環境変数] の横にある アイコンをクリックします。
- 設定を変更します。
- 更新されたワークフローをデプロイするには、[保存] をクリックします。
[
編集] をクリックします。- [環境変数(オプション)] セクションで変更を加えます。
- 更新されたワークフローをデプロイするには、[次へ]、[デプロイ] の順にクリックします。
gcloud
変数を更新するには、--update-env-vars
フラグを使用します。
gcloud workflows deploy WORKFLOW_NAME \ --update-env-vars KEY1=VALUE1
複数の環境変数を更新するには、カンマ区切りのリストを使用します。
gcloud workflows deploy WORKFLOW_NAME \ --update-env-vars KEY1=VALUE1,KEY2=VALUE2
環境変数を削除する
既存のワークフローのユーザー定義の環境変数を削除できます。
Console
Google Cloud コンソールの [ワークフロー] ページに移動します。
更新するワークフローの名前をクリックします。
[Workflow の詳細] ページが表示されます。
既存の環境変数を削除するには、次のいずれかを行います。
[詳細] タブをクリックします。
- 該当する をクリックします。
- 削除する環境変数の横にある アイコンをクリックします。
- 更新されたワークフローをデプロイするには、[保存] をクリックします。
[
編集] をクリックします。- 削除する環境変数の横にある アイコンをクリックします。
- 更新されたワークフローをデプロイするには、[次へ]、[デプロイ] の順にクリックします。
gcloud
環境変数を個別に削除する場合は、--remove-env-vars
フラグを使用します。
gcloud workflows deploy WORKFLOW_NAME \ --remove-env-vars KEY1,KEY2
あるいは、--clear-env-vars
フラグを使用して、以前に設定したすべての環境変数をクリアします。
gcloud workflows deploy WORKFLOW_NAME \ --clear-env-vars
おすすめの方法
明示的に設定していない環境変数には依存したり、それを変更しないことをおすすめします。明示的に設定した環境変数以外の環境変数を変更すると、意図しない結果が生じる可能性があります。
シークレットの管理
環境変数はワークフローの構成に使用できますが、データベースの認証情報や API キーなどのシークレットの格納や使用には適しません。これらの機密性の高い値は、ソースコードや環境変数とは別に保存し、誤ってログに送信されないようにする必要があります。
シークレットを保存する場合は、シークレット管理のベスト プラクティスを確認し、Workflows で Secret Manager を使用する手順に沿って行うことをおすすめします。
命名規則
原則として、環境変数キーは大文字、数字、アンダースコア(_
)のみで構成し、数字で始めないことをおすすめします。他の変数との競合を避けるため、ユーザー定義の環境変数の先頭に一意のキーを付けることをおすすめします。
サイズの制限
ユーザー定義の環境変数は最大 20 個定義できます。各定義文字列(KEY=value
)は 4 KiB に制限されています。