Я пытаюсь следовать 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
Я рад опубликуйте больше шаблона по мере необходимости, но он, очевидно, уже становится довольно длинным:)
Спасибо!