

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

# 在 Infrastructure Composer 中設定和修改卡片
<a name="using-composer-cards"></a>

在 Infrastructure Composer 中，卡片代表您用來設計應用程式架構的資源。當您在 Infrastructure Composer 中設定卡片時，您可以定義應用程式中資源的詳細資訊。這包括卡片**邏輯 ID** 和**分割區索引鍵**等詳細資訊。此資訊的定義方式因**增強型元件卡**和**標準卡**而異。

**增強型元件卡**是 CloudFormation 資源的集合，已合併為單一精選的卡，可增強易用性、功能，並專為各種使用案例而設計。**標準 IaC 資源卡**代表單一 AWS CloudFormation 資源。每個標準 IaC 資源卡一旦拖曳到畫布上，都會標記為**標準元件**。

本主題提供有關設定**增強型元件卡**和**標準元件卡**的詳細資訊。

**注意**  
本主題適用於在 CloudFormation 主控台模式下使用來自 Infrastructure Composer 主控台、 AWS Toolkit for Visual Studio Code 延伸模組和 Infrastructure Composer 的卡片。Lambda 相關卡片 (**Lambda 函式**與 **Lambda Layer**) 需要程式碼建置及套件化解決方案，而這些功能在 CloudFormation 主控台模式的 Infrastructure Composer 中並不提供。如需詳細資訊，請參閱[在 CloudFormation 主控台模式中使用 Infrastructure Composer](using-composer-console-cfn-mode.md)。

**Topics**
+ [Infrastructure Composer 中的增強型元件卡](using-composer-cards-use-enhanced-component.md)
+ [Infrastructure Composer 中的標準卡](using-composer-standard-cards.md)

# Infrastructure Composer 中的增強型元件卡
<a name="using-composer-cards-use-enhanced-component"></a>

若要設定增強型元件卡，基礎設施編寫器會在**資源屬性**面板中提供表單。此表單是專為引導您設定每個增強型元件卡而設計。當您填寫表單時， Infrastructure Composer 會修改您的基礎設施程式碼。

有些增強型元件卡確實具有其他功能。本節會檢閱使用增強型元件卡的基本概念，並提供具有其他功能之卡片的詳細資訊。

如需增強型元件卡的詳細資訊，請參閱 [Infrastructure Composer 中的增強型元件卡](using-composer-cards-component-intro-enhanced.md) 和 [Infrastructure Composer 中的增強型元件卡](using-composer-cards-component-intro-enhanced.md)

# 程序


**資源屬性**面板可簡化組態，並新增可簡化卡片組態的指導方針。若要使用此面板，請執行下列步驟：

1. 按兩下卡片以顯示**資源屬性**面板。

1. 按一下卡片，然後選取**詳細資訊**以顯示資源屬性面板。

1. 針對 Infrastructure Composer AWS 管理主控台，選取 **範本**以顯示您的應用程式程式碼。從這裡直接設定 。

   下圖顯示如何完成此操作：  
![\[選取範本檢視並從該處修改基礎設施程式碼。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_ref_11.gif)

# 搭配 Amazon Relational Database Service (Amazon RDS) 使用 Infrastructure Composer
<a name="using-composer-services-rds"></a>

AWS Infrastructure Composer 具有與 Amazon Relational Database Service (Amazon RDS) 整合的功能。使用 Infrastructure Composer 中的 **RDS 資料庫 （外部）** 增強型元件卡，您可以將應用程式連線到另一個 CloudFormation 或 AWS Serverless Application Model (AWS SAM) 範本上定義的 Amazon RDS DB叢集、執行個體和代理。

**RDS 資料庫 （外部）** 增強型元件卡代表在另一個範本上定義的 Amazon RDS 資源。其中包含：
+ 在另一個範本上定義的 Amazon RDS DB叢集或執行個體
+ Amazon RDS DB代理

**RDS 資料庫 （外部）** 增強型元件卡可從**資源**面板取得。

![\[Amazon RDS 資料庫 （外部） 增強型元件卡。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_rds_01.png)


若要使用此卡，請將其拖曳到 Infrastructure Composer 畫布上、進行設定，並將其連接到其他資源。

您可以透過 Lambda 函數將應用程式連線至外部 Amazon RDS DB叢集或執行個體。

## 要求
<a name="using-composer-services-rds-requirements"></a>

若要使用此功能，您必須符合下列要求：

1. 您的外部 Amazon RDS DB叢集、執行個體或代理必須使用 AWS Secrets Manager 來管理使用者密碼。若要進一步了解，請參閱《[Amazon RDS 使用者指南》中的使用 Amazon RDS 和 進行密碼管理 AWS Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html)。 **

1. 您在 Infrastructure Composer 中的應用程式必須是新專案，或最初必須在 Infrastructure Composer 中建立。

## 程序
<a name="using-composer-services-rds-connect"></a>

### 步驟 1：設定外部 RDS 資料庫卡
<a name="using-composer-services-rds-connect-step1"></a>

從**資源**面板中，將 **RDS 資料庫 （外部）** 增強型元件卡拖曳到畫布上。

選取卡片，然後選擇**詳細資訊**，或按兩下卡片以顯示**資源屬性**面板。卡片的資源屬性面板將會出現：

![\[RDS 資料庫 （外部） 增強元件卡的資源屬性面板。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_rds_03.png)


您可以在這裡設定下列項目：
+ **邏輯 ID** – 外部 Amazon RDS DB叢集、執行個體或代理的唯一名稱。此 ID 不必符合您外部 Amazon RDS DB 資源的邏輯 ID 值。
+ **資料庫秘密** – 與您的 Amazon RDS DB叢集、執行個體或代理相關聯的 AWS Secrets Manager 秘密識別符。此欄位接受下列值：
  + **靜態值** – 資料庫秘密的唯一識別符，例如秘密 ARN。以下是範例：`arn:aws:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c`如需詳細資訊，請參閱《AWS Secrets Manager 使用者指南》**中的 [AWS Secrets Manager 概念](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html)。
  + **輸出值** – 部署 Secrets Manager 秘密時 AWS CloudFormation，會建立輸出值。您可以使用`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`內部 函數在此處指定輸出值。例如 `!ImportValue MySecret`。
  + **來自 SSM 參數存放區的值** – 您可以將秘密存放在 SSM 參數存放區，並使用動態參考指定其值。例如 `{{resolve:ssm:MySecret}}`。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的 [SSM 參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm)。
+ **資料庫主機名稱** – 可用來連線至 Amazon RDS DB叢集、執行個體或代理的主機名稱。此值是在定義 Amazon RDS 資源的外部範本中指定。接受下列值：
  + **靜態值** – 資料庫主機名稱的唯一識別符，例如端點地址。以下是範例：`mystack-mydb-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com`
  + **輸出值** – 部署的 Amazon RDS DB叢集、執行個體或代理的輸出值。您可以使用`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`內部 函數指定輸出值。例如 `!ImportValue myStack-myDatabase-abcd1234`。
  + **來自 SSM 參數存放區的值** – 您可以將資料庫主機名稱存放在 SSM 參數存放區中，並使用動態參考指定其值。例如 `{{resolve:ssm:MyDatabase}}`。
+ **資料庫連接埠** – 可用來連線至 Amazon RDS DB叢集、執行個體或代理的連接埠號碼。此值是在定義 Amazon RDS 資源的外部範本中指定。接受下列值：
  + **靜態值** – 資料庫連接埠。例如 `3306`。
  + **輸出值** – 部署的 Amazon RDS DB叢集、執行個體或代理的輸出值。例如 `!ImportValue myStack-MyRDSInstancePort`。
  + **來自 SSM 參數存放區的值** – 您可以將資料庫主機名稱存放在 SSM 參數存放區，並使用動態參考指定其值。例如 `{{resolve:ssm:MyRDSInstancePort}}`。

**注意**  
這裡只能設定邏輯 ID 值。您可以視需要在部署時間設定其他屬性。

### 步驟 2：連接 Lambda 函數卡
<a name="using-composer-services-rds-connect-step2"></a>

從**資源**面板中，將 **Lambda 函數**增強型元件卡拖曳到畫布上。

將 **Lambda 函數**卡的左側連接埠連接到 **RDS 資料庫 （外部）** 卡的右側連接埠。

![\[連接至 RDS 資料庫 （外部） 增強型元件卡的 Lambda 函數卡。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_rds_02.png)


Infrastructure Composer 將佈建您的範本，以促進此連線。

## Infrastructure Composer 如何建立您的連線
<a name="using-composer-services-rds-ref-how"></a>

當您完成上述程序時， Infrastructure Composer 會執行特定動作，將 Lambda 函數連線至資料庫。

### 指定外部 Amazon RDS DB叢集、執行個體或代理時
<a name="using-composer-services-rds-ref-how-specify"></a>

當您將 **RDS 資料庫 （外部）** 卡拖曳至畫布時， Infrastructure Composer 會視需要更新範本的 `Metadata`和 `Parameters`區段。以下是範例：

```
Metadata:
  AWS::Composer::ExternalResources:
    ExternalRDS:
      Type: externalRDS
      Settings:
        Port: !Ref ExternalRDSPort
        Hostname: !Ref ExternalRDSHostname
        SecretArn: !Ref ExternalRDSSecretArn
Parameters:
  ExternalRDSPort:
    Type: Number
  ExternalRDSHostname:
    Type: String
  ExternalRDSSecretArn:
    Type: String
```

[中繼資料](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html)是 CloudFormation 範本區段，用於存放範本的詳細資訊。Infrastructure Composer 特有的中繼資料存放在`AWS::Composer::ExternalResources`中繼資料金鑰下。在這裡， Infrastructure Composer 會儲存您為 Amazon RDS DB叢集、執行個體或代理指定的值。

 CloudFormation 範本的[參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)區段用於存放可在部署時插入整個範本的自訂值。根據您提供的值類型， Infrastructure Composer 可能會將 Amazon RDS DB叢集、執行個體或代理的值存放在此處，並在範本中指定這些值。

`Metadata` 和 `Parameters`區段中的字串值使用您在 **RDS 資料庫 （外部）** 卡上指定的邏輯 ID 值。如果您更新邏輯 ID，字串值將會變更。

### 將 Lambda 函數連線至資料庫時
<a name="using-composer-services-rds-ref-how-connecting"></a>

當您將 **Lambda 函數**卡連接至 **RDS 資料庫 （外部）** 卡時， Infrastructure Composer 會佈建環境變數和 AWS Identity and Access Management (IAM) 政策。以下是範例：

```
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Environment:
        Variables:
          EXTERNALRDS_PORT: !Ref ExternalRDSPort
          EXTERNALRDS_HOSTNAME: !Ref ExternalRDSHostname
          EXTERNALRDS_SECRETARN: !Ref ExternalRDSSecretArn
      Policies:
        - AWSSecretsManagerGetSecretValuePolicy:
            SecretArn: !Ref ExternalRDSSecretArn
```

[環境](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment)變數是可在執行時間由函數使用的變數。若要進一步了解，請參閱《 *AWS Lambda 開發人員指南*》中的[使用 Lambda 環境變數](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)。

[政策](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-policies)佈建函數的許可。在這裡， Infrastructure Composer 會建立政策，以允許從函數對 Secrets Manager 進行讀取存取，以取得存取 Amazon RDS DB叢集、執行個體或代理的密碼。

# AWS Infrastructure Composer 搭配 使用 AWS Step Functions
<a name="using-composer-services-sf"></a>

AWS Infrastructure Composer 具有與 整合的功能[AWS Step Functions Workflow Studio](https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio.html)。使用 Infrastructure Composer 執行下列動作：
+ Workflow Studio 直接在 Infrastructure Composer 中啟動 Step Functions。
+ 建立和管理新的工作流程，或將現有的工作流程匯入 Infrastructure Composer。
+ 使用 Infrastructure Composer 畫布將您的工作流程與其他 AWS 資源整合。

下圖是 Step Functions 狀態機器卡

![\[Step Functions 狀態機器卡。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_sf_01.png)


使用 Infrastructure Composer Workflow Studio中的 Step Functions，您可以在單一位置使用兩個強大的視覺化設計工具的優點。當您設計工作流程和應用程式時， Infrastructure Composer 會建立基礎設施做為程式碼 (IaC)，以引導您進行部署。

**Topics**
+ [IAM 政策](#using-composer-services-sf-use-iam)
+ [Infrastructure Composer Workflow Studio中的 Step Functions 入門](#using-composer-services-sf-gs)
+ [在 Infrastructure Composer Workflow Studio中使用 Step Functions](#using-composer-services-sf-use)
+ [進一步了解](#using-composer-services-sf-learn)

## IAM 政策
<a name="using-composer-services-sf-use-iam"></a>

當您將任務從工作流程連線至 資源時， Infrastructure Composer 會自動建立所需的 AWS Identity and Access Management (IAM) 政策，以授權資源之間的互動。以下是範例：

```
Transform: AWS::Serverless-2016-10-31
Resources:
  StockTradingStateMachine:
    Type: AWS::Serverless::StateMachine
    Properties:
      ...
      Policies:
        - LambdaInvokePolicy:
            FunctionName: !Ref CheckStockValue
      ...
  CheckStockValue:
    Type: AWS::Serverless::Function
    ...
```

如有必要，您可以將更多 IAM 政策新增至範本。

## Infrastructure Composer Workflow Studio中的 Step Functions 入門
<a name="using-composer-services-sf-gs"></a>

若要開始使用，您可以建立新的工作流程或匯入現有的工作流程。

### 建立新的工作流程
<a name="using-composer-services-sf-gs-create"></a>

1. 從**資源**面板中，將 **Step Functions State Machine** 增強型元件卡拖曳到畫布上。  
![\[Step Functions 狀態機器卡。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_sf_02.png)

   當您將 **Step Functions State 機器**卡拖曳至畫布時， Infrastructure Composer 會建立下列項目：
   + 定義狀態機器`[ AWS::Serverless::StateMachine](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html)`的資源。根據預設， Infrastructure Composer 會建立標準工作流程。若要建立快速工作流程，請將範本中的`Type`值從 變更為 `STANDARD` `EXPRESS`。
   + 為您的狀態機器定義 Amazon CloudWatch 日誌群組`[AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)`的資源。

1. 開啟卡片**的資源屬性**面板，然後選取 **Workflow Studio 中的編輯**，以在 Infrastructure Composer Workflow Studio中開啟。

   Step Functions 會在**設計**模式中Workflow Studio開啟。若要進一步了解，請參閱《 *AWS Step Functions 開發人員指南*》中的[設計模式](https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio-components.html#wfs-interface-design-mode)。
**注意**  
您可以修改 Infrastructure Composer，將狀態機器定義儲存在外部檔案中。如需詳細資訊，請參閱 [使用外部檔案](#using-composer-services-sf-use-external)。

1. 建立您的工作流程，然後選擇**儲存**。若要結束 Workflow Studio，請選擇**返回基礎設施編寫器**。

   Infrastructure Composer 會使用 `AWS::Serverless::StateMachine` 資源的 `Defintion` 屬性來定義您的工作流程。

1. 您可以執行下列任何動作來修改工作流程：
   + Workflow Studio 再次開啟 並修改您的工作流程。
   + 對於從主控台的 Infrastructure Composer，您可以開啟應用程式的**範本**檢視，並修改您的範本。如果使用**本機同步**，您可以在本機 IDE 中修改工作流程。Infrastructure Composer 會偵測您的變更，並在 Infrastructure Composer 中更新您的工作流程。
   + 對於 Toolkit for VS Code 中的 Infrastructure Composer，您可以直接修改範本。Infrastructure Composer 會偵測您的變更，並在 Infrastructure Composer 中更新您的工作流程。

### 匯入現有的工作流程
<a name="using-composer-services-sf-gs-import"></a>

您可以從使用 AWS Serverless Application Model (AWS SAM) 範本定義的應用程式匯入工作流程。使用任何以 `AWS::Serverless::StateMachine` 資源類型定義的狀態機器，它將視覺化為 **Step Functions 狀態機器**增強型元件卡，您可以用來啟動 Workflow Studio。

`AWS::Serverless::StateMachine` 資源可以使用下列任一屬性定義工作流程：
+ `[ Definition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definition)` – 工作流程在 AWS SAM 範本中定義為 物件。
+ `[ DefinitionUri](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definitionuri)` – 使用 [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) 在外部檔案上定義工作流程。然後使用此屬性指定檔案的本機路徑。

#### 定義屬性
<a name="using-composer-services-sf-gs-import-definition"></a>

**主控台中的 Infrastructure Composer**  
對於使用 `Definition` 屬性定義的工作流程，您可以匯入單一範本或整個專案。  
+ **範本** – 如需匯入範本的指示，請參閱 [在 Infrastructure Composer 主控台中匯入現有的專案範本](using-composer-project-import-template.md)。若要儲存您在 Infrastructure Composer 中所做的變更，您必須匯出範本。
+ **專案** – 當您匯入專案時，您必須啟用**本機同步**。您所做的變更會自動儲存至本機電腦。如需匯入專案的指示，請參閱 [在 Infrastructure Composer 主控台中匯入現有的專案資料夾](using-composer-project-import-folder.md)。

**來自 Toolkit for VS Code 的 Infrastructure Composer**  
對於使用 `Definition` 屬性定義的工作流程，您可以從範本開啟 Infrastructure Composer。如需說明，請參閱[從 存取 Infrastructure Composer AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md)。

#### DefinitionUri 屬性
<a name="using-composer-services-sf-gs-import-definitionuri"></a>

**主控台中的 Infrastructure Composer**  
對於使用 `DefinitionUri` 屬性定義的工作流程，您必須匯入專案並啟用**本機同步**。如需匯入專案的指示，請參閱 [在 Infrastructure Composer 主控台中匯入現有的專案資料夾](using-composer-project-import-folder.md)。

**來自 Toolkit for VS Code 的 Infrastructure Composer**  
對於使用 `DefinitionUri` 屬性定義的工作流程，您可以從範本開啟 Infrastructure Composer。如需說明，請參閱[從 存取 Infrastructure Composer AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md)。

## 在 Infrastructure Composer Workflow Studio中使用 Step Functions
<a name="using-composer-services-sf-use"></a>

### 建置工作流程
<a name="using-composer-services-sf-use-build"></a>

Infrastructure Composer 使用定義替換，將工作流程任務映射到應用程式中的資源。若要進一步了解定義替換，請參閱《 *AWS Serverless Application Model 開發人員指南*`[ DefinitionSubstitutions](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definitionsubstitutions)`》中的 。

當您在 中建立任務時Workflow Studio，請為每個任務指定定義替換。然後，您可以將任務連接到 Infrastructure Composer 畫布上的資源。

**在 中指定定義替換 Workflow Studio**

1. 開啟任務的**組態**索引標籤，並找到 **API 參數**欄位。  
![\[中任務的組態索引標籤Workflow Studio。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_sf_05.png)

1. 如果 **API 參數**欄位有下拉式選項，請選擇**輸入 CloudFormation 替代**。然後，提供唯一的名稱。

   對於連接到相同資源的任務，請為每個任務指定相同的定義替換。若要使用現有的定義替換，請選擇**選取 CloudFormation 替換**，然後選取要使用的替換。

1. 如果 **API 參數**欄位包含 JSON 物件，請修改指定資源名稱的項目，以使用定義替換。在下列範例中，我們將 `"MyDynamoDBTable"`變更為 `"${RecordTransaction}"`。  
![\[中任務的組態索引標籤Workflow Studio。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_sf_06.png)

1. 選取**儲存**並**返回基礎設施編寫器**。

工作流程中的任務會在 **Step Functions 狀態機器**卡上視覺化。

![\[Step Functions 狀態機器卡，可將任務視覺化。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_sf_03.png)


### 將資源連接至工作流程任務
<a name="using-composer-services-sf-use-connect"></a>

您可以在 Infrastructure Composer 中，在支援的工作流程任務和支援的 Infrastructure Composer 卡之間建立連線。
+ **支援的工作流程任務** – AWS 服務 針對 Step Functions 最佳化的 任務。若要進一步了解，請參閱《 *AWS Step Functions 開發人員指南*》中的 [ Step Functions 的最佳化整合](https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html)。
+ **支援的 Infrastructure Composer 卡** – 支援增強型元件卡。若要進一步了解 Infrastructure Composer 中的卡片，請參閱 [在 Infrastructure Composer 中設定和修改卡片](using-composer-cards.md)。

建立連線時，任務和卡片 AWS 服務 的 必須相符。例如，您可以將叫用 Lambda 函數的工作流程任務連接到 **Lambda 函數**增強型元件卡。

若要建立連線，請按一下任務的連接埠，並將其拖曳至增強型元件卡的左側連接埠。

![\[Step Functions 狀態機器卡，具有連接至 Lambda 函數資源卡的任務。\]](http://docs.aws.amazon.com/zh_tw/infrastructure-composer/latest/dg/images/aac_use_sf_04.png)


Infrastructure Composer 會自動更新您的`DefinitionSubstitution`值，以定義您的連線。以下是範例：

```
Transform: AWS::Serverless-2016-10-31
Resources:
  StateMachine:
    Type: AWS::Serverless::StateMachine
    Properties:
      Definition:
        StartAt: Check Stock Value
        States:
          Check Stock Value:
            Type: Task
            Resource: arn:aws:states:::lambda:invoke
            Parameters:
              Payload.$: $
              FunctionName: ${CheckStockValue}
            Next: Choice
          ...
      DefinitionSubstitutions:
        CheckStockValue: !GetAtt CheckStockValue.Arn
        ...
  CheckStockValue:
    Type: AWS::Serverless::Function
    Properties:
      ...
```

### 使用外部檔案
<a name="using-composer-services-sf-use-external"></a>

當您從 **Step Functions 狀態機器**卡建立工作流程時， Infrastructure Composer 會使用 `Definition` 屬性將狀態機器定義儲存在範本中。您可以設定 Infrastructure Composer，將狀態機器定義儲存至外部檔案。

**注意**  
若要從 搭配 Infrastructure Composer 使用此功能 AWS 管理主控台，您必須啟用**本機同步**。如需詳細資訊，請參閱[在 Infrastructure Composer 主控台中本機同步和儲存您的專案](using-composer-project-local-sync.md)。

**在外部檔案上儲存您的狀態機器定義**

1. 開啟 **Step Functions 狀態機器**卡**的資源屬性**面板。

1. 選取**使用外部檔案做為狀態機器定義**選項。

1. 為您的狀態機器定義檔案提供相對路徑和名稱。

1. 選擇**儲存**。

Infrastructure Composer 將執行下列動作：

1. 將您的狀態機器定義從 `Definition` 欄位移至外部檔案。

1. 使用 Amazon States Language 將狀態機器定義儲存在外部檔案中。

1. 使用 `DefinitionUri` 欄位修改您的範本以參考外部檔案。

## 進一步了解
<a name="using-composer-services-sf-learn"></a>

若要進一步了解 Infrastructure Composer 中的 Step Functions，請參閱以下內容：
+ 《 *AWS Step Functions 開發人員指南*》[Workflow Studio中的在 Infrastructure Composer](https://docs.aws.amazon.com/step-functions/latest/dg/use-wfs-in-app-composer.html) 中使用 。
+ 《 *AWS Step Functions 開發人員指南*[》中的 AWS SAM 範本中的 DefinitionSubstitutions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-sam-sfn.html#sam-definition-substitution-eg)。

# Infrastructure Composer 中的標準卡
<a name="using-composer-standard-cards"></a>

所有 CloudFormation 資源都可以用作**資源面板中的標準 IaC 資源卡**。 ****拖曳到視覺化畫布後，**標準 IaC 資源卡**會變成**標準元件卡**。這只是表示卡片是一或多個標準 IaC 資源。如需進一步的範例和詳細資訊，請參閱本節中的主題。

您可以透過**範本**檢視和**資源屬性**視窗修改基礎設施程式碼。例如，以下是`Alexa::ASK::Skill`標準 IaC 資源的啟動範本範例：

```
Resources:
  Skill:
    Type: Alexa::ASK::Skill
    Properties:
      AuthenticationConfiguration:
        RefreshToken: <String>
        ClientSecret: <String>
        ClientId: <String>
      VendorId: <String>
      SkillPackage:
        S3Bucket: <String>
        S3Key: <String>
```

標準 IaC 資源卡啟動範本包含下列項目：
+  CloudFormation 資源類型。
+ 必要或常用屬性。
+ 為每個屬性提供的所需 值類型。

**注意**  
您可以使用 Amazon Q 來產生標準資源卡的基礎設施程式碼建議。如需詳細資訊，請參閱 [AWS Infrastructure Composer 搭配 使用 Amazon Q Developer](using-composer-ide-cw.md)。

## 程序
<a name="using-composer-cards-use-standard-component"></a>

您可以透過資源**屬性**面板修改標準元件卡中每個資源的基礎設施代碼。

**修改標準元件卡**

1. 開啟標準 IaC 元件卡**的資源屬性**面板。

1. 在**編輯**欄位中，從下拉式清單選取要編輯的標準 IaC 資源。

1. 修改您的基礎設施程式碼並**儲存**。