Как установить Instance.MachineImage из CfnMapping.FindInMap ("MappingName", Aws .REGION)? - PullRequest
0 голосов
/ 12 марта 2020

Используя последний. NET CDK, я пытаюсь создать стек, в котором AMI экземпляра указывается во время развертывания в зависимости от региона, в котором развернут стек. С помощью обычного CloudFormation я мог бы сделать это, используя Mappings, функции AWS :: Region и FindInMap, но с CDK, GenericLinuxImage или LookupMachineImage, по-видимому, не принимают Aws .REGION и вывод CfnMapping.FindInMap () - отложенные значения, и AMI и его регион должны быть известны во время синтеза, а это не то, что мне нужно.

При использовании GenericLinuxImage я получаю ошибку "Unable to determine AMI from AMI map since stack is region-agnostic".

Возможно ли использовать CfnMapping. FindInMap () и Aws .REGION для указания пользовательского AMI экземпляра?

Фрагмент CFN, поведение которого я хочу воспроизвести:

Mappings:
  RegionMap:
    us-east-1: 
      AmiId: ami-XXXXXXXXXXX
...

Resources:
  ...
  InstanceMachine:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t3a.large
      ImageId: !FindInMap
        - RegionMap
        - !Ref 'AWS::Region'
        - AmiId

Спасибо, Влад.

...