

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用使用者定義的變數
<a name="workflows-using-variables"></a>

*使用者定義的變數*是您定義的鍵值對。受管字首清單有兩種類型：
+ **純文字變數**，或只是**變數** – 這些是您在工作流程定義檔案中以純文字定義的鍵值對。
+ **秘密** – 這些是您在 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`區段中定義兩個變數 `VAR2``VAR1`和 。

```
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`，並使用 `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>

下列範例示範如何在 中指定`VAR1`變數`MyBuildAction`，然後使用 在相同的動作中參考它`$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>

下列範例說明如何在 中指定`TIMESTAMP`變數`BuildActionA`、使用 `Outputs` 屬性匯出變數，然後使用 `BuildActionB` 在 中參考變數`${BuildActionA.TIMESTAMP}`。

```
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>

您可以透過兩種方式定義變數：
+ 在工作流程動作的 `Inputs`區段中 – 請參閱[「輸入」區段中的如何定義變數](#workflows-to-define-variable-input)
+ 在工作流程動作的 `Steps`區段中 – 請參閱[「步驟」區段中的如何定義變數](#workflows-to-define-variable-steps)
**注意**  
`Steps` 方法僅適用於 CodeCatalyst 建置、測試和 **GitHub 動作**，因為這些是包含`Steps`區段的唯一動作。

如需範例，請參閱 [變數的範例](workflows-working-with-variables-ex.md)。

如需變數的詳細資訊，請參閱 [在工作流程中使用變數](workflows-working-with-variables.md)。

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

**在「輸入」區段中定義變數 （視覺化編輯器）**

1. 在 https：//[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 ]

**在「輸入」區段中定義變數 (YAML 編輯器）**

1. 開啟 CodeCatalyst 主控台，網址為 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/)。

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 ]

**在「步驟」區段中定義變數 （視覺化編輯器）**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 選擇您的專案。

1. 在導覽窗格中，選擇 **CI/CD**，然後選擇**工作流程**。

1. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

1. 選擇**編輯**。

1. 選擇**視覺化**。

1. 在工作流程圖表中，選擇您要設定變數的動作。

1. 選擇 **Configuration (組態)**。

1. 在 **Shell 命令**或 **GitHub 動作 YAML** 中，以可用者為準，在動作的 中`Steps`明確或隱含地定義變數。
   + 若要明確定義變數，請將其直接包含在 `Steps`區段的 bash 命令中。
   + 若要隱含定義變數，請在動作 `Steps`區段中參考的檔案中指定變數。

     如需範例，請參閱 [變數的範例](workflows-working-with-variables-ex.md)。如需詳細資訊，請參閱 [工作流程 YAML 定義](workflow-reference.md) 以取得 動作。

1. （選用） 選擇**驗證**以在遞交之前驗證工作流程的 YAML 程式碼。

1. 選擇**遞交**，輸入遞交訊息，然後再次選擇**遞交**。

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

**在「步驟」區段中定義變數 (YAML 編輯器）**

1. 在 https：//[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：//[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：//[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. 開啟 CodeCatalyst 主控台，網址為 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/)。

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. 開啟 CodeCatalyst 主控台，網址為 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/)。

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)。