変数・シークレット
変数・シークレットは、環境ごとに値を保存して、複数のアクションの設定で使い回せる機能です。
変数・シークレットは、名前に vars
および secrets
と言う接頭辞をつける形で、アクションのパラメーター同様、アクションの設定内で使用できます。また、HTTP APIの共通ヘッダー、gRPCの共通メタデータでも同様の形式で使用できます。
例えば、 API_TOKEN
シークレットを登録すると、HTTP APIのヘッダーの値などに {{ secrets.API_TOKEN }}
と設定することで参照できます。
また、登録した変数は、アクションの加工スクリプトおよびビューのコード内で、BaseMachinaContextを経由して値を取得できます。 シークレットはアクション実行時のみ使用可能で、加工スクリプトおよびビューのコード内では使用できません。 詳細については、アクションの結果の加工に使える値と、ビューのuseBaseMachinaContextのドキュメントを参照ください。
変数とシークレットの違いについて
変数とシークレットの機能上の違いは、値の暗号化の有無です。
変数は、値が平文で保存され、その内容を変数・シークレット設定画面上で確認できます。
シークレットは、値が暗号化したうえで保存され、アクションの実行時のみに復号して使用されます。保存した後は、内容を変数・シークレット設定画面上で確認できません。
変数・シークレットの作成方法
変数・シークレットの作成は、プロジェクト設定画面の "変数・シークレット" 設定から行なえます。
変数・シークレットの保存先は、現在選択中の環境となります。アクションの実行時に環境別の値を使用するには、それぞれの環境に同名の変数・シークレットを作成してください。
変数を作成する
変数・シークレット設定画面から変数の追加ボタンをクリックします。
変数の名前と、値を入力して保存します。保存すると、名前に含まれる半角英字は自動的に大文字に変換されます。
シークレットを作成する
変数・シークレット設定画面からシークレットの追加ボタンをクリックします。
シークレットの名前と、値を入力して保存します。変数同様、保存すると、名前に含まれる半角英字は自動的に大文字に変換されます。
変数・シークレットの編集、削除
変数・シークレットの編集、削除は、設定画面に表示される一覧の行の右端の3点リーダから行なえます。
変数・シークレットの使用方法
変数・シークレットは、アクションの設定内でパラメーターを使用できる箇所および、HTTP APIの共通ヘッダー、gRPCの共通メタデータの設定内で、パラメーターと同様の形式で使用できます。
書式は以下のとおりです。
- 変数:
{{ vars.変数名 }}
- シークレット:
{{ secrets.シークレット名 }}
上記の 変数名
、 シークレット名
の部分を実際の名前に置き換えて使用してください。
指定された変数、シークレットが現在使用中の環境に存在しなかった場合、アクションの実行に失敗します。
HTTP APIアクションの例
変数として USER_EMAIL
を、 シークレットとして USER_PASSWORD
を登録したとき、これらはHTTP APIアクションの設定で下記のように使用できます。
- リクエストタイプ:
form-data
- フォームデータ
- キー:
email
, 値:{{ vars.USER_EMAIL }}
- キー:
password
, 値:{{ secrets.USER_PASSWORD }}
- キー:
form-data以外で使用したい場合も、パラメーターを使用できる箇所で同様の設定が可能です。
変数・シークレットを環境ごとに切り替える
アクション実行時に、変数・シークレットを別環境のものに切り替えたいときは、通常通りメニューバーから使用したい環境を選択してください。
補足
監査ログについて
変数・シークレットは、アクションのパラメーターに設定された引数とは異なり、 監査ログのストリーミング
機能による記録の対象となりません。