在指定了 AWS::Serverless::Function 的情况下生成的 Amazon CloudFormation 资源 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在指定了 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::FunctionAutoPublishAlias 属性,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::AliasAWS::Lambda::Version

AWS::Lambda::Alias

LogicalId: <function‑LogicalId>Alias<alias‑name>

<alias‑name>AutoPublishAlias 将被设置为的字符串。例如,如果将 AutoPublishAlias 设置为 live,则 LogicalId 是:MyFunctionAliaslive

可引用属性:<function‑LogicalId>.Alias

AWS::Lambda::Version

LogicalId: <function‑LogicalId>Version<sha>

<sha> 是在创建堆栈时生成的唯一哈希值。例如,MyFunctionVersion926eeb5ff1

可引用属性:<function‑LogicalId>.Version

有关 AutoPublishAlias 属性的其他信息,请参阅 AWS::Serverless::Function 的“属性”部分

未指定 Role 属性

如果指定 AWS::Serverless::FunctionRole 属性,Amazon SAM 会生成 AWS::IAM::Role Amazon CloudFormation 资源。

AWS::IAM::Role

LogicalId: <function‑LogicalId>Role

可引用属性:不适用(必须使用 LogicalId 才能引用这种 Amazon CloudFormation 资源)

指定了 DeploymentPreference 属性

如果指定了 AWS::Serverless::FunctionDeploymentPreference 属性,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::CodeDeploy::ApplicationAWS::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::FunctionEvent 属性设置为 Api,但指定 RestApiId 属性,Amazon SAM 会生成 AWS::ApiGateway::RestApi Amazon CloudFormation 资源。

AWS::ApiGateway::RestApi

LogicalId: ServerlessRestApi

可引用属性:不适用(必须使用 LogicalId 才能引用这种 Amazon CloudFormation 资源)

指定了 HttpApi 事件源

如果 AWS::Serverless::FunctionEvent 属性设置为 HttpApi,但指定 ApiId 属性,Amazon SAM 会生成 AWS::ApiGatewayV2::Api Amazon CloudFormation 资源。

AWS::ApiGatewayV2::Api

LogicalId: ServerlessHttpApi

可引用属性:不适用(必须使用 LogicalId 才能引用这种 Amazon CloudFormation 资源)

指定了流式事件源

如果 AWS::Serverless::FunctionEvent 属性设置为流式处理类型之一,Amazon SAM 会生成 AWS::Lambda::EventSourceMapping Amazon CloudFormation 资源。这适用于以下类型:DynamoDBKinesisMQMSKSQS

AWS::Lambda::EventSourceMapping

LogicalId: <function‑LogicalId><event‑LogicalId>

可引用属性:不适用(必须使用 LogicalId 才能引用这种 Amazon CloudFormation 资源)

指定了事件桥(或事件总线)事件源

如果 AWS::Serverless::FunctionEvent 属性设置为事件桥(或事件总线)类型之一,Amazon SAM 会生成 AWS::Events::Rule Amazon CloudFormation 资源。这适用于以下类型:EventBridgeRuleScheduleCloudWatchEvents

AWS::Events::Rule

LogicalId: <function‑LogicalId><event‑LogicalId>

可引用属性:不适用(必须使用 LogicalId 才能引用这种 Amazon CloudFormation 资源)

指定了 IotRule 事件源

如果 AWS::Serverless::FunctionEvent 属性设置为 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::FunctionEventInvokeConfig 属性,且目的地类型为 SNS,但指定目的地 ARN,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::EventInvokeConfigAWS::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 事件指定了 OnSuccessOnFailure,为了区分生成的资源,必须使用 LogicalId

为 Amazon SQS 事件指定了 OnSuccess(或 OnFailure)属性

如果指定了 DestinationConfig 属性的 OnSuccess(或 OnFailure)属性或指定了 AWS::Serverless::FunctionEventInvokeConfig 属性,且目的地类型为 SQS,但指定目的地 ARN,Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::EventInvokeConfigAWS::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 事件指定了 OnSuccessOnFailure,为了区分生成的资源,必须使用 LogicalId