

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在基础设施编排器中配置和修改卡片
<a name="using-composer-cards"></a>

在 Infrastructure Composer 中，卡片代表您用来设计应用程序架构的资源。在 Infrastructure Composer 中配置卡片时，需要定义应用程序中资源的详细信息。这包括卡片的**逻辑 ID** 和**分区密钥**等详细信息。这些信息的定义方式因**增强型组件卡和**标准卡****而异。

**增强组件卡**是一组 CloudFormation 资源，这些资源已组合成单个精选卡片，可增强易用性和功能性，专为各种用例而设计。**标准 IaC 资源卡**代表单一 AWS CloudFormation 资源。每张标准 IaC 资源卡一旦拖到画布上，就会被标记为**标准**组件。

本主题提供有关配置**增强组件卡**和**标准组件卡**的详细信息。

**注意**  
本主题适用于使用基础设施编排控制台中的卡片、 AWS Toolkit for Visual Studio Code 扩展模块以及在 Infrastructure Composer 中的 CloudFormation 控制台模式下使用卡片。与 Lambda 相关的卡（Lamb **da 函数和** Lambda **层）需要在控制台模式**下的 Infrastructure Composer 中不可用的代码构建和打包解决方案。 CloudFormation 有关更多信息，请参阅 [在 CloudFormation 控制台模式下使用基础架构编排器](using-composer-console-cfn-mode.md)。

**Topics**
+ [

# 基础架构编排器中的增强组件卡
](using-composer-cards-use-enhanced-component.md)
+ [

# 基础架构编辑器中的标准卡
](using-composer-standard-cards.md)

# 基础架构编排器中的增强组件卡
<a name="using-composer-cards-use-enhanced-component"></a>

要配置增强的组件卡，基础设施编排器在**资源属性**面板中提供了一个表单。此表单经过精心策划，可指导您完成每张增强组件卡的配置。在您填写表单时，基础设施编排器会修改您的基础架构代码。

一些增强的组件卡确实具有其他功能。本节回顾了使用增强型组件卡的基础知识，并提供了有关具有其他功能的卡片的详细信息。

有关增强组件卡的更多信息，请参阅[基础架构编排器中的增强组件卡](using-composer-cards-component-intro-enhanced.md)和 [基础架构编排器中的增强组件卡](using-composer-cards-component-intro-enhanced.md)

# 过程


**资源属性**面板简化了配置，并添加了简化卡配置的指南。要使用此面板，请执行以下步骤：

1. 双击卡片以打开**资源属性**面板。

1. 单击卡片并选择**详细信息**以打开资源属性面板。

1. 对于中的基础架构编排器 AWS 管理控制台，选择**模板**以显示您的应用程序代码。直接从此处进行配置。

   下图显示了如何做到这一点：  
![\[选择 “模板视图”，然后从中修改基础架构代码。\]](http://docs.aws.amazon.com/zh_cn/infrastructure-composer/latest/dg/images/aac_ref_11.gif)

# 将 Infrastructure Composer 与亚马逊关系数据库服务 (Amazon RDS) 配合使用
<a name="using-composer-services-rds"></a>

AWS 基础架构编辑器 具有与亚马逊关系数据库服务（Amazon RDS）的集成。使用 Infrastructure Composer 中的 RD **S 数据库（外部）**增强组件卡，您可以将应用程序连接到在另一个 CloudFormation 或 AWS Serverless Application Model (AWS SAM) 模板上定义的 Amazon RDS DB 集群、实例和代理。

**RDS 数据库（外部）**增强型组件卡片表示在其他模板上定义的 Amazon RDS 资源。这包括：
+ 在其他模板上定义的 Amazon RDS DB 集群或实例
+ 亚马逊 RDS DB 代理

**RDS 数据库（外部）**增强型组件卡可从**资源**选项板中获得。

![\[Amazon RDS 数据库（外部）增强型组件卡。\]](http://docs.aws.amazon.com/zh_cn/infrastructure-composer/latest/dg/images/aac_use_rds_01.png)


要使用此卡片，请将其拖到基础设施编排器画布上，对其进行配置，然后将其连接到其他资源。

您可以通过 Lambda 函数将您的应用程序连接到外部 Amazon RDS DB 集群或实例。

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

要使用此功能，必须满足以下要求：

1. 您的外部 Amazon RDS DB 集群、实例或代理必须使用 AWS Secrets Manager 来管理用户密码。要了解更多信息，请参阅[使用 Amazon RDS 管理密码和 AWS Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) *Amazon RDS 用户指南*。

1. 您在基础架构编排器中的应用程序必须是新项目，或者必须是最初在基础设施编排器中创建的。

## 过程
<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_cn/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_cn/infrastructure-composer/latest/dg/images/aac_use_rds_02.png)


基础架构编排器将配置您的模板以促进此连接。

## 基础架构编排器为创建连接所做的工作
<a name="using-composer-services-rds-ref-how"></a>

完成上面列出的步骤后，基础设施编排器会执行特定操作将您的 Lambda 函数连接到您的数据库。

### 指定外部 Amazon RDS DB 集群、实例或代理时
<a name="using-composer-services-rds-ref-how-specify"></a>

当您将 **RDS 数据库（外部）**卡片拖到画布上时，基础设施编排器会根据需要更新模板的`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 模板部分，用于存储有关您的模板的详细信息。基础架构编排器特有的元数据存储在`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 数据库（外部）**卡时，基础设施编排器会配置环境变量和 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 基础架构编辑器 与一起使用 AWS Step Functions
<a name="using-composer-services-sf"></a>

AWS 基础架构编辑器 具有与集成的功能[AWS Step FunctionsWorkflow Studio](https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio.html)。使用基础设施编排器执行以下操作：
+ Workflow Studio直接在基础设施编排器中启动 Step Functions。
+ 创建和管理新工作流程或将现有工作流导入基础架构编排器。
+ 使用基础设施编排器画布将您的工作流程与其他 AWS 资源集成。

下图是 Step Functions 状态机卡

![\[Step Functions 状态机卡。\]](http://docs.aws.amazon.com/zh_cn/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)
+ [

## 基础架构 Composer Workflow Studio 中的 Step Functions 入门
](#using-composer-services-sf-gs)
+ [

## 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 策略。

## 基础架构 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 状态机**增强型组件卡片拖到画布上。  
![\[Step Functions 状态机卡。\]](http://docs.aws.amazon.com/zh_cn/infrastructure-composer/latest/dg/images/aac_use_sf_02.png)

   当你将 **Step Functions 状态机**卡拖到画布上时，Infrastructure Composer 会创建以下内容：
   + 定义状态机的`[ AWS::Serverless::StateMachine](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html)`资源。默认情况下，基础架构编排器创建标准工作流程。要创建快速工作流程，请将模板中的`Type`值从更改`STANDARD`为`EXPRESS`。
   + 一种为状态机定义 Amazon CloudWatch 日志组的`[AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)`资源。

1. 打开卡片的**资源属性**面板，然后选择在 Workfl **ow Studio 中编辑**，在基础架构编辑器Workflow Studio中打开。

   Step Fun Workflow Studio ctions 将在**设计**模式下打开。要了解更多信息，请参阅《*AWS Step Functions 开发者指南*》中的[设计模式](https://docs.aws.amazon.com/step-functions/latest/dg/workflow-studio-components.html#wfs-interface-design-mode)。
**注意**  
您可以修改基础架构编排器以将状态机定义保存在外部文件中。要了解更多信息，请参阅[处理外部文件](#using-composer-services-sf-use-external)。

1. 创建您的工作流程并选择 “**保存**”。要退出Workflow Studio，请选择**返回到基础架构编排器**。

   基础架构编排器使用`AWS::Serverless::StateMachine`资源的`Defintion`属性定义您的工作流程。

1. 您可以通过执行以下任一操作来修改工作流程：
   + Workflow Studio再次打开并修改您的工作流程。
   + 对于控制台中的 Infrastructure Composer，您可以打开应用程序的**模板**视图并修改您的模板。如果使用**本地同步**，则可以在本地 IDE 中修改工作流程。基础设施编排器将在基础设施编排器中检测您的更改并更新您的工作流程。
   + 对于 VS Code Toolkit for VS Code 中的基础设施编排器，您可以直接修改您的模板。基础设施编排器将在基础设施编排器中检测您的更改并更新您的工作流程。

### 导入现有工作流程
<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)`— 该工作流程是使用[亚马逊州语言](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)在外部文件上定义的。然后使用此属性指定文件的本地路径。

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

**控制台中的基础架构编译器**  
对于使用该`Definition`属性定义的工作流程，您可以导入单个模板或整个项目。  
+ **模板**-有关导入模板的说明，请参阅[在基础设施编排控制台中导入现有项目模板](using-composer-project-import-template.md)。要保存您在基础设施编排器中所做的更改，必须导出您的模板。
+ **项目**-导入项目时，必须激活**本地同步**。您所做的更改会自动保存到本地计算机中。有关导入项目的说明，请参阅[在基础设施编排控制台中导入现有项目文件夹](using-composer-project-import-folder.md)。

**来自 VS Code 的 Toolkit 中的基础设施编译器**  
对于使用该`Definition`属性定义的工作流，您可以从模板中打开 “基础设施编排”。有关说明，请参阅[从访问基础架构编排器 AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md)。

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

**控制台中的基础架构编译器**  
对于使用该`DefinitionUri`属性定义的工作流程，必须导入项目并激活**本地同步**。有关导入项目的说明，请参阅[在基础设施编排控制台中导入现有项目文件夹](using-composer-project-import-folder.md)。

**来自 VS Code 的 Toolkit 中的基础设施编译器**  
对于使用该`DefinitionUri`属性定义的工作流，您可以从模板中打开 “基础设施编排”。有关说明，请参阅[从访问基础架构编排器 AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md)。

## 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，请为每个任务指定一个定义替换。然后，您可以将任务连接到基础设施编排器画布上的资源。

**要在中指定定义替换 Workflow Studio**

1. 打开任务的 “**配置**” 选项卡，找到 “**API 参数**” 字段。  
![\[中任务的 “配置” 选项卡Workflow Studio。\]](http://docs.aws.amazon.com/zh_cn/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_cn/infrastructure-composer/latest/dg/images/aac_use_sf_06.png)

1. 选择**保存**并**返回到基础架构编排器**。

工作流程中的任务将在 Ste **p Functions 状态机**卡上可视化。

![\[一张 Step Functions 状态机卡，任务可视化。\]](http://docs.aws.amazon.com/zh_cn/infrastructure-composer/latest/dg/images/aac_use_sf_03.png)


### Connect 将资源连接到工作流程任务
<a name="using-composer-services-sf-use-connect"></a>

你可以在基础架构编排器中创建支持的工作流任务和支持的基础设施编排卡片之间的连接。
+ **支持的工作流任务**-针对 Step F AWS 服务 unctions 进行了优化的任务。要了解更多信息，请参阅《*AWS Step Functions 开发者指南》*中的 [Step Functions 优化集成](https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html)。
+ **支持的基础设施合成器卡**-支持增强型组件卡。要了解有关基础设施编排器中卡片的更多信息，请参阅[在基础设施编排器中配置和修改卡片](using-composer-cards.md)。

创建连接时，任务和卡片 AWS 服务 的必须匹配。**例如，您可以将调用 Lambda 函数的工作流程任务连接到 Lambda 函数增强型组件卡。**

要创建连接，请单击任务的端口并将其拖动到增强组件卡的左侧端口。

![\[Step Functions 状态机卡，其任务连接到 Lambda 函数资源卡。\]](http://docs.aws.amazon.com/zh_cn/infrastructure-composer/latest/dg/images/aac_use_sf_04.png)


基础架构 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 配合使用 AWS 管理控制台，必须激活**本地同步**。有关更多信息，请参阅 [在基础设施编排控制台中本地同步并保存您的项目](using-composer-project-local-sync.md)。

**将状态机定义保存在外部文件上**

1. 打开 Ste **p Functions 状态机**卡的**资源属性**面板。

1. 选择 “**使用外部文件定义状态机**” 选项。

1. 为您的状态机定义文件提供相对路径和名称。

1. 选择**保存**。

基础架构编排器将执行以下操作：

1. 将状态机定义从`Definition`字段移至外部文件。

1. 使用 Amazon States 语言将状态机定义保存在外部文件中。

1. 使用`DefinitionUri`字段修改模板以引用外部文件。

## 了解详情
<a name="using-composer-services-sf-learn"></a>

要了解有关基础架构编排器中的 Step Functions 的更多信息，请参阅以下内容：
+ [Workflow Studio在《*AWS Step Functions 开发人员指南》*的《基础设施编排器》中使用](https://docs.aws.amazon.com/step-functions/latest/dg/use-wfs-in-app-composer.html)。
+ [DefinitionSubstitutions 在《*AWS Step Functions 开发人员指南》*的 AWS SAM 模板](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-sam-sfn.html#sam-definition-substitution-eg)中。

# 基础架构编辑器中的标准卡
<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 基础架构编辑器 与一起使用 Amazon Q Developer](using-composer-ide-cw.md)。

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

您可以通过资源**属性面板修改标准组件卡片中每种资源的**基础设施代码。

**修改标准组件卡**

1. 打开标准 IaC 组件卡的**资源属性**面板。

1. 在 “**编辑**” 字段中，从下拉列表中选择要编辑的标准 IaC 资源。

1. 修改您的基础设施代码并**保存**。