Как уменьшить параметры в родительских стеках CloudFormation - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь следовать AWS рекомендациям CloudFormation и настраиваю множество маленьких стеков, которые вложены в родительский стек. В основном это работает нормально; однако в промежуточном стеке я превысил максимальное количество параметров 60. Это будет только хуже, когда я go поднимусь на следующий уровень и объединю эти промежуточные стеки в основной родительский стек.

В документации CloudFormation сказано: «Чтобы указать больше параметров, вы можете использовать сопоставления или списки по порядку. назначить несколько значений одному параметру. " Фактически, эта точная цитата была дана как минимум дважды здесь в ответ на вопрос о пределе в 60 параметров. Тем не менее, как делает go это? Я вижу, как может работать возможность сопоставления, когда вы выбираете из набора предопределенных наборов значений (например, выбираете из этих идентификаторов AMI или из этих подсетей), но не вижу, как это может работать, когда параметры являются строками или числами или другими введенными пользователем данными; и я вообще не вижу примера того, как списки делают это.

Есть ли у кого-нибудь пример или два, как они использовали сопоставления и или списки для объединения нескольких введенных пользователем параметров в один параметр? ?

Редактировать , согласно запросу в комментариях, я добавляю больше деталей о том, как выглядят мои шаблоны. Вот раздел ParameterGroups рассматриваемого родительского стека. Он сворачивает вложенные стеки для «почтового хранилища» (которое создает тома EBS), «почты», которая запускает основной и резервный MX-сервер и настраивает Postfix, Dovecot, et c ... и «Roundcube», который запускает автоматическое масштабирование группа веб-серверов под управлением roundcube. Все это расположено поверх другого вложенного стека, «инфраструктуры», в которой развернуты VP C, подсети, ELB, NAT, RDS, группы безопасности и phpmyadmin.

 AWS::CloudFormation::Interface:
    ParameterGroups:
      -
        Label:
          default: Mandatory Parameters
        Parameters:
          - Vpc
          - NumberOfAZs
          - AvailabilityZones
          - AMIID
          - WantRoundCube
      -
        Label:
          default: Recommended Parameters
        Parameters:
          - AdminUser
          - AdminPubKey
      -
        Label:
          default: Mail Storage Parameters
        Parameters:
          - SpoolSize
          - LogSize
          - CreateSwap
          - SwwapSize
          - EncryptedBoolean
          - Cmk
          - SpoolDelPolicy
          - LogDelPolicy
          - MasterSpoolSnapshot
          - MasterLogSnapshot
          - BackupSpoolSnapshot
          - BackupLogSnapshot
      -
        Label:
          default: Primary MX EC2 Instance Parameters
        Parameters:
          - PrimaryServerName
          - VirtualUID
          - EC2KeyName
          - MailInstanceType
          - MailSecurityGroup
          - StorageStackName
          - PrimarySubnet
          - InsertTestData
      -
        Label:
         default: Backup MX EC2 Instance Parameters
        Parameters:
          - BackupServerName
          - BackupMailInstanceType
          - BackupSubnet
      -
        Label:
          default: Database Parameters
        Parameters:
          - DatabaseStackName
          - MailDBName
          - MailDBUser
          - MailDBPassword
          - MailDBBackup
      -
        Label:
          default: Postfix Primary Parameters
        Parameters:
          - Origin
          - Banner
          - RelayHost
          - RootMailRecipient
          - InetProtocols
          - EnableSpfChecks
          - EnableOpenDkim
          - OpenDkimDomains
      -
        Label:
          default: SSL Parameters
        Parameters:
          - CertSource
          - AccountEmail
          - DNSZone
          - DNSSleep
          - CertFileDir
      -
        Label:
          default: Dovecot Parameters
        Parameters:
          - MaxUserConnections
      -
        Label:
          default: Amavisd, SpamAssassin, ClamAV
        Parameters:
          - SAFinalDest
          - SAKillLevelDeflt
          - SetMyHost
     -
        Label:
          default: Roundcube
        Parameters:
          - AllowPasswdChange
          - AlternativeIAMRole
          - AlternativeInitializationScript
          - DnsName
          - EnableDebug
          - EnvironmentVariables
          - Hash
          - PublicAlbListenerArn
          - RoundcubeDBName
          - RoundcubeDBUser
          - RoundcubeDBPass
          - RoundcubeInstanceType
          - RoundcubeSecurityGroup
          - Skin
      -
        Label:
          default: AWS S3 Configuration
        Parameters:
          - MirovoyCFAssetsBucket
          - MailS3KeyPrefix
          - RoundcubeS3KeyPrefix
          - SkelFileDir
      - Label:
          default: Testing Configuration
        Parameters:
          - UnknownLocalErrorCode
          - XandrosPass
          - VivitaPass
          - ExternalTestEmail
          - SSLDebug
          - ADLogLevel
          - DisableVirusChecks
          - DisableSpamChecks
          - DisableServices
      -
        Label:
          default: Postfix Optional Parameters
        Parameters:
          - DelayWarningTime
          - MaxQueueLifetime
          - MinBackoffTime
         - MaxBackoffTime
          - HeloTimeout
          - RecipientLimit
          - SoftErrLimit
          - HardErrLimit
          - SpfTimeLimit

Я рад опубликуйте больше шаблона по мере необходимости, но он, очевидно, уже становится довольно длинным:)

Спасибо!

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