Конечный тип конфигурации EDGE не поддерживается в этом регионе - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь запустить шлюз API AWS через CloudFormation (YAML + Swagger).

При попытке запустить стек через консоль я получаю;

"Тип конфигурации конечной точкиEDGE не поддерживается в этом регионе: us-gov-west-1 "

Я указал конфигурацию конечной точки как" РЕГИОНАЛЬНАЯ ", но, похоже, она не принимает.

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

На данный момент я предполагаю, что по умолчанию он работает с EDGE и что это может даже не бытьподдерживается в регионе правительства.

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  rTestAPI:
    Type: AWS::ApiGateway::RestApi
    Properties:
      Name: Test API
      Description: A test API
      EndpointConfiguration:
        Types:
          - REGIONAL
      Body:
        swagger: '2.0'
        info:
          version: '2019-01-11T16:05:08Z'
          title: test-api
        # host: 9lazpn2fob.execute-api.us-gov-west-1.amazonaws.com
        basePath: /default
        schemes:
          - https
        paths:
          /test:
            post:
              consumes:
                - application/json
                - application/x-www-form-urlencoded
              produces:
                - application/json
                - text/html
              responses:
                '200':
                  description: 200 response
                  schema:
                    $ref: '#/definitions/Empty'
                  headers:
                    Access-Control-Allow-Origin:
                      type: string
                    Access-Control-Allow-Headers:
                      type: string
                    Content-Type:
                      type: string
                '400':
                  description: 400 response
                  schema:
                    $ref: '#/definitions/Error'
                  headers:
                    Access-Control-Allow-Origin:
                      type: string
                    Access-Control-Allow-Headers:
                      type: string
                    Content-Type:
                      type: string
            options:
              consumes:
                - application/json
              produces:
                - application/json
              responses:
                '200':
                  description: 200 response
                  schema:
                    $ref: '#/definitions/surveydata'
                  headers:
                    Access-Control-Allow-Origin:
                      type: string
                    Access-Control-Allow-Methods:
                      type: string
                    Access-Control-Allow-Headers:
                      type: string
        definitions:
          Empty:
            type: object
            title: Empty Schema
          Error:
            type: object
            properties:
              message:
                type: string
            title: Error Schema
          surveydata:
            type: object
            properties:
              name:
                type: string
            title: Survey Data Schema

Мой ожидаемый результат состоит в том, что CloudFormation создает шлюз API с конечной точкой REGIONAL.

Ответы [ 2 ]

0 голосов
/ 14 июля 2019

При импорте Body с использованием Swagger, CFN игнорирует поле EndpointConfiguration.Чтобы обойти это, попробуйте добавить endpointConfigurationTypes к Parameters согласно приведенному ниже примеру:

 ApiGatewayApi:
    Type: AWS::ApiGateway::RestApi
    Properties:
      Parameters:
        endpointConfigurationTypes: REGIONAL
        ignore: documentation
      BodyS3Location:
        Bucket: BATS::SAM::CodeS3Bucket
        Key:xxxxxx
      EndpointConfiguration:
        Types:
        - REGIONAL
0 голосов
/ 03 мая 2019

У меня была такая же проблема в Китае, и для одного стека, который я обновил, чтобы он включал тело Swagger, он работал, для другого стека, который я создал, он не работал.

Так что единственный выход, который я использовалвозможность использовать это развернуть стек и шлюз API без тела Swagger, а затем включить тело Swagger и обновить стек.Я создал пустой стек:

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "The AWS CloudFormation template for this Serverless application",
    "Resources": {
        "ApiGatewayRestApi": {
            "Type": "AWS::ApiGateway::RestApi",
            "Properties": {
                "Name": "my-api-name",
                "EndpointConfiguration": {
                    "Types": [ "REGIONAL" ]
                }
            }
        }
    }
}

, который был успешно создан.Обратите внимание, что вы должны использовать тот же логический идентификатор, чтобы обновить его (в моем случае это «ApiGatewayRestApi»).После этого я взял сам шаблон с Swagger и обновил его.

Надеюсь, это поможет!

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