создание экземпляра реплик с использованием условия облачной информации завершается неудачно - PullRequest
0 голосов
/ 20 мая 2019

Я хочу создать реплики чтения, если это необходимо пользователю, выбор - это параметр шаблона облачной информации.Шаблон выполняется, когда сделан выбор для создания реплики, но если выбрано Нет, чтобы не создавать реплику, он выдаст ошибку ниже.Пожалуйста, проверьте и дайте мне знать, что мне не хватает.

....
    DatabaseReadReplicaRequired:
        Type: String
        Default: 'No'
        AllowedValues:
          - 'Yes'
          - 'No'
        Description: The database cluster needs a read replica
....
Conditions:
  CreateReadReplica: !Equals [ !Ref DatabaseReadReplicaRequired, "Yes" ]

.....
    DatabasePrimaryInstance:
         ....

    DatabaseReplicaInstance:
        Metadata:
          cfn_nag:
            rules_to_suppress:
              - id: F22
        Type: AWS::RDS::DBInstance
        Condition: CreateReadReplica
        Properties:
            Engine: aurora-postgresql
            EngineVersion: '10.6'
            DBClusterIdentifier:
                Ref: DatabaseCluster
            DBInstanceClass:
                Ref: DatabaseInstanceType
            DBSubnetGroupName:
                Ref: DatabaseSubnetGroup
            PubliclyAccessible: False
            EnablePerformanceInsights: True
            DBParameterGroupName: aurora-postgresql-10dot6

После блока для первичных экземпляров и экземпляров реплики есть блоки для создания аварийных сигналов как для первичной, так и для реплики.Условие было установлено и для оставшегося кода тревоги реплик.Ошибка, которую он выдает, является

An error occurred (ValidationError) when calling the CreateStack operation: Template format error: Unresolved resource dependencies [DatabaseReplicaInstance] in the Resources block of the template

1 Ответ

0 голосов
/ 20 мая 2019

Ошибка связана с тем, что если условие CreateReadReplica оценивается как False, ресурс DatabaseReplicaInstance не создается.

Это означает, что тревоги CloudWatch, относящиеся к DatabaseReplicaInstance вызовет ошибку.

Вы можете решить эту проблему, добавив тот же параметр Condition: CreateReadReplica к аварийным сигналам, чтобы они создавались только при условии True.

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