Ошибка Cloudformation — Ресурс типа «AWS::APIGateway::Модель «с идентификатором» Пустой » уже существует

#amazon-web-services #amazon-cloudformation #aws-api-gateway

Вопрос:

Я создаю APIGateway, используя Cloudformation. При попытке создания с помощью консоли AWS CF я получаю эту ошибку: введите описание изображения здесь

Ресурс EmptyModel представляет собой объект AWS::APIGateway::Model, который выглядит следующим образом:

     EmptyModel:
    Type: "AWS::ApiGateway::Model"
    Properties:
        RestApiId: !Ref ApiGatewayRestApi
        Name: "Empty"
        Description: "This is a default empty schema model"
        Schema: |
            {
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title" : "Empty Schema",
              "type" : "object"
            }
        ContentType: "application/json"
 

Я ссылаюсь на эту модель в каждом из моих объектов AWS::APIGateway::метода в шаблоне CF следующим образом:
введите описание изображения здесь

Что я делаю не так? Я использовал Former2 для реинжиниринга моего текущего api и получения части этого шаблона для нового api, который я создаю. Поэтому мне интересно, есть ли в этом что-то странное? Любая помощь будет очень признательна.

Ответ №1:

Я смог, наконец, определить эту проблему с помощью многих проб и ошибок. Очевидно, модели являются общими для всех API в вашей учетной записи (или, может быть, только в вашем регионе).

Таким образом, ошибка указывала на то, что уже существовала модель под названием «Пустая», и это потому, что она была в другом API. Я изменил название на «EmptyModel», и это сработало великолепно!

Ответ №2:

Если вы использовали former2 для создания шаблона из существующих ресурсов, вы не можете просто развернуть полученный шаблон, так как вы получите ошибки, которые вы получаете.

Вместо этого вам нужно изменить шаблон и импортировать свои ресурсы в CloudFormation. Или проще, вам нужно удалить существующие ресурсы, а затем создать их заново с помощью CloudFormation.