本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在指定了 AWS::Serverless::Function 的情况下生成的 Amazon CloudFormation 资源
如果指定了 AWS::Serverless::Function
,Amazon Serverless Application Model (Amazon SAM) 总是创建 AWS::Lambda::Function
基本 Amazon CloudFormation 资源。
AWS::Lambda::Function
-
LogicalId
:<function‑LogicalId>
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
除了这种 Amazon CloudFormation 资源外,如果指定了 AWS::Serverless::Function
,Amazon SAM 还会生成适用于以下场景的 Amazon CloudFormation 资源。
场景
指定了 AutoPublishAlias 属性
如果指定了 AWS::Serverless::Function
的 AutoPublishAlias
属性,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::Alias
和 AWS::Lambda::Version
。
AWS::Lambda::Alias
-
LogicalId
:<function‑LogicalId>
Alias<alias‑name>
是<alias‑name>
AutoPublishAlias
将被设置为的字符串。例如,如果将AutoPublishAlias
设置为live
,则LogicalId
是:MyFunction
Aliaslive
。可引用属性:
<function‑LogicalId>
.Alias AWS::Lambda::Version
-
LogicalId
:<function‑LogicalId>
Version<sha>
是在创建堆栈时生成的唯一哈希值。例如,<sha>
MyFunction
Version926eeb5ff1
。可引用属性:
<function‑LogicalId>
.Version
有关 AutoPublishAlias
属性的其他信息,请参阅 AWS::Serverless::Function 的“属性”部分。
未指定 Role 属性
如果未指定 AWS::Serverless::Function
的 Role
属性,Amazon SAM 会生成 AWS::IAM::Role
Amazon CloudFormation 资源。
AWS::IAM::Role
-
LogicalId
:<function‑LogicalId>
Role可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
指定了 DeploymentPreference 属性
如果指定了 AWS::Serverless::Function
的 DeploymentPreference
属性,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::CodeDeploy::Application
和 AWS::CodeDeploy::DeploymentGroup
。此外,如果未指定 DeploymentPreference
对象的 Role
属性,Amazon SAM 还会生成 AWS::IAM::Role
Amazon CloudFormation 资源。
AWS::CodeDeploy::Application
-
LogicalId
:ServerlessDeploymentApplication
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
AWS::CodeDeploy::DeploymentGroup
-
LogicalId
:<function‑LogicalId>
DeploymentGroup可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源) AWS::IAM::Role
-
LogicalId
:CodeDeployServiceRole
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
指定了 Api 事件源
如果 AWS::Serverless::Function
的 Event
属性设置为 Api
,但未指定 RestApiId
属性,Amazon SAM 会生成 AWS::ApiGateway::RestApi
Amazon CloudFormation 资源。
AWS::ApiGateway::RestApi
-
LogicalId
:ServerlessRestApi
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
指定了 HttpApi 事件源
如果 AWS::Serverless::Function
的 Event
属性设置为 HttpApi
,但未指定 ApiId
属性,Amazon SAM 会生成 AWS::ApiGatewayV2::Api
Amazon CloudFormation 资源。
AWS::ApiGatewayV2::Api
-
LogicalId
:ServerlessHttpApi
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
指定了流式事件源
如果 AWS::Serverless::Function
的 Event
属性设置为流式处理类型之一,Amazon SAM 会生成 AWS::Lambda::EventSourceMapping
Amazon CloudFormation 资源。这适用于以下类型:DynamoDB
、Kinesis
、MQ
、MSK
和 SQS
。
AWS::Lambda::EventSourceMapping
-
LogicalId
:<function‑LogicalId><event‑LogicalId>
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
指定了事件桥(或事件总线)事件源
如果 AWS::Serverless::Function
的 Event
属性设置为事件桥(或事件总线)类型之一,Amazon SAM 会生成 AWS::Events::Rule
Amazon CloudFormation 资源。这适用于以下类型:EventBridgeRule
、Schedule
和 CloudWatchEvents
。
AWS::Events::Rule
-
LogicalId
:<function‑LogicalId><event‑LogicalId>
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
指定了 IotRule 事件源
如果 AWS::Serverless::Function
的 Event
属性设置为 IoTRule,Amazon SAM 会生成 AWS::IoT::TopicRule
Amazon CloudFormation 资源。
AWS::IoT::TopicRule
-
LogicalId
:<function‑LogicalId><event‑LogicalId>
可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源)
为 Amazon SNS 事件指定了 OnSuccess(或 OnFailure)属性
如果指定了 DestinationConfig
属性的 OnSuccess
(或 OnFailure
)属性或指定了 AWS::Serverless::Function
的 EventInvokeConfig
属性,且目的地类型为 SNS
,但未指定目的地 ARN,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::EventInvokeConfig
和 AWS::SNS::Topic
。
AWS::Lambda::EventInvokeConfig
-
LogicalId
:<function‑LogicalId>
EventInvokeConfig可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源) AWS::SNS::Topic
-
LogicalId
:
(或<function‑LogicalId>
OnSuccessTopic
)<function‑LogicalId>
OnFailureTopic可引用属性:
<function‑LogicalId>
.DestinationTopic如果为 Amazon SNS 事件指定了
OnSuccess
和OnFailure
,为了区分生成的资源,必须使用LogicalId
。
为 Amazon SQS 事件指定了 OnSuccess(或 OnFailure)属性
如果指定了 DestinationConfig
属性的 OnSuccess
(或 OnFailure
)属性或指定了 AWS::Serverless::Function
的 EventInvokeConfig
属性,且目的地类型为 SQS
,但未指定目的地 ARN,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::EventInvokeConfig
和 AWS::SQS::Queue
。
AWS::Lambda::EventInvokeConfig
-
LogicalId
:<function‑LogicalId>
EventInvokeConfig可引用属性:不适用(必须使用
LogicalId
才能引用这种 Amazon CloudFormation 资源) AWS::SQS::Queue
-
LogicalId
:
(或<function‑LogicalId>
OnSuccessQueue
)<function‑LogicalId>
OnFailureQueue可引用属性:
<function‑LogicalId>
.DestinationQueue如果为 Amazon SQS 事件指定了
OnSuccess
和OnFailure
,为了区分生成的资源,必须使用LogicalId
。