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
LogicalId
to 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>
AutoPublishAlias
is set to. For example, if you setAutoPublishAlias
tolive
, theLogicalId
is:MyFunction
Aliaslive
.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>
MyFunction
Version926eeb5ff1
.Referenceable property:
<function‑LogicalId>
.Version
For additional information on the AutoPublishAlias
property, see the Properties section of AWS::Serverless::Function.
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
LogicalId
to 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
:ServerlessDeploymentApplication
Referenceable property: N/A (you must use the
LogicalId
to reference this AWS CloudFormation resource)
AWS::CodeDeploy::DeploymentGroup
-
LogicalId
:<function‑LogicalId>
DeploymentGroupReferenceable property: N/A (you must use the
LogicalId
to reference this AWS CloudFormation resource) AWS::IAM::Role
-
LogicalId
:CodeDeployServiceRole
Referenceable property: N/A (you must use the
LogicalId
to 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
:ServerlessRestApi
Referenceable property: N/A (you must use the
LogicalId
to 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
:ServerlessHttpApi
Referenceable property: N/A (you must use the
LogicalId
to 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
LogicalId
to 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
LogicalId
to 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
LogicalId
to 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
LogicalId
to reference this AWS CloudFormation resource) AWS::SNS::Topic
-
LogicalId
:
(or<function‑LogicalId>
OnSuccessTopic
)<function‑LogicalId>
OnFailureTopicReferenceable property:
<function‑LogicalId>
.DestinationTopicIf both
OnSuccess
andOnFailure
are 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
LogicalId
to reference this AWS CloudFormation resource) AWS::SQS::Queue
-
LogicalId
:
(or<function‑LogicalId>
OnSuccessQueue
)<function‑LogicalId>
OnFailureQueueReferenceable property:
<function‑LogicalId>
.DestinationQueueIf both
OnSuccess
andOnFailure
are specified for an Amazon SQS event, to distinguish between the generated resources, you must use theLogicalId
.