Не удалось создать API-шлюз - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь создать этот шлюз API ( gist ) с помощью Authorizer и ЛЮБОГО метода.

Я сталкиваюсь с этой ошибкой:

The following resource(s) failed to create: [BaseLambdaExecutionPolicy, ApiGatewayDeployment]

Я проверил параметры, переданные в этот шаблон из других моих стеков, и они верны. Я проверил этот шаблон, и он действителен.

Мой шаблон изменен из этого шаблона с "Runtime": "nodejs8.10".

Это тот же стек ( gist ), который успешно создан с использованием swagger 2. Я просто хочу заменить swagger 2 на AWS::ApiGateway::Method.

Обновление 6 июня 2019 года:

Я попытался создать весь вложенный стек, используя рабочую версию стека API-шлюза, затем создать еще один API-шлюз с шаблоном, который не работает с параметрами, полученными из вложенного стека, затем у меня есть следующее:

The REST API doesn't contain any methods (Service: AmazonApiGateway; Status Code: 400; Error Code: BadRequestException; Request ID: ID)

Но я указал метод в своем шаблоне, следуя Документы AWS :

"GatewayMethod": {
            "Type" : "AWS::ApiGateway::Method",
            "DependsOn": ["LambdaRole", "ApiGateway"],
            "Properties" : {
                "ApiKeyRequired" : false,
                "AuthorizationType" : "Cognito",
                "HttpMethod" : "ANY",
                "Integration" : {
                    "IntegrationHttpMethod" : "ANY",
                    "Type" : "AWS",
                    "Uri" : {
                        "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaFunction.Arn}/invocations"
                    }
                },
                "MethodResponses" : [{
                    "ResponseModels": {
                      "application/json": "Empty"
                    },
                    "StatusCode": 200
                }],
                "RequestModels" : {"application/json": "Empty"},
                "ResourceId" : {
                    "Fn::GetAtt": ["ApiGateway", "RootResourceId"] 
                },
                "RestApiId" : {
                    "Ref": "ApiGateway"
                }
            }
        },

1 Ответ

1 голос
/ 06 июня 2019

Благодаря предложению @ Джона. Я попытался создать вложенный стек с версией, которая работала, и передать параметры для версии, которая не работает.

Причина этой ошибки:

CloudFormation может попытаться создать развертывание до создания метода

из balaji ответ здесь .

Так вот что я сделал:

"methodANY": {
            "Type": "AWS::ApiGateway::Method",
            "Properties": {
              "AuthorizationType": "COGNITO_USER_POOLS",
...},
"ApiGatewayDeployment": {
            "Type": "AWS::ApiGateway::Deployment",
            "DependsOn": "methodANY",
...

Я также нашел эту статью на cloudonaut.io Майкла Виттига полезной.

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