

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

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

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

*預先定義的變數*是工作流程自動發出的鍵/值對，可供您在工作流程動作中使用。

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

**Topics**
+ [參考預先定義變數的範例](workflows-predefined-examples.md)
+ [參考預先定義的變數](workflows-working-with-variables-reference-output-vars.md)
+ [判斷工作流程發出的預先定義變數](workflows-working-with-variables-determine-output-vars.md)
+ [預先定義的變數清單](workflow-ref-action-variables.md)

# 參考預先定義變數的範例
<a name="workflows-predefined-examples"></a>

下列範例示範如何在工作流程定義檔案中參考預先定義的變數。

如需預先定義變數的詳細資訊，請參閱 [使用預先定義的變數](workflows-using-predefined-variables.md)。

**Topics**
+ [範例：參考「CommitId」預先定義的變數](#workflows-working-with-variables-ex-refer-action)
+ [範例：參考「BranchName」預先定義的變數](#workflows-working-with-variables-ex-branch)

## 範例：參考「CommitId」預先定義的變數
<a name="workflows-working-with-variables-ex-refer-action"></a>

下列範例說明如何在 `MyBuildAction`動作中參考`CommitId`預先定義的變數。`CommitId` 變數由 CodeCatalyst 自動輸出。如需詳細資訊，請參閱[預先定義的變數清單](workflow-ref-action-variables.md)。

雖然範例顯示建置動作中使用的變數，但您可以在任何動作`CommitId`中使用 。

```
MyBuildAction:
    Identifier: aws/build@v1
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      Steps:
      #Build Docker image and tag it with a commit ID
        - Run: docker build -t image-repo/my-docker-image:latest .
        - Run: docker tag image-repo/my-docker-image:${WorkflowSource.CommitId}
```

## 範例：參考「BranchName」預先定義的變數
<a name="workflows-working-with-variables-ex-branch"></a>

下列範例說明如何在 `CDKDeploy`動作中參考`BranchName`預先定義的變數。`BranchName` 變數由 CodeCatalyst 自動輸出。如需詳細資訊，請參閱[預先定義的變數清單](workflow-ref-action-variables.md)。

雖然範例顯示**AWS CDK 部署**動作中使用的變數，但您可以在任何動作`BranchName`中使用 。

```
CDKDeploy:
    Identifier: aws/cdk-deploy@v2
    Inputs:
      Sources:
        - WorkflowSource
    Configuration:
      StackName: app-stack-${WorkflowSource.BranchName}
```

# 參考預先定義的變數
<a name="workflows-working-with-variables-reference-output-vars"></a>

您可以在 Amazon CodeCatalyst 工作流程中的任何動作中參考預先定義的變數。

使用下列指示來參考工作流程中的預先定義變數。

如需預先定義變數的詳細資訊，請參閱 [使用預先定義的變數](workflows-using-predefined-variables.md)。

**先決條件**  
決定您要參考的預先定義變數名稱，例如 `CommitId`。如需詳細資訊，請參閱[判斷工作流程發出的預先定義變數](workflows-working-with-variables-determine-output-vars.md)。

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

*無法使用。選擇 YAML 以檢視 YAML 指示。*

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

**參考預先定義的變數 (YAML 編輯器）**

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

1. 選擇您的專案。

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

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

1. 選擇**編輯**。

1. 選擇 **YAML**。

1. 在 CodeCatalyst 動作中，使用下列語法新增預先定義的變數參考：

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

   取代：
   + *action-group-name* 與動作群組的名稱。
**注意**  
如果沒有動作群組，或者如果變數是由相同動作群組中的動作產生，您可以省略 *action-group-name*。
   + *action-name-or-WorkflowSource* 搭配：

     輸出變數的動作名稱。

     或

     `WorkflowSource`，如果變數是 `BranchName`或 `CommitId`變數。
   + *variable-name* 與變數的名稱。

   例如：

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${MyFirstECSAction.cluster}
   ```

   另一個範例是：

   ```
   MySecondAction:
       Configuration:
         Steps:
           - Run: echo ${WorkflowSource.CommitId}
   ```

   如需更多範例，請參閱[參考預先定義變數的範例](workflows-predefined-examples.md)。如需詳細資訊，請參閱您動作[工作流程 YAML 定義](workflow-reference.md)的 。

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

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

------

# 判斷工作流程發出的預先定義變數
<a name="workflows-working-with-variables-determine-output-vars"></a>

使用下列程序來判斷工作流程執行時發出的預先定義變數。然後，您可以在相同的工作流程中參考這些變數。

如需預先定義變數的詳細資訊，請參閱 [使用預先定義的變數](workflows-using-predefined-variables.md)。

**判斷工作流程發出的預先定義變數**
+ 執行以下任意一項：
  + **執行工作流程一次**。執行完成後，工作流程發出的變數會顯示在執行詳細資訊頁面的**變數**索引標籤上。如需詳細資訊，請參閱[檢視工作流程執行狀態和詳細資訊](workflows-view-run.md)。
  + **請參閱 [預先定義的變數清單](workflow-ref-action-variables.md)**。此參考會列出每個預先定義變數的變數名稱 （索引鍵） 和值。

**注意**  
工作流程變數的總大小上限會列在 中[CodeCatalyst 中工作流程的配額](workflows-quotas.md)。如果總大小超過上限，達到上限之後發生的動作可能會失敗。

# 預先定義的變數清單
<a name="workflow-ref-action-variables"></a>

請參閱下列各節，以檢視 CodeCatalyst 動作在工作流程執行期間自動產生的預先定義變數。

如需預先定義變數的詳細資訊，請參閱 [使用預先定義的變數](workflows-using-predefined-variables.md)。

**注意**  
此清單僅包含 CodeCatalyst 來源和 [CodeCatalyst 動作](workflows-actions.md#workflows-actions-types)發出的預先定義變數。如果您使用其他類型的動作，例如 GitHub Actions 或 CodeCatalyst 實驗室動作，請改為參閱 [判斷工作流程發出的預先定義變數](workflows-working-with-variables-determine-output-vars.md)。

**清單**

**注意**  
並非所有 CodeCatalyst 動作都會產生預先定義的變數。如果動作不在清單中，則不會產生變數。
+ ['BranchName' 和 'CommitId' 變數](workflows-sources-variables.md)
+ [「部署 CloudFormation 堆疊」變數](deploy-action-cfn-variables.md)
+ [「部署到 Amazon ECS」變數](deploy-action-ecs-variables.md)
+ [「部署到 Kubernetes 叢集」變數](deploy-action-eks-variables.md)
+ [「AWS CDK 部署」變數](cdk-dep-action-variables.md)
+ ['AWS CDK bootstrap' 變數](cdk-boot-action-variables.md)
+ [「AWS Lambda 叫用」變數](lam-invoke-action-variables.md)
+ [「轉譯 Amazon ECS 任務定義」變數](render-ecs-action-variables.md)