環境変数を使用する

デプロイ時に、Workflows の環境変数を定義できます。たとえば、デプロイ先の環境に応じて動的に構成されるワークフローを作成できます。または、テンプレートとして再利用し、個別に管理される環境変数に従って構成できるワークフローを作成することもできます。

環境変数は、実行時にワークフローからアクセスできる任意のキーと値の文字列ペアとして設定されます。Workflows バックエンドに保存され、ワークフロー実行のスコープが設定され、ワークフローの実行中に不変になります。

すべての環境変数はワークフローの関数のデプロイにバインドされています。デプロイを行うときにのみ、環境変数を設定または変更できます。環境変数を作成または変更するには、デプロイに成功する必要があります。なんらかの理由でデプロイに失敗すると、環境変数の変更は適用されません。

Google Cloud CLI を使用して、ユーザー定義の環境変数を追加、更新、削除できます。

予約済みの名前

Workflows に定義された組み込み環境変数は予約されているため、設定はできません。

Workflows の環境変数を定義する場合は、以下を使用できません。

キー 説明
空白('' キーは空の文字列にできません。
GOOGLE_ キーの接頭辞として GOOGLE_ を使用することはできません。
WORKFLOWS_ キーの接頭辞として WORKFLOWS_ を使用することはできません。

環境変数を設定する

ワークフローをデプロイするときに、新しい変数を定義するか、既存の変数を置き換えることができます。追加の変更を行うには、このドキュメントの環境変数を更新するをご覧ください。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. [ワークフロー] ページで、 [作成] をクリックします。

  3. [ワークフローの作成] ページで、該当するフィールドに入力してワークフロー定義を構成します。

  4. [環境変数(オプション)] セクションで、[変数を追加] をクリックします。

  5. [名前 1] フィールドで、変数名を指定します。

  6. [値 1] フィールドで、変数の値を指定します。

  7. 別の変数を追加するには、[変数を追加] をクリックします。

  8. [Next] をクリックします。

  9. ワークフローを定義してからデプロイするには [デプロイ] をクリックします。

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}

環境変数を更新する

既存のワークフローのユーザー定義の環境変数を更新できます。これは非破壊的なアプローチです。環境変数の変更または追加は行いますが、変数の削除は行いません。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. 更新するワークフローの名前をクリックします。

    [Workflow の詳細] ページが表示されます。

  3. 既存の環境変数を編集するには、次のいずれかを行います。

    • [詳細] タブをクリックします。

      1. [環境変数] の横にある アイコンをクリックします。
      2. 設定を変更します。
      3. 更新されたワークフローをデプロイするには、[保存] をクリックします。
    • [ 編集] をクリックします。

      1. [環境変数(オプション)] セクションで変更を加えます。
      2. 更新されたワークフローをデプロイするには、[次へ]、[デプロイ] の順にクリックします。

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

環境変数を削除する

既存のワークフローのユーザー定義の環境変数は削除できます。

コンソール

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. 更新するワークフローの名前をクリックします。

    [Workflow の詳細] ページが表示されます。

  3. 既存の環境変数を削除するには、次のいずれかを行います。

    • [詳細] タブをクリックします。

      1. 適切な をクリックします。
      2. 削除する環境変数の横にある アイコンをクリックします。
      3. 更新されたワークフローをデプロイするには、[保存] をクリックします。
    • [ 編集] をクリックします。

      1. 削除する環境変数の横にある アイコンをクリックします。
      2. 更新されたワークフローをデプロイするには、[次へ]、[デプロイ] の順にクリックします。

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 に制限されています。

次のステップ