CloudFormation 指定 AWS::Serverless::Function 時產生的資源 - AWS Serverless Application Model

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudFormation 指定 AWS::Serverless::Function 時產生的資源

指定 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 資源。

核心函數屬性

下列案例會根據核心函數屬性產生 CloudFormation 資源:

未指定角色屬性

AWS::Serverless::Function 指定 的 Role 屬性時, AWS SAM 會產生 AWS::IAM::Role CloudFormation 資源。

AWS::IAM::Role

LogicalId: <function‑LogicalId>Role

可參考屬性:N/A (您必須使用 LogicalId 來參考此 CloudFormation 資源)

已指定 AutoPublishAlias 屬性

AWS::Serverless::Function 指定 的 AutoPublishAlias 屬性時, AWS SAM 會產生下列 CloudFormation 資源: AWS::Lambda::AliasAWS::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 的屬性一節

已指定 DeploymentPreference 屬性

AWS::Serverless::Function 指定 的 DeploymentPreference 屬性時, AWS SAM 會產生下列 CloudFormation 資源: AWS::CodeDeploy::ApplicationAWS::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 屬性

指定 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

事件來源

下列案例會根據事件來源產生 CloudFormation 資源:

已指定 Api 事件來源

當 的 Event 屬性AWS::Serverless::Function設定為 Api,但未指定 RestApiId 屬性時, AWS SAM 會產生 AWS::ApiGateway::RestApi CloudFormation 資源。

AWS::ApiGateway::RestApi

LogicalId: ServerlessRestApi

可參考屬性:N/A (您必須使用 LogicalId來參考此 CloudFormation 資源)

已指定 HttpApi 事件來源

當 的 Event 屬性AWS::Serverless::Function設定為 HttpApi,但未指定 ApiId 屬性時, AWS SAM 會產生 AWS::ApiGatewayV2::Api CloudFormation 資源。

AWS::ApiGatewayV2::Api

LogicalId: ServerlessHttpApi

可參考屬性:N/A (您必須使用 LogicalId來參考此 CloudFormation 資源)

已指定串流事件來源

當 的 Event 屬性AWS::Serverless::Function設定為其中一個串流類型時, AWS SAM 會產生 AWS::Lambda::EventSourceMapping CloudFormation 資源。這適用於下列類型:DynamoDBKinesisMSKMQSQS

AWS::Lambda::EventSourceMapping

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

可參考屬性:N/A (您必須使用 LogicalId來參考此 CloudFormation 資源)

已指定事件橋接 (或事件匯流排) 事件來源

當 的 Event 屬性AWS::Serverless::Function設定為其中一個事件橋接 (或事件匯流排) 類型時, AWS SAM 會產生 AWS::Events::Rule CloudFormation 資源。這適用於下列類型:EventBridgeRuleScheduleCloudWatchEvents

AWS::Events::Rule

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

可參考屬性:N/A (您必須使用 LogicalId來參考此 CloudFormation 資源)

已指定 IotRule 事件來源

當 的 Event 屬性AWS::Serverless::Function設定為 IoTRule 時, AWS SAM 會產生 AWS::IoT::TopicRule CloudFormation 資源。

AWS::IoT::TopicRule

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

可參考屬性:N/A (您必須使用 LogicalId來參考此 CloudFormation 資源)

事件組態

下列案例會根據事件組態產生 CloudFormation 資源:

針對 Amazon SNS 事件指定 OnSuccess (或 OnFailure) 屬性 Amazon SNS

EventInvokeConfigAWS::Serverless::Function指定 之 屬性的 DestinationConfig 屬性 OnSuccess(或 OnFailure) 屬性,且目的地類型為 ,SNS但未指定目的地 ARN 時, AWS SAM 會產生下列 CloudFormation 資源: AWS::Lambda::EventInvokeConfigAWS::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 事件OnFailure指定 OnSuccess和 ,若要區分產生的資源,您必須使用 LogicalId

針對 Amazon SQS 事件指定 OnSuccess (或 OnFailure) 屬性 Amazon SQS

AWS::Serverless::Function指定 之 DestinationConfig 屬性的 EventInvokeConfig 屬性 OnSuccess(或 OnFailure) 屬性,且目的地類型為 ,SQS但未指定目的地 ARN 時, AWS SAM 會產生下列 CloudFormation 資源: AWS::Lambda::EventInvokeConfigAWS::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 事件同時指定 OnFailure OnSuccess和 ,若要區分產生的資源,您必須使用 LogicalId