

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ユーザー定義変数の使用
<a name="workflows-using-variables"></a>

*ユーザー定義変数*は、ユーザーが定義するキーと値のペアです。ユーザー定義変数には次の 2 種類があります。
+ **プレーンテキスト変数**、または単に**変数** - これらは、ワークフロー定義ファイル内でプレーンテキストで定義するキーと値のペアです。
+ **シークレット** – これらは、Amazon CodeCatalyst コンソールの別の **[シークレット]** ページで定義するキーと値のペアです。*キー* (名前) は公開ラベルで、*値*には非公開にしたい情報が含まれます。ワークフロー定義ファイルではキーのみを指定します。ワークフロー定義ファイル内でパスワードやその他の機密情報の代わりにシークレットを使用します。

**注記**  
わかりやすくするために、このガイドでは*プレーンテキスト変数*のことを*変数*と呼んでいます。

変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

**Topics**
+ [変数の例](workflows-working-with-variables-ex.md)
+ [変数の定義](workflows-working-with-variables-define-input.md)
+ [シークレットの定義](workflows-working-with-variables-define-secret.md)
+ [他のアクションで使用できるように変数をエクスポートする](workflows-working-with-variables-export-input.md)
+ [変数を定義するアクションでの変数の参照](workflows-working-with-variables-reference-input.md)
+ [別のアクションによって出力された変数の参照](workflows-working-with-variables-reference-action.md)
+ [シークレットの参照](workflows-working-with-variables-reference-secret.md)

# 変数の例
<a name="workflows-working-with-variables-ex"></a>

次の例は、ワークフロー定義ファイルで変数を定義して参照する方法を示したものです。

変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

**Topics**
+ [例: Inputs プロパティを使用した変数の定義](#workflows-working-with-variables-ex-define-inputs)
+ [例: Steps プロパティを使用した変数の定義](#workflows-working-with-variables-ex-define-steps)
+ [例: Outputs プロパティを使用した変数のエクスポート](#workflows-working-with-variables-ex-export-outputs)
+ [例: 同じアクション内に定義されている変数の参照](#workflows-working-with-variables-ex-refer-current)
+ [例: 別のアクションで定義されている変数の参照](#workflows-working-with-variables-ex-refer-other)
+ [例: シークレットの参照](#workflows-working-with-variables-ex-refer-secret)

## 例: Inputs プロパティを使用した変数の定義
<a name="workflows-working-with-variables-ex-define-inputs"></a>

次の例は、`Inputs` セクションで `VAR1` と `VAR2` の 2 つの変数を定義する方法を示したものです。

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
      - Name: VAR1
        Value: "My variable 1"
      - Name: VAR2
        Value: "My variable 2"
```

## 例: Steps プロパティを使用した変数の定義
<a name="workflows-working-with-variables-ex-define-steps"></a>

次の例は、`Steps` セクションで `DATE` 変数を明示的に定義する方法を示したものです。

```
Actions:
  Build:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: DATE=$(date +%m-%d-%y)
```

## 例: Outputs プロパティを使用した変数のエクスポート
<a name="workflows-working-with-variables-ex-export-outputs"></a>

次の例は、`REPOSITORY-URI` と `TIMESTAMP` の 2 つの変数を定義し、`Outputs` セクションを使用してエクスポートする方法を示したものです。

```
Actions:
  Build:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: REPOSITORY-URI
          Value: 111122223333.dkr.ecr.us-east-2.amazonaws.com/codecatalyst-ecs-image-repo
    Configuration:
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - REPOSITORY-URI
        - TIMESTAMP
```

## 例: 同じアクション内に定義されている変数の参照
<a name="workflows-working-with-variables-ex-refer-current"></a>

次の例は、`MyBuildAction` で `VAR1` 変数を指定し、`$VAR1` を使用して同じアクションで参照する方法を示したものです。

```
Actions:
  MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Variables:
        - Name: VAR1
          Value: my-value
    Configuration:
      Steps:
        - Run: $VAR1
```

## 例: 別のアクションで定義されている変数の参照
<a name="workflows-working-with-variables-ex-refer-other"></a>

次の例は、`BuildActionA` で `TIMESTAMP` 変数を指定し、`Outputs` プロパティを使用してそれをエクスポートし、`${BuildActionA.TIMESTAMP}` を使用して `BuildActionB` で参照する方法を示したものです。

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: TIMESTAMP=$(date +%m-%d-%y-%H-%m-%s) 
    Outputs:
      Variables:
        - TIMESTAMP
  BuildActionB:
    Identifier: aws/build@v1
    Configuration:
      Steps:
        - Run: docker build -t my-ecr-repo/image-repo:latest .      
        - Run: docker tag my-ecr-repo/image-repo:${BuildActionA.TIMESTAMP}
        
        # Specifying just '$TIMESTAMP' here will not work 
        # because TIMESTAMP is not a variable 
        # in the BuildActionB action.
```

## 例: シークレットの参照
<a name="workflows-working-with-variables-ex-refer-secret"></a>

次の例は、`my-password` シークレットを参照する方法を示したものです。`my-password` はシークレットのキーです。このシークレットのキーと対応するパスワードの値は、ワークフロー定義ファイルで使用する前に CodeCatalyst コンソールの **[シークレット]** ページで指定する必要があります。詳細については、「[シークレットを使用したデータのマスキング](workflows-secrets.md)」を参照してください。

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1
    Configuration:    
      Steps:
        - Run: curl -u LiJuan:${Secrets.my-password} https://example.com
```

# 変数の定義
<a name="workflows-working-with-variables-define-input"></a>

変数は次の 2 つの方法で定義できます。
+ ワークフローアクションの `Inputs` セクション – 「[「Inputs」セクションで変数を定義するには](#workflows-to-define-variable-input)」を参照
+ ワークフローアクションの `Steps` セクション – 「[「Steps」セクションで変数を定義するには](#workflows-to-define-variable-steps)」を参照
**注記**  
`Steps` メソッドは CodeCatalyst のビルド、テスト、**GitHub Actions** の各アクションでのみ機能します。これらが `Steps` セクションを含む唯一のアクションであるためです。

例については「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。

変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

------
#### [ Visual ]

**「Inputs」セクションで変数を定義するには (ビジュアルエディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[ビジュアル]** を選択します。

1. ワークフロー図で、変数を設定するアクションを選択します。

1. **[入力]** を選択します。

1. **[変数 - 省略可]** で **[変数を追加]** を選択し、次の操作を行います。

   アクションで使用できるようにしたい入力変数を定義する名前と値のペアのシーケンスを指定します。変数名に使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、変数名で特殊文字とスペースを有効にすることはできません。

   変数の詳細 (例を含む) については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------
#### [ YAML ]

**「Inputs」セクションで変数を定義するには (YAML エディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. ワークフローアクションで、次のようなコードを追加します。

   ```
   action-name:
     Inputs:
       Variables:
         - Name: variable-name
           Value: variable-value
   ```

   その他の例については、「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。詳細については、アクションの「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

------
#### [ Visual ]

**「Steps」セクションで変数を定義するには (ビジュアルエディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[ビジュアル]** を選択します。

1. ワークフロー図で、変数を設定するアクションを選択します。

1. **[設定]** を選択します。

1. **Shell コマンド**と **GitHub Actions YAML** のいずれか利用可能な方で、アクションの `Steps` で変数を明示的または暗黙的に定義します。
   + 変数を明示的に定義するには、`Steps` セクションで直接 bash コマンドに変数を含めます。
   + 変数を暗黙的に定義するには、アクションの `Steps` セクションで参照されているファイルで変数を指定します。

     例については「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。詳細については、アクションの「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------
#### [ YAML ]

**「Steps」セクションで変数を定義するには (YAML エディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. ワークフローアクションで、明示的または暗黙的にアクションの `Steps` セクションで変数を定義します。
   + 変数を明示的に定義するには、`Steps` セクションで直接 bash コマンドに変数を含めます。
   + 変数を暗黙的に定義するには、アクションの `Steps` セクションで参照されているファイルで変数を指定します。

     例については「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。詳細については、アクションの「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

# シークレットの定義
<a name="workflows-working-with-variables-define-secret"></a>

CodeCatalyst コンソールの **[シークレット]** ページでシークレットを定義します。詳細については、「[シークレットを使用したデータのマスキング](workflows-secrets.md)」を参照してください。

例えば、次のようなシークレットを定義できます。
+ 名前 (キー): **my-password**
+ 値: **^\$1H3\$1\$1b9**

シークレットを定義したら、ワークフロー定義ファイルでシークレットのキー (**my-password**) を指定できます。これを行う方法の例については、「[例: シークレットの参照](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret)」を参照してください。

# 他のアクションで使用できるように変数をエクスポートする
<a name="workflows-working-with-variables-export-input"></a>

次の手順に従って、アクションから変数をエクスポートし、他のアクションで参照できるようにします。

変数をエクスポートする前に、次の点に注意してください。
+ 変数が定義されているアクション内でのみ変数を参照する必要がある場合は、エクスポートする必要はありません。
+ すべてのアクションが変数のエクスポートをサポートしているわけではありません。アクションがこの機能をサポートしているかどうかを確認するには、以下のビジュアルエディタの手順を実行して、アクションの **[出力]** タブに **[変数]** ボタンが含まれているかどうかを確認します。含まれている場合、変数のエクスポートがサポートされています。
+ GitHub アクションから変数をエクスポートするには、「[GitHub 出力パラメータをエクスポートする](integrations-github-action-export.md)」を参照してください。

変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

**前提条件**  
エクスポートする変数が定義済みであることを確認します。詳細については、「[変数の定義](workflows-working-with-variables-define-input.md)」を参照してください。

------
#### [ Visual ]

**変数をエクスポートするには (ビジュアルエディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[ビジュアル]** を選択します。

1. ワークフロー図で、変数のエクスポート元となるアクションを選択します。

1. **[出力]** を選択します。

1. **[変数 - 省略可]** で **[変数を追加]** を選択し、次の操作を行います。

   アクションをエクスポートする変数の名前を指定します。この変数は、同じアクションの `Inputs` または `Steps` セクションであらかじめ定義されている必要があります。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------
#### [ YAML ]

**変数をエクスポートするには (YAML エディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. 変数のエクスポート元となるアクションで、次のようなコードを追加します。

   ```
   action-name:
     Outputs:
       Variables:
         - Name: variable-name
   ```

   その他の例については、「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

# 変数を定義するアクションでの変数の参照
<a name="workflows-working-with-variables-reference-input"></a>

以下の手順に従って、変数を定義するアクションで変数を参照します。

**注記**  
GitHub アクションによって生成された変数を参照するには、「[GitHub 出力パラメータを参照する](integrations-github-action-referencing.md)」を参照してください。

変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

**前提条件**  
参照する変数が定義済みであることを確認します。詳細については、「[変数の定義](workflows-working-with-variables-define-input.md)」を参照してください。

------
#### [ Visual ]

*利用できません。YAML を選択して YAML の手順を表示してください。*

------
#### [ YAML ]

**変数を定義するアクションで変数を参照するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. 参照する変数を定義する CodeCatalyst アクションで、次の bash 構文を使用して変数を追加します。

   ```
   $variable-name
   ```

   例えば、次のようになります。

   ```
   MyAction:
       Configuration:
         Steps:
           - Run: $variable-name
   ```

   その他の例については、「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」のアクションのリファレンス情報を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

# 別のアクションによって出力された変数の参照
<a name="workflows-working-with-variables-reference-action"></a>

他のアクションによって出力された変数を参照するには、次の手順に従います。

**注記**  
 GitHub アクションから出力された変数を参照するには、「[GitHub 出力パラメータを参照する](integrations-github-action-referencing.md)」を参照してください。

変数の詳細については、「[ワークフローでの変数の使用](workflows-working-with-variables.md)」を参照してください。

**前提条件**  
参照する変数がエクスポート済みであることを確認します。詳細については、「[他のアクションで使用できるように変数をエクスポートする](workflows-working-with-variables-export-input.md)」を参照してください。

------
#### [ Visual ]

*利用できません。[YAML] を選択して YAML の手順を表示してください。*

------
#### [ YAML ]

**別のアクションによって出力された変数を参照するには (YAML エディタ)**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. CodeCatalyst アクションで、次の構文を使用して変数に参照を追加します。

   ```
   ${action-group-name.action-name.variable-name}
   ```

   置き換え前:
   + *action-group-name* は、変数を出力するアクションを含むアクショングループの名前に置き換えます。
**注記**  
アクショングループがない場合、または変数が同じアクショングループ内のアクションによって生成される場合は、*action-group-name* を省略しても構いません。
   + *action-name* は、変数を出力するアクションの名前に置き換えます。
   + *variable-name* は変数の名前に置き換えます。

   例えば、次のようになります。

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: ${MyFirstAction.TIMESTAMP}
   ```

   その他の例については、「[変数の例](workflows-working-with-variables-ex.md)」を参照してください。詳細については、アクションの「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

------

# シークレットの参照
<a name="workflows-working-with-variables-reference-secret"></a>

ワークフロー定義ファイルでシークレットを参照する手順については、「[シークレットの使用](workflows-secrets.using.md)」を参照してください。

例については、「[例: シークレットの参照](workflows-working-with-variables-ex.md#workflows-working-with-variables-ex-refer-secret)」を参照してください。