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