AWS CloudFormation resources generated when AWS::Serverless::Function is specified
When an AWS::Serverless::Function is specified, AWS Serverless Application Model
(AWS SAM) always creates an AWS::Lambda::Function base AWS CloudFormation resource.
AWS::Lambda::Function-
LogicalId:<function‑LogicalId>Referenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
In addition to this AWS CloudFormation resource, when AWS::Serverless::Function is
specified, AWS SAM also generates AWS CloudFormation resources for the following scenarios.
Scenarios
- AutoPublishAlias property is specified
- Role property is not specified
- DeploymentPreference property is specified
- An Api event source is specified
- An HttpApi event source is specified
- A streaming event source is specified
- An event bridge (or event bus) event source is specified
- An IotRule event source is specified
- OnSuccess (or OnFailure) property is specified for Amazon SNS events
- OnSuccess (or OnFailure) property is specified for Amazon SQS events
AutoPublishAlias property is specified
When the AutoPublishAlias property of an
AWS::Serverless::Function is specified, AWS SAM generates the following
AWS CloudFormation resources: AWS::Lambda::Alias and
AWS::Lambda::Version.
AWS::Lambda::Alias-
LogicalId:<function‑LogicalId>Alias<alias‑name>is the string that<alias‑name>AutoPublishAliasis set to. For example, if you setAutoPublishAliastolive, theLogicalIdis:MyFunctionAliaslive.Referenceable property:
<function‑LogicalId>.Alias AWS::Lambda::Version-
LogicalId:<function‑LogicalId>Version<sha>is a unique hash value that is generated when the stack is created. For example,<sha>MyFunctionVersion926eeb5ff1.Referenceable property:
<function‑LogicalId>.Version
Role property is not specified
When the Role property of an AWS::Serverless::Function is
not specified, AWS SAM generates an AWS::IAM::Role
AWS CloudFormation resource.
AWS::IAM::Role-
LogicalId:<function‑LogicalId>RoleReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
DeploymentPreference property is specified
When the DeploymentPreference property of an
AWS::Serverless::Function is specified, AWS SAM generates the following
resources AWS CloudFormation resources: AWS::CodeDeploy::Application and
AWS::CodeDeploy::DeploymentGroup. In addition, if the Role
property of the DeploymentPreference object is not
specified, AWS SAM also generates an AWS::IAM::Role AWS CloudFormation resource.
AWS::CodeDeploy::Application-
LogicalId:ServerlessDeploymentApplicationReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
AWS::CodeDeploy::DeploymentGroup-
LogicalId:<function‑LogicalId>DeploymentGroupReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource) AWS::IAM::Role-
LogicalId:CodeDeployServiceRoleReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
An Api event source is specified
When the Event property of an AWS::Serverless::Function is
set to Api, but the RestApiId property is
not specified, AWS SAM generates the
AWS::ApiGateway::RestApi AWS CloudFormation resource.
AWS::ApiGateway::RestApi-
LogicalId:ServerlessRestApiReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
An HttpApi event source is specified
When the Event property of an AWS::Serverless::Function is
set to HttpApi, but the ApiId property is
not specified, AWS SAM generates the
AWS::ApiGatewayV2::Api AWS CloudFormation resource.
AWS::ApiGatewayV2::Api-
LogicalId:ServerlessHttpApiReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
A streaming event source is specified
When the Event property of an AWS::Serverless::Function is
set to one of the streaming types, AWS SAM generates the
AWS::Lambda::EventSourceMapping AWS CloudFormation resource. This applies to the
following types: DynamoDB, Kinesis, MQ,
MSK, and SQS.
AWS::Lambda::EventSourceMapping-
LogicalId:<function‑LogicalId><event‑LogicalId>Referenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
An event bridge (or event bus) event source is specified
When the Event property of an AWS::Serverless::Function is
set to one of the event bridge (or event bus) types, AWS SAM generates the
AWS::Events::Rule AWS CloudFormation resource. This applies to the
following types: EventBridgeRule, Schedule, and
CloudWatchEvents.
AWS::Events::Rule-
LogicalId:<function‑LogicalId><event‑LogicalId>Referenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
An IotRule event source is specified
When the Event property of an AWS::Serverless::Function is
set to IoTRule, AWS SAM generates the
AWS::IoT::TopicRule AWS CloudFormation resource.
AWS::IoT::TopicRule-
LogicalId:<function‑LogicalId><event‑LogicalId>Referenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource)
OnSuccess (or OnFailure) property is specified for Amazon SNS events
When the OnSuccess (or OnFailure) property of the
DestinationConfig property of the EventInvokeConfig
property of an AWS::Serverless::Function is specified, and the destination
type is SNS but the destination ARN is not specified,
AWS SAM generates the following AWS CloudFormation resources:
AWS::Lambda::EventInvokeConfig and AWS::SNS::Topic.
AWS::Lambda::EventInvokeConfig-
LogicalId:<function‑LogicalId>EventInvokeConfigReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource) AWS::SNS::Topic-
LogicalId:(or<function‑LogicalId>OnSuccessTopic)<function‑LogicalId>OnFailureTopicReferenceable property:
<function‑LogicalId>.DestinationTopicIf both
OnSuccessandOnFailureare specified for an Amazon SNS event, to distinguish between the generated resources, you must use theLogicalId.
OnSuccess (or OnFailure) property is specified for Amazon SQS events
When the OnSuccess (or OnFailure) property of the
DestinationConfig property of the EventInvokeConfig
property of an AWS::Serverless::Function is specified, and the destination
type is SQS but the destination ARN is not specified,
AWS SAM generates the following AWS CloudFormation resources:
AWS::Lambda::EventInvokeConfig and AWS::SQS::Queue.
AWS::Lambda::EventInvokeConfig-
LogicalId:<function‑LogicalId>EventInvokeConfigReferenceable property: N/A (you must use the
LogicalIdto reference this AWS CloudFormation resource) AWS::SQS::Queue-
LogicalId:(or<function‑LogicalId>OnSuccessQueue)<function‑LogicalId>OnFailureQueueReferenceable property:
<function‑LogicalId>.DestinationQueueIf both
OnSuccessandOnFailureare specified for an Amazon SQS event, to distinguish between the generated resources, you must use theLogicalId.