

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

# 生成的 CloudFormation 资源用于 AWS SAM
<a name="sam-specification-generated-resources"></a>

本节详细介绍了在 AWS SAM 处理 AWS 模板时创建的 CloudFormation 资源。根据您指定的方案， AWS SAM 生成的 CloudFormation 资源集会有所不同。*场景*是在模板文件中指定的 AWS SAM 资源和属性的组合。您可以在模板文件中的其他位置引用生成的 CloudFormation 资源，类似于引用在模板文件中明确声明的资源。

例如，如果您在 AWS SAM 模板文件中指定了 `AWS::Serverless::Function` 资源，则 AWS SAM 总是会生成 `AWS::Lambda::Function` 基本资源。如果您还指定了可选`AutoPublishAlias`属性，则 AWS SAM 还会生成`AWS::Lambda::Alias`和`AWS::Lambda::Version`资源。

本节列出了场景及其生成的 CloudFormation 资源，并说明如何在 AWS SAM 模板文件中引用生成的 CloudFormation 资源。

## 引用生成的资源 CloudFormation
<a name="sam-specification-generated-resources-referencing"></a>

您可以通过`LogicalId`或按可引用属性在 AWS SAM 模板文件中引用生成的 CloudFormation 资源。

### 通过以下方式引用生成的 CloudFormation 资源 LogicalId
<a name="sam-specification-generated-resources-referencing-logicalid"></a>

 AWS SAM 生成每个 CloudFormation 资源的资源都有一个字母数字（A-Z `[LogicalId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html#resources-section-structure-logicalid)`、a-z、0-9）标识符，在模板文件中是唯一的。 AWS SAM 使用模板文件`LogicalIds`中的 AWS SAM 资源来构造它生成的 CloudFormation 资源。`LogicalIds`您可以使用生成的 CloudFormation 资源在`LogicalId`模板文件中访问该资源的属性，就像访问已明确声明的 CloudFormation 资源一样。有关 CloudFormation 和 AWS SAM 模板`LogicalIds`的更多信息，请参阅《*AWS CloudFormation 用户指南*》中的[资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html)。

**注意**  
某些生成的资源的 `LogicalIds` 包含唯一哈希值，以避免命名空间冲突。这些资源的 `LogicalIds` 是在创建堆栈时派生的。只有在创建堆栈之后，您才能使用 AWS 管理控制台 AWS CLI、或其中一个来检索它们 AWS SDKs。我们不建议通过 `LogicalId` 引用这些资源，因为哈希值可能会发生变化。

### 通过可引用属性引用生成的 CloudFormation 资源
<a name="sam-specification-generated-resources-referencing-referenceable-property"></a>

对于某些生成的资源， AWS SAM 提供该资源的可引用属性。 AWS SAM 您可以使用此属性在 AWS SAM 模板文件中引用生成的 CloudFormation 资源及其属性。

**注意**  
并非所有生成的 CloudFormation 资源都具有可引用的属性。对于这些资源，必须使用 `LogicalId`。

## 生成的 CloudFormation 资源场景
<a name="sam-specification-generated-resources-scenarios"></a>

下表汇总了构成生成 AWS SAM 资源的场景的 CloudFormation 资源和属性。**场景**列中的主题提供了有关为该场景 AWS SAM 生成的其他 CloudFormation 资源的详细信息。


| AWS SAM 资源 | 基础 CloudFormation 资源 | 场景 | 
| --- | --- | --- | 
| AWS::Serverless::Api  | [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::Application  | [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::CapacityProvider  | [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::Function | [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::HttpApi | [AWS::ApiGatewayV2::Api](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::LayerVersion  | [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::SimpleTable  | [AWS::DynamoDB::Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 
| AWS::Serverless::StateMachine  | [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)  | 

**Topics**
+ [引用生成的资源 CloudFormation](#sam-specification-generated-resources-referencing)
+ [生成的 CloudFormation 资源场景](#sam-specification-generated-resources-scenarios)
+ [CloudFormation 指定时AWS::Serverless::Api生成的资源](sam-specification-generated-resources-api.md)
+ [CloudFormation 指定时AWS::Serverless::Application生成的资源](sam-specification-generated-resources-application.md)
+ [CloudFormation 指定时AWS::Serverless::CapacityProvider生成的资源](sam-specification-generated-resources-capacityprovider.md)
+ [CloudFormation 指定时生成的资源 AWS::Serverless::Connector](sam-specification-generated-resources-connector.md)
+ [CloudFormation 指定时AWS::Serverless::Function生成的资源](sam-specification-generated-resources-function.md)
+ [CloudFormation 指定时AWS::Serverless::GraphQLApi生成的资源](sam-specification-generated-resources-graphqlapi.md)
+ [CloudFormation 指定时 AWS::Serverless::HttpApi 生成的资源](sam-specification-generated-resources-httpapi.md)
+ [CloudFormation 指定时AWS::Serverless::LayerVersion生成的资源](sam-specification-generated-resources-layerversion.md)
+ [CloudFormation 指定时AWS::Serverless::SimpleTable生成的资源](sam-specification-generated-resources-simpletable.md)
+ [CloudFormation 指定时AWS::Serverless::StateMachine生成的资源](sam-specification-generated-resources-statemachine.md)

# CloudFormation 指定时AWS::Serverless::Api生成的资源
<a name="sam-specification-generated-resources-api"></a>

指定`AWS::Serverless::Api`时， AWS Serverless Application Model (AWS SAM) 始终生成`AWS::ApiGateway::RestApi`基础 CloudFormation 资源。此外，它还总是生成 `AWS::ApiGateway::Stage` 和 `AWS::ApiGateway::Deployment` 资源。

**`AWS::ApiGateway::RestApi`**  
*`LogicalId`: *`<api‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::ApiGateway::Stage`**  
*`LogicalId`: *`<api‑LogicalId><stage‑name>Stage`  
`<stage‑name>` 是 `StageName` 属性将被设置为的字符串。例如，您将 `StageName` 设置为 `Gamma`，`LogicalId` 是 `MyRestApiGammaStage`。  
*可引用属性：*`<api‑LogicalId>.Stage`

**`AWS::ApiGateway::Deployment`**  
*`LogicalId`: *`<api‑LogicalId>Deployment<sha>`  
`<sha>` 是在创建堆栈时生成的唯一哈希值。例如 `MyRestApiDeployment926eeb5ff1`。  
*可引用属性：*`<api‑LogicalId>.Deployment`

除了这些 CloudFormation 资源之外，如果`AWS::Serverless::Api`指定了这些资源，还会为以下场景 AWS SAM 生成其他 CloudFormation 资源。

**Topics**
+ [DomainName 属性已指定](#sam-specification-generated-resources-api-domain-name)
+ [UsagePlan 属性已指定](#sam-specification-generated-resources-api-usage-plan)

## DomainName 属性已指定
<a name="sam-specification-generated-resources-api-domain-name"></a>

当指定了`Domain`属性的属性`AWS::Serverless::Api`时， AWS SAM 会生成`AWS::ApiGateway::DomainName` CloudFormation 资源。`DomainName`

**`AWS::ApiGateway::DomainName`**  
*`LogicalId`: *`ApiGatewayDomainName<sha>`  
`<sha>` 是在创建堆栈时生成的唯一哈希值。例如：`ApiGatewayDomainName926eeb5ff1`。  
*可引用属性：*`<api‑LogicalId>.DomainName`

## UsagePlan 属性已指定
<a name="sam-specification-generated-resources-api-usage-plan"></a>

指定`UsagePlan`属性的`Auth`属性后， AWS SAM 会生成以下 CloudFormation 资源：`AWS::ApiGateway::UsagePlan``AWS::ApiGateway::UsagePlanKey`、和`AWS::ApiGateway::ApiKey`。`AWS::Serverless::Api`

**`AWS::ApiGateway::UsagePlan`**  
*`LogicalId`: *`<api‑LogicalId>UsagePlan`  
*可引用属性：*`<api‑LogicalId>.UsagePlan`

**`AWS::ApiGateway::UsagePlanKey`**  
*`LogicalId`: *`<api‑LogicalId>UsagePlanKey`  
*可引用属性：*`<api‑LogicalId>.UsagePlanKey`

**`AWS::ApiGateway::ApiKey`**  
*`LogicalId`: *`<api‑LogicalId>ApiKey`  
*可引用属性：*`<api‑LogicalId>.ApiKey`

# CloudFormation 指定时AWS::Serverless::Application生成的资源
<a name="sam-specification-generated-resources-application"></a>

当指定`AWS::Serverless::Application`时， AWS Serverless Application Model (AWS SAM) 会生成`AWS::CloudFormation::Stack`基础 CloudFormation 资源。

**`AWS::CloudFormation::Stack`**  
*`LogicalId`: *`<application‑LogicalId>`   
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

# CloudFormation 指定时AWS::Serverless::CapacityProvider生成的资源
<a name="sam-specification-generated-resources-capacityprovider"></a>

如果指定了 `AWS::Serverless::CapacityProvider`， AWS Serverless Application Model (AWS SAM) 会生成 `AWS::Lambda::CapacityProvider` 基本 CloudFormation 资源。

**`AWS::Lambda::CapacityProvider`**  
*`LogicalId`: *`<capacityprovider‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

除此 CloudFormation 资源外，如果指定了`AWS::Serverless::CapacityProvider`此资源， AWS SAM 还会生成用于以下场景的 CloudFormation 资源：

**Topics**
+ [OperatorRole 未指定属性](#sam-specification-generated-resources-capacityprovider-iam-role)

## OperatorRole 未指定属性
<a name="sam-specification-generated-resources-capacityprovider-iam-role"></a>

*未*指定`OperatorRole`属性时， AWS SAM 会生成附加`AWSLambdaManagedEC2ResourceOperator`托管策略的`AWS::IAM::Role` CloudFormation 资源。`AWS::Serverless::CapacityProvider`

**`AWS::IAM::Role`**  
*`LogicalId`: *`<capacityprovider‑LogicalId>OperatorRole`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

# CloudFormation 指定时生成的资源 AWS::Serverless::Connector
<a name="sam-specification-generated-resources-connector"></a>

**注意**  
如果通过嵌入式 `Connectors` 属性定义连接器，在生成这些资源之前，会先转换为 `AWS::Serverless::Connector` 资源。

在 AWS SAM 模板中指定`AWS::Serverless::Connector`资源时， AWS SAM 会根据需要生成以下 AWS CloudFormation 资源。

**`AWS::IAM::ManagedPolicy`**  
 *`LogicalId`:*`<connector‑LogicalId>Policy`   
 *可引用属性：* N/A （要引用此 CloudFormation 资源，必须使用。）`LogicalId` 

**`AWS::SNS::TopicPolicy`**  
 *`LogicalId`:*`<connector‑LogicalId>TopicPolicy`   
 *可引用属性：* N/A （要引用此 CloudFormation 资源，必须使用。）`LogicalId` 

**`AWS::SQS::QueuePolicy`**  
 *`LogicalId`:*`<connector‑LogicalId>QueuePolicy`   
 *可引用属性：* N/A （要引用此 CloudFormation 资源，必须使用。）`LogicalId` 

**`AWS::Lambda::Permission`**  
 *`LogicalId`:*`<connector‑LogicalId><permission>LambdaPermission`   
 `<permission>` 是 `Permissions` 属性指定的权限。例如 `Write`。  
*可引用属性：* N/A （要引用此 CloudFormation 资源，必须使用。）`LogicalId` 

# CloudFormation 指定时AWS::Serverless::Function生成的资源
<a name="sam-specification-generated-resources-function"></a>

指定`AWS::Serverless::Function`时， AWS Serverless Application Model (AWS SAM) 始终会创建`AWS::Lambda::Function`基础 CloudFormation 资源。

**`AWS::Lambda::Function`**  
*`LogicalId`: *`<function‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

除此 CloudFormation 资源外，如果指定了`AWS::Serverless::Function`此资源， AWS SAM 还会生成用于以下场景的 CloudFormation 资源。

**Topics**
+ [核心函数属性](#sam-specification-generated-resources-function-core-properties)
+ [事件源](#sam-specification-generated-resources-function-event-sources)
+ [事件配置](#sam-specification-generated-resources-function-event-configuration)

## 核心函数属性
<a name="sam-specification-generated-resources-function-core-properties"></a>

以下场景基于核心功能属性生成 CloudFormation 资源：

### 未指定 Role 属性
<a name="sam-specification-generated-resources-function-not-role"></a>

如果*未*指定 a `AWS::Serverless::Function` 的`Role`属性，则 AWS SAM 会生成`AWS::IAM::Role` CloudFormation 资源。

**`AWS::IAM::Role`**  
*`LogicalId`: *`<function‑LogicalId>Role`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

### AutoPublishAlias 属性已指定
<a name="sam-specification-generated-resources-function-autopublishalias"></a>

当指定了的`AutoPublishAlias`属性`AWS::Serverless::Function`时， AWS SAM 会生成以下 CloudFormation 资源：`AWS::Lambda::Alias`和`AWS::Lambda::Version`。

**`AWS::Lambda::Alias`**  
*`LogicalId`: *`<function‑LogicalId>Alias<alias‑name>`  
`<alias‑name>` 是 `AutoPublishAlias` 将被设置为的字符串。例如，如果设置为 `AutoPublishAlias``live`，则`LogicalId`为：*MyFunction*别名*live*。  
*可引用属性：*`<function‑LogicalId>.Alias`

**`AWS::Lambda::Version`**  
*`LogicalId`: *`<function‑LogicalId>Version<sha>`  
`<sha>` 是在创建堆栈时生成的唯一哈希值。例如，*MyFunction*版本*926eeb5ff1*。  
*可引用属性：*`<function‑LogicalId>.Version`

有关该`AutoPublishAlias`属性的更多信息，请参阅的 “[属性” 部分 AWS::Serverless::Function](sam-resource-function.md#sam-resource-function-properties)。

### DeploymentPreference 属性已指定
<a name="sam-specification-generated-resources-function-deploymentpreference"></a>

当指定了的`DeploymentPreference`属性`AWS::Serverless::Function`时， AWS SAM 会生成以下资源 CloudFormation 资源：`AWS::CodeDeploy::Application`和`AWS::CodeDeploy::DeploymentGroup`。此外，如果*未*指定`DeploymentPreference`对象的`Role`属性， AWS SAM 还会生成`AWS::IAM::Role` CloudFormation 资源。

**`AWS::CodeDeploy::Application`**  
*`LogicalId`: *`ServerlessDeploymentApplication`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::CodeDeploy::DeploymentGroup`**  
*`LogicalId`: *`<function‑LogicalId>DeploymentGroup`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::IAM::Role`**  
*`LogicalId`: *`CodeDeployServiceRole`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

### FunctionUrlConfig 属性已指定
<a name="sam-specification-generated-resources-function-functionurlconfig"></a>

指定`FunctionUrlConfig`属性后， AWS SAM 会根据生成不同的 CloudFormation 资源`AuthType`。

指定`AuthType: NONE`后，将 AWS SAM 生成以下 CloudFormation 资源：

**`AWS::Lambda::Permission`（调用访问权限）**  
*`LogicalId`: *`<function‑LogicalId>URLInvokeAllowPublicAccess`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::Lambda::Permission`（公有访问权限）**  
*`LogicalId`: *`<function‑LogicalId>UrlPublicPermissions`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::Lambda::Url`**  
*`LogicalId`: *`<function‑LogicalId>Url`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

指定`AuthType: AWS_IAM`时，仅 AWS SAM 生成：

**`AWS::Lambda::Url`**  
*`LogicalId`: *`<function‑LogicalId>Url`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

有关该`FunctionUrlConfig`属性的更多信息，请参阅[FunctionUrlConfig](sam-property-function-functionurlconfig.md)。

## 事件源
<a name="sam-specification-generated-resources-function-event-sources"></a>

以下场景基于事件源生成 CloudFormation 资源：

### 指定了 Api 事件源
<a name="sam-specification-generated-resources-function-api"></a>

如果的`Event`属性设置`AWS::Serverless::Function`为`Api`，但*未*指定该`RestApiId`属性，则 AWS SAM 生成`AWS::ApiGateway::RestApi` CloudFormation 资源。

**`AWS::ApiGateway::RestApi`**  
*`LogicalId`: *`ServerlessRestApi`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

### 已指定 HttpApi 事件源
<a name="sam-specification-generated-resources-function-httpapi"></a>

如果的`Event`属性设置`AWS::Serverless::Function`为`HttpApi`，但*未*指定该`ApiId`属性，则 AWS SAM 生成`AWS::ApiGatewayV2::Api` CloudFormation 资源。

**`AWS::ApiGatewayV2::Api`**  
*`LogicalId`: *`ServerlessHttpApi`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

### 指定了流式事件源
<a name="sam-specification-generated-resources-function-streaming"></a>

将的`Event`属性设置`AWS::Serverless::Function`为其中一种流媒体类型时， AWS SAM 会生成`AWS::Lambda::EventSourceMapping` CloudFormation 资源。这适用于以下类型：`DynamoDB`、`Kinesis`、`MQ`、`MSK` 和 `SQS`。

**`AWS::Lambda::EventSourceMapping`**  
*`LogicalId`: *`<function‑LogicalId><event‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

### 指定了事件桥（或事件总线）事件源
<a name="sam-specification-generated-resources-function-eventbridge"></a>

将的`Event`属性设置`AWS::Serverless::Function`为事件桥（或事件总线）类型之一时， AWS SAM 会生成`AWS::Events::Rule` CloudFormation 资源。这适用于以下类型：`EventBridgeRule`、`Schedule` 和 `CloudWatchEvents`。

**`AWS::Events::Rule`**  
*`LogicalId`: *`<function‑LogicalId><event‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

### 已指定 IotRule 事件源
<a name="sam-specification-generated-resources-function-iotrule"></a>

当的`Event`属性设置`AWS::Serverless::Function`为 Io 时TRule， AWS SAM 会生成`AWS::IoT::TopicRule` CloudFormation 资源。

**`AWS::IoT::TopicRule`**  
*`LogicalId`: *`<function‑LogicalId><event‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

## 事件配置
<a name="sam-specification-generated-resources-function-event-configuration"></a>

以下方案根据事件配置生成 CloudFormation 资源：

### OnSuccess （或 OnFailure）属性是为亚马逊 SNS 事件指定的
<a name="sam-specification-generated-resources-function-sns-onsuccess"></a>

如果指定了属性的属性`AWS::Serverless::Function`的`OnSuccess`（或`OnFailure`）`EventInvokeConfig`属性，且目标类型为，`SNS`但*未*指定目标 ARN，则 AWS SAM 生成以下 CloudFormation 资源：`AWS::Lambda::EventInvokeConfig`和。`DestinationConfig` `AWS::SNS::Topic`

**`AWS::Lambda::EventInvokeConfig`**  
*`LogicalId`: *`<function‑LogicalId>EventInvokeConfig`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::SNS::Topic`**  
*`LogicalId`: *`<function‑LogicalId>OnSuccessTopic`（或 `<function‑LogicalId>OnFailureTopic`）  
*可引用属性：*`<function‑LogicalId>.DestinationTopic`  
如果为 Amazon SNS 事件指定了 `OnSuccess` 和 `OnFailure`，为了区分生成的资源，必须使用 `LogicalId`。

### OnSuccess （或 OnFailure）属性是为亚马逊 SQS 事件指定的
<a name="sam-specification-generated-resources-function-sqs-onsuccess"></a>

如果指定了属性的属性`AWS::Serverless::Function`的`OnSuccess`（或`OnFailure`）`EventInvokeConfig`属性，且目标类型为，`SQS`但*未*指定目标 ARN，则 AWS SAM 生成以下 CloudFormation 资源：`AWS::Lambda::EventInvokeConfig`和。`DestinationConfig` `AWS::SQS::Queue`

**`AWS::Lambda::EventInvokeConfig`**  
*`LogicalId`: *`<function‑LogicalId>EventInvokeConfig`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::SQS::Queue`**  
*`LogicalId`: *`<function‑LogicalId>OnSuccessQueue`（或 `<function‑LogicalId>OnFailureQueue`）  
*可引用属性：*`<function‑LogicalId>.DestinationQueue`  
如果为 Amazon SQS 事件指定了 `OnSuccess` 和 `OnFailure`，为了区分生成的资源，必须使用 `LogicalId`。

# CloudFormation 指定时AWS::Serverless::GraphQLApi生成的资源
<a name="sam-specification-generated-resources-graphqlapi"></a>

在 AWS Serverless Application Model (AWS SAM) 模板中指定`AWS::Serverless::GraphQLApi`资源时， AWS SAM 始终会创建以下基础 AWS CloudFormation 资源。

**`AWS::AppSync::DataSource`**  
*`LogicalId`: *`<graphqlapi-LogicalId><datasource-RelativeId><datasource-Type>DataSource`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::AppSync::FunctionConfiguration`**  
*`LogicalId`: *`<graphqlapi-LogicalId><function-RelativeId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::AppSync::GraphQLApi`**  
*`LogicalId`: *`<graphqlapi-LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::AppSync::GraphQLSchema`**  
*`LogicalId`: *`<graphqlapi-LogicalId>Schema`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

**`AWS::AppSync::Resolver`**  
*`LogicalId`: *`<graphqlapi-LogicalId><OperationType><resolver-RelativeId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

除了这些 CloudFormation 资源之外，`AWS::Serverless::GraphQLApi`如果指定了这些资源，还 AWS SAM 可能生成以下 CloudFormation 资源。

`AWS::AppSync::ApiCache`  
*`LogicalId`: *`<graphqlapi-LogicalId>ApiCache`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

`AWS::AppSync::ApiKey`  
*`LogicalId`: *`<graphqlapi-LogicalId><apikey-RelativeId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

`AWS::AppSync::DomainName`  
*`LogicalId`: *`<graphqlapi-LogicalId>DomainName`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

`AWS::AppSync::DomainNameApiAssociation`  
*`LogicalId`: *`<graphqlapi-LogicalId>DomainNameApiAssociation`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

AWS SAM 也可以使用该`AWS::Serverless::Connector`资源来配置权限。有关更多信息，请参阅 [CloudFormation 指定时生成的资源 AWS::Serverless::Connector](sam-specification-generated-resources-connector.md)。

# CloudFormation 指定时 AWS::Serverless::HttpApi 生成的资源
<a name="sam-specification-generated-resources-httpapi"></a>

当指定`AWS::Serverless::HttpApi`时， AWS Serverless Application Model (AWS SAM) 会生成`AWS::ApiGatewayV2::Api`基础 CloudFormation 资源。

**`AWS::ApiGatewayV2::Api`**  
*`LogicalId`: *`<httpapi‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

除此 CloudFormation 资源外，如果指定了`AWS::Serverless::HttpApi`此资源， AWS SAM 还会生成用于以下场景的 CloudFormation 资源：

**Topics**
+ [StageName 属性已指定](#sam-specification-generated-resources-httpapi-stage-name)
+ [StageName *未*指定属性](#sam-specification-generated-resources-httpapi-not-stage-name)
+ [DomainName 属性已指定](#sam-specification-generated-resources-httpapi-domain-name)

## StageName 属性已指定
<a name="sam-specification-generated-resources-httpapi-stage-name"></a>

当指定了的`StageName`属性`AWS::Serverless::HttpApi`时， AWS SAM 会生成`AWS::ApiGatewayV2::Stage` CloudFormation 资源。

**`AWS::ApiGatewayV2::Stage`**  
*`LogicalId`: *`<httpapi‑LogicalId><stage‑name>Stage`  
`<stage‑name>` 是 `StageName` 属性将被设置为的字符串。例如，如果设置为 `StageName``Gamma`，则`LogicalId`为：*MyHttpApiGamma*舞台。  
*可引用属性：*`<httpapi‑LogicalId>.Stage`

## StageName *未*指定属性
<a name="sam-specification-generated-resources-httpapi-not-stage-name"></a>

如果*未*指定 a `AWS::Serverless::HttpApi` 的`StageName`属性，则 AWS SAM 生成`AWS::ApiGatewayV2::Stage` CloudFormation 资源。

**`AWS::ApiGatewayV2::Stage`**  
*`LogicalId`: *`<httpapi‑LogicalId>ApiGatewayDefaultStage`  
*可引用属性：*`<httpapi‑LogicalId>.Stage`

## DomainName 属性已指定
<a name="sam-specification-generated-resources-httpapi-domain-name"></a>

当指定了`Domain`属性的属性`AWS::Serverless::HttpApi`时， AWS SAM 会生成`AWS::ApiGatewayV2::DomainName` CloudFormation 资源。`DomainName`

**`AWS::ApiGatewayV2::DomainName`**  
*`LogicalId`: *`ApiGatewayDomainNameV2<sha>`  
`<sha>` 是在创建堆栈时生成的唯一哈希值。例如 `ApiGatewayDomainNameV2`*926eeb5ff1*。  
*可引用属性：*`<httpapi‑LogicalId>.DomainName`

# CloudFormation 指定时AWS::Serverless::LayerVersion生成的资源
<a name="sam-specification-generated-resources-layerversion"></a>

当指定`AWS::Serverless::LayerVersion`时， AWS Serverless Application Model (AWS SAM) 会生成`AWS::Lambda::LayerVersion`基础 CloudFormation 资源。

**`AWS::Lambda::LayerVersion`**  
*`LogicalId`: *`<layerversion‑LogicalId>`   
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

# CloudFormation 指定时AWS::Serverless::SimpleTable生成的资源
<a name="sam-specification-generated-resources-simpletable"></a>

当指定`AWS::Serverless::SimpleTable`时， AWS Serverless Application Model (AWS SAM) 会生成`AWS::DynamoDB::Table`基础 CloudFormation 资源。

**`AWS::DynamoDB::Table`**  
*`LogicalId`: *`<simpletable‑LogicalId>`   
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

# CloudFormation 指定时AWS::Serverless::StateMachine生成的资源
<a name="sam-specification-generated-resources-statemachine"></a>

如果指定了 `AWS::Serverless::StateMachine`， AWS Serverless Application Model (AWS SAM) 会生成 `AWS::StepFunctions::StateMachine` 基本 CloudFormation 资源。

**`AWS::StepFunctions::StateMachine`**  
*`LogicalId`: *`<statemachine‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

除此 CloudFormation 资源外，如果指定了`AWS::Serverless::StateMachine`此资源， AWS SAM 还会生成用于以下场景的 CloudFormation 资源：

**Topics**
+ [未指定 Role 属性](#sam-specification-generated-resources-statemachine-not-role)
+ [指定了 API 事件源](#sam-specification-generated-resources-statemachine-api)
+ [指定了事件桥（或事件总线）事件源](#sam-specification-generated-resources-statemachine-eventbridge)

## 未指定 Role 属性
<a name="sam-specification-generated-resources-statemachine-not-role"></a>

如果*未*指定 a `AWS::Serverless::StateMachine` 的`Role`属性，则 AWS SAM 会生成`AWS::IAM::Role` CloudFormation 资源。

**`AWS::IAM::Role`**  
*`LogicalId`: *`<statemachine‑LogicalId>Role`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

## 指定了 API 事件源
<a name="sam-specification-generated-resources-statemachine-api"></a>

如果的`Event`属性设置`AWS::Serverless::StateMachine`为`Api`，但*未*指定该`RestApiId`属性，则 AWS SAM 生成`AWS::ApiGateway::RestApi` CloudFormation 资源。

**`AWS::ApiGateway::RestApi`**  
*`LogicalId`: *`ServerlessRestApi`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）

## 指定了事件桥（或事件总线）事件源
<a name="sam-specification-generated-resources-statemachine-eventbridge"></a>

将的`Event`属性设置`AWS::Serverless::StateMachine`为事件桥（或事件总线）类型之一时， AWS SAM 会生成`AWS::Events::Rule` CloudFormation 资源。这适用于以下类型：`EventBridgeRule`、`Schedule` 和 `CloudWatchEvents`。

**`AWS::Events::Rule`**  
*`LogicalId`: *`<statemachine‑LogicalId><event‑LogicalId>`  
*可引用的属性：*N/A（必须使用`LogicalId`来引用此 CloudFormation 资源）