本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon CloudFormation 指定时AWS::Serverless::Function生成的资源
指定AWS::Serverless::Function时, Amazon Serverless Application Model
(Amazon SAM) 始终会创建AWS::Lambda::Function基础 Amazon CloudFormation 资源。
AWS::Lambda::Function-
LogicalId:<function‑LogicalId>可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
除此 Amazon CloudFormation 资源外,如果指定了AWS::Serverless::Function此资源, Amazon SAM 还会生成用于以下场景的 Amazon CloudFormation 资源。
核心功能属性
以下场景基于核心功能属性生成 Amazon CloudFormation 资源:
未指定 Role 属性
如果未指定 a AWS::Serverless::Function 的Role属性,则 Amazon SAM 会生成AWS::IAM::Role Amazon CloudFormation 资源。
AWS::IAM::Role-
LogicalId:<function‑LogicalId>Role可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
AutoPublishAlias 属性已指定
当指定了的AutoPublishAlias属性AWS::Serverless::Function时, Amazon SAM 会生成以下 Amazon CloudFormation 资源:AWS::Lambda::Alias和AWS::Lambda::Version。
AWS::Lambda::Alias-
LogicalId:<function‑LogicalId>Alias<alias‑name>是<alias‑name>AutoPublishAlias将被设置为的字符串。例如,如果设置为AutoPublishAliaslive,则LogicalId为:MyFunction别名live。可引用属性:
<function‑LogicalId>.Alias AWS::Lambda::Version-
LogicalId:<function‑LogicalId>Version<sha>是在创建堆栈时生成的唯一哈希值。例如,<sha>MyFunction版本926eeb5ff1。可引用属性:
<function‑LogicalId>.Version
有关该AutoPublishAlias属性的更多信息,请参阅的 “属性” 部分 AWS::Serverless::Function。
DeploymentPreference 属性已指定
当指定了的DeploymentPreference属性AWS::Serverless::Function时, Amazon SAM 会生成以下资源 Amazon CloudFormation 资源:AWS::CodeDeploy::Application和AWS::CodeDeploy::DeploymentGroup。此外,如果未指定DeploymentPreference对象的Role属性, Amazon SAM 还会生成AWS::IAM::Role Amazon CloudFormation 资源。
AWS::CodeDeploy::Application-
LogicalId:ServerlessDeploymentApplication可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
AWS::CodeDeploy::DeploymentGroup-
LogicalId:<function‑LogicalId>DeploymentGroup可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源) AWS::IAM::Role-
LogicalId:CodeDeployServiceRole可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
FunctionUrlConfig 属性已指定
指定FunctionUrlConfig属性后, Amazon SAM 会根据生成不同的 Amazon CloudFormation 资源AuthType。
指定AuthType: NONE后,将 Amazon SAM 生成以下 Amazon CloudFormation 资源:
AWS::Lambda::Permission(调用访问权限)-
LogicalId:<function‑LogicalId>URLInvokeAllowPublicAccess可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源) AWS::Lambda::Permission(公共访问)-
LogicalId:<function‑LogicalId>UrlPublicPermissions可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源) AWS::Lambda::Url-
LogicalId:<function‑LogicalId>Url可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
指定AuthType: AWS_IAM时,仅 Amazon SAM 生成:
AWS::Lambda::Url-
LogicalId:<function‑LogicalId>Url可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
有关该FunctionUrlConfig属性的更多信息,请参阅FunctionUrlConfig。
事件源
以下场景基于事件源生成 Amazon CloudFormation 资源:
指定了 Api 事件源
如果的Event属性设置AWS::Serverless::Function为Api,但未指定该RestApiId属性,则 Amazon SAM 生成AWS::ApiGateway::RestApi Amazon CloudFormation 资源。
AWS::ApiGateway::RestApi-
LogicalId:ServerlessRestApi可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
已指定 HttpApi事件源
如果的Event属性设置AWS::Serverless::Function为HttpApi,但未指定该ApiId属性,则 Amazon SAM 生成AWS::ApiGatewayV2::Api Amazon CloudFormation 资源。
AWS::ApiGatewayV2::Api-
LogicalId:ServerlessHttpApi可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
指定了流式事件源
将的Event属性设置AWS::Serverless::Function为其中一种流媒体类型时, Amazon SAM 会生成AWS::Lambda::EventSourceMapping Amazon CloudFormation 资源。这适用于以下类型:DynamoDB、Kinesis、MQ、MSK 和 SQS。
AWS::Lambda::EventSourceMapping-
LogicalId:<function‑LogicalId><event‑LogicalId>可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
指定了事件桥(或事件总线)事件源
将的Event属性设置AWS::Serverless::Function为事件桥(或事件总线)类型之一时, Amazon SAM 会生成AWS::Events::Rule Amazon CloudFormation 资源。这适用于以下类型:EventBridgeRule、Schedule 和 CloudWatchEvents。
AWS::Events::Rule-
LogicalId:<function‑LogicalId><event‑LogicalId>可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
已指定 IotRule事件源
当的Event属性设置AWS::Serverless::Function为 Io 时TRule, Amazon SAM 会生成AWS::IoT::TopicRule Amazon CloudFormation 资源。
AWS::IoT::TopicRule-
LogicalId:<function‑LogicalId><event‑LogicalId>可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源)
事件配置
以下方案根据事件配置生成 Amazon CloudFormation 资源:
OnSuccess(或 OnFailure)属性是为亚马逊 SNS 事件指定的
如果指定了属性的属性AWS::Serverless::Function的OnSuccess(或OnFailure)EventInvokeConfig属性,且目标类型为,SNS但未指定目标 ARN,则 Amazon SAM 生成以下 Amazon CloudFormation 资源:AWS::Lambda::EventInvokeConfig和。DestinationConfig AWS::SNS::Topic
AWS::Lambda::EventInvokeConfig-
LogicalId:<function‑LogicalId>EventInvokeConfig可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源) AWS::SNS::Topic-
LogicalId:(或<function‑LogicalId>OnSuccessTopic)<function‑LogicalId>OnFailureTopic可引用属性:
<function‑LogicalId>.DestinationTopic如果为 Amazon SNS 事件指定了
OnSuccess和OnFailure,为了区分生成的资源,必须使用LogicalId。
OnSuccess(或 OnFailure)属性是为亚马逊 SQS 事件指定的
如果指定了属性的属性AWS::Serverless::Function的OnSuccess(或OnFailure)EventInvokeConfig属性,且目标类型为,SQS但未指定目标 ARN,则 Amazon SAM 生成以下 Amazon CloudFormation 资源:AWS::Lambda::EventInvokeConfig和。DestinationConfig AWS::SQS::Queue
AWS::Lambda::EventInvokeConfig-
LogicalId:<function‑LogicalId>EventInvokeConfig可引用的属性:N/A(必须使用
LogicalId来引用此 Amazon CloudFormation 资源) AWS::SQS::Queue-
LogicalId:(或<function‑LogicalId>OnSuccessQueue)<function‑LogicalId>OnFailureQueue可引用属性:
<function‑LogicalId>.DestinationQueue如果为 Amazon SQS 事件指定了
OnSuccess和OnFailure,为了区分生成的资源,必须使用LogicalId。