Как определить существующий проект шлюза API, который будет использоваться для развертывания в serverless.yml? - PullRequest
2 голосов
/ 10 ноября 2019

Я использую serverless framework для развертывания универсального углового приложения (aws lambda + API gateway). Каждый раз, когда я запускаю развертывание с другого компьютера или просто определяю новый этап, безсерверный сервер автоматически создает новый проект шлюза API в aws.

# serverless.yml

# generated by @ng-toolkit/serverless
service: web-app

plugins:
  - serverless-apigw-binary

provider:
  name: aws
  runtime: nodejs8.10
  memorySize: 512
  timeout: 20
  apiName: ssr-web-app

package:
  exclude:
   - src/**
   - node_modules/**
   - firebug-lite/**
   - e2e/**
   - coverage/**
   - '!node_modules/aws-serverless-express/**'
   - '!node_modules/binary-case/**'
   - '!node_modules/type-is/**'
   - '!node_modules/media-typer/**'
   - '!node_modules/mime-types/**'
   - '!node_modules/mime-db/**'

custom:
  apigwBinary:
    types:
      - '*/*'

functions:
  api:
    handler: lambda.universal
    events:
      - http: ANY {proxy+}
      - http: ANY /

Я хочу, чтобы при каждом запуске развертывания serverlessвсегда используйте один и тот же конкретный проект gateway API, создавая новые этапы в рамках одного и того же определенного проекта. Как я могу определить ссылку на существующий gateway API проект (id?) В моем serverless.yml?

---- EDIT ---- Я пытался добавить в раздел provider следующее:

apiGateway: 
   restApiId: xxxxxxxxxx 
   restApiRootResourceId: yyyyyyyyyy 

и получена ошибка «Произошла ошибка: ApiGatewayResourceProxyVar - еще один ресурс с таким же родителем уже имеет это имя: {proxy +}"

1 Ответ

0 голосов
/ 11 ноября 2019

Отличный вопрос!

Чтобы поделиться существующими шлюзами API, вам необходимо объявить связанный restApiId в файле serverless.yml вместе с restApiRootResourceId.

* 1007. * Вы можете прочитать больше в документах, здесь . Вы также можете следить за этим отличным сообщением в блоге
...