kittu
kittu

Reputation: 7008

How to get reference to aws api gateway in serverless framework

provider:
  name: aws
  runtime: nodejs14.x

functions:
  hello:
    handler: handler.hello
    events:
      - httpApi:
          path: /
          method: get
          RestApiId:
            Ref: TestApi // How to get reference of AWS::Serverless::Api i.e. TestApi here

resources:
  Resources:
    authFunction:
      Type: AWS::Serverless::Function
      Properties:
        CodeUri: .
        Handler: handler.hello

    TestApi:
      DependsOn: AuthFunction
      Type: AWS::Serverless::Api
      Properties:
        StageName: dev
        Auth:
            DefaultAuthorizer: LambdaRequestAuthorizer
            Authorizers:
              LambdaRequestAuthorizer:
                FunctionPayloadType: REQUEST
                FunctionArn: !GetAtt AuthFunction.Arn

Getting error:

Configuration error at 'functions.hello': unrecognized property 'RestApiId'

Upvotes: 0

Views: 929

Answers (1)

pgrzesik
pgrzesik

Reputation: 2427

Let's first clarify a few things.

The httpApi event is using HTTP API, not REST API from AWS Api Gateway.

You can set externally created HTTP API by specifying it in the following way:

provider:
  httpApi:
    id: <your http api reference>

If you'd like to use REST API, then you would need to use http event type and set it like this:

provider:
  apiGateway:
    restApiId: <your rest api reference>

Upvotes: 1

Related Questions