Создание ресурса CloudFormation, если не существует

Полиморфизм в терминах кодирования - это когда ваш объект может существовать как несколько типов через наследование и т. д. Если вы создадите класс с именем «Shape», который определяет количество сторон вашего объекта, тогда вы можете создать новый класс, который наследует его как «Квадрат». Когда вы впоследствии создадите экземпляр «Квадрата», вы можете отбросить его назад и вперед от «Shape» до «Square» по мере необходимости.

0
задан ColossusMark1 5 March 2019 в 07:49
поделиться

2 ответа

Это не совсем тот ответ, который вам нужен. Но в целом вы можете использовать Conditions для этого. В своем шаблоне вы определяете свое условие в разделе Conditions и используете его для условного создания ресурса. например,

Parameters:
  EnvironmentSize:
    Type: String
    Default: Micro
    AllowedValues:
      - Micro
      - Small
      - Medium
      - AuroraCluster
Conditions:
  isntAuroraCluster:
    !Not [!Equals [!Ref EnvironmentSize, "AuroraCluster"]]
DBInstance:
  Type: AWS::RDS::DBInstance
  Condition: isntAuroraCluster
  Properties:
    DBInstanceClass: !FindInMap [InstanceSize, !Ref EnvironmentSize, DB]
    <Rest of properties>

Здесь my RDS DBinstance создается только, если my environment size не AuroraCluster.

Если вы не найдете лучшего решения, вы можете принять это за пользовательский ввод (создавать набор записей или нет) используйте это как условие для создания вашего ресурса. Надеюсь, это поможет.

0
ответ дан ASR 5 March 2019 в 07:49
поделиться

Лучший способ сделать это - сделать следующее:

  1. Создать настраиваемый ресурс с лямбда-поддержкой
  2. Проверить с помощью лямбды, существует ли ваш ресурс или нет, в зависимости от этого. вернуть идентификатор
  3. Используйте условия облачной информации, чтобы проверить значение возвращенного идентификатора, а затем соответственно создать или не создавать ресурс.

Вы можете получить возвращаемое значение пользовательского ресурса с помощью! GetAtt

Более подробную информацию можно найти на веб-сайтах AWS, касающихся пользовательского ресурса: https: // docs .aws.amazon.com / AWSCloudFormation / latest / UserGuide / template-custom-resources.html https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn- customresource.html

0
ответ дан Biplob Biswas 5 March 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: