'AWS SAM - How can create an API event for a FunctionAlias?

My SAM template is currently using a Lambda function to provide information through an API Gateway. However, I would like to have the API Gateway pointing to an alias instead.

How can I do it with SAM?

LambdaFunction:
    Type: 'AWS::Serverless::Function'
    Properties: 
      Runtime: nodejs14.x
      Handler: index.handler
      CodeUri: ./software
      MemorySize: 128
      FunctionName: Name
      Timeout: 5
      Policies:
      - AmazonDynamoDBReadOnlyAccess
      Events:
        MyApiResource:
          Type: Api
          Properties:
            Path: /path
            Method: get
            RestApiId: !Ref ApiGatewayApi
  FunctionAlias:
    Type: AWS::Lambda::Alias
    Properties:
      FunctionName: !Ref LambdaFunction
      FunctionVersion: !GetAtt FunctionVersion.Version
      Name: prod
  

I tried to cut and past the events to the alias but it didnt work.



Solution 1:[1]

When adding the AutoPublishAlias property to the lambda function, the API Gateway will use that alias when creating the integrations (By using FQ Lambda ARN)

So you just need to add the following to the function:

AutoPublishAlias: prod

Link here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Amer Sawan