Невозможно получить доступ к restApiId & restApiRootResourceId для перекрестной ссылки в безсерверном yml - PullRequest
0 голосов
/ 31 января 2019

Так как у меня была проблема с ошибкой 200 ресурсов, я нашел способ использовать перекрестную ссылку на стек путем разделения на разные сервисы.Мне удалось сделать это с помощью перекрестной ссылки.Проблема в том, что я не могу дать restApiId & restApiRootResourceId динамически.Прямо сейчас я статически устанавливаю идентификаторы в сервис-2.

В основном сервис-1 выглядит так:

provider:
  name: aws
  runtime: nodejs8.10
  apiGateway:
    restApiId: 
      Ref: ApiGatewayRestApi
    restApiResources:
      Fn::GetAtt:
          - ApiGatewayRestApi
          - RootResourceId
custom:
  stage: "${opt:stage, self:provider.stage}"

resources:
  Resources:
    ApiGatewayRestApi:
      Type: AWS::ApiGateway::RestApi
      Properties:
        Name: ${self:service}-${self:custom.stage}-1

  Outputs:
    ApiGatewayRestApiId:
      Value:
        Ref: ApiGatewayRestApi
      Export:
        Name: ApiGatewayRestApi-restApiId

    ApiGatewayRestApiRootResourceId:
      Value:
         Fn::GetAtt:
          - ApiGatewayRestApi
          - RootResourceId 
      Export:
        Name: ApiGatewayRestApi-rootResourceId

А сервис-2 выглядит так:

provider:
  name: aws
  runtime: nodejs8.10
  apiGateway-shared:
    restApiId:
      'Fn::ImportValue': ApiGatewayRestApi-restApiId
    restApiRootResourceId:
      'Fn::ImportValue': ApiGatewayRestApi-rootResourceId

Как и в приведенной выше конфигурации службы-2, я не могу ссылаться на идентификаторы.К вашему сведению: оба сервиса находятся в разных файлах.Так как же не так с этим подходом?

1 Ответ

0 голосов
/ 31 января 2019

Без сервера имеет специальный синтаксис о том, как получить доступ к выходным переменным стека: {cf:stackName.outputKey}.Обратите внимание, что использование Fn::ImportValue будет работать в разделе resources.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...