AWS Cloudformation не соблюдает данные условия по ресурсам. Вместо этого он все равно пытается создать ресурсы.
Я хочу развернуть один и тот же шаблон в нескольких регионах, где один из регионов не имеет доступных ресурсов. Поэтому я ставлю условия на ресурсы, полагая, что облачная информация будет игнорировать создание ресурсов, которое не соответствует данному условию, но это не так.
т.е.: mystack.yml
Conditions:
IsInternational: !Equals
- !Ref 'AWS::Partition'
- 'aws'
IsChinaMainland: !Equals
- !Ref 'AWS::Partition'
- 'aws-cn'
Resources:
ApplicationS3Bucket:
Type: AWS::S3::Bucket
Properties:
VersioningConfiguration:
Status: Enabled
BucketName: 'my-unique-bucket-name
CodeRepo:
Type: AWS::CodeCommit::Repository
Condition: IsInternational
Properties:
RepositoryName: some-unique-repo-name
RepositoryDescription: This is my repo for doing x.
Вышешаблон будет успешно развернут в международной учетной записи AWS, поскольку AWS::CodeCommit::Repository
завершает работу в международной AWS. Однако он не будет работать, поскольку в AWS China пока нет поддержки AWS::CodeCommit::Repository
. Из приведенного выше шаблона он выглядит действительным, и если условия были приняты во внимание, шаблон следует успешно развернуть как в AWS International, так и в AWS China.
Любая помощь очень ценится.