лямбда-функция и apigateway в другом стеке - PullRequest
0 голосов
/ 12 июня 2019

Я делаю API-GATEWAY с использованием облачной информации. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу интегрировать лямбда-функцию для вызова в фоновом режиме. Я уже сделал функцию лямбда и хочу интегрировать ее в мой apigateway Есть ли способ импортировать ресурс за пределы стека CF?

Я попытался создать параметр или тип lambda и вызвать resourceid в типе интеграции.

AWSTemplateFormatVersion: "2010-09-09"
Description: >
  For creating Restul api gateway,
  Background invocation in lambda

Parameters:
  apiName:
      Type: String
      Default: ApolloDevB

Resources:
  MyRestApi:
    Type: AWS::ApiGateway::RestApi
    Properties:
      Name: !Ref apiName

  Restapiresource:
    Type: 'AWS::ApiGateway::Resource'
    Properties:
      RestApiId: !Ref MyRestApi
      ParentId: !GetAtt
        - MyRestApi
        - RootResourceId
      PathPart: charges

  Restapiresource2:
    Type: 'AWS::ApiGateway::Resource'
    Properties:
      RestApiId: !Ref MyRestApi
      ParentId: !GetAtt
        - MyRestApi
        - RootResourceId
      PathPart: online-count

  Method:
    Type: AWS::ApiGateway::Method
    Properties:
      HttpMethod: POST
      ResourceId: !Ref Restapiresource
      RestApiId: !Ref MyRestApi
      AuthorizationType: NONE


  Method2:
    Type: AWS::ApiGateway::Method
    Properties:
      HttpMethod: GET
      ResourceId: !Ref Restapiresource2
      RestApiId: !Ref MyRestApi
      AuthorizationType: NONE
      Integration:
        IntegrationHttpMethod: "POST"
        Type: "AWS"
        Uri: !Sub
          - "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${lambdaArn}/invocations"
          - lambdaArn: !GetAtt "lambdaFunction.Arn"
      ResourceId: !Ref Restapiresource2
      RestApiId: !Ref MyRestApi
...