Как указать AMI в CloudFormation? - PullRequest
0 голосов
/ 23 мая 2019

Моя задача проста - я хочу использовать CloudFormation для настройки экземпляра EC2 с произвольным AMI, который мне нравится. Однако по некоторым причинам это не так просто, как просто ввести идентификационный номер нужного мне изображения.

Как мы видим в их учебном шаблоне CloudFormation , для раздела ImageId они имеют:

Properties:
    ImageId: !FindInMap [ AWSRegionArch2AMI, !Ref 'AWS::Region' , !FindInMap [ AWSInstanceType2Arch, !Ref InstanceType, Arch ] ]

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

Например, скажем, я хочу, чтобы мой шаблон CloudFormation создал экземпляр с этим популярным, общедоступным AMI:

Red Hat Enterprise Linux 8 (HVM), тип тома SSD - ami-08949fb6466dd2cf3

Что я должен указать в поле ImageId, чтобы CloudFormation использовал этот AMI?

Кроме того, почему стандартно использовать эти сложные программные аргументы вместо просто UID, указывающего желаемое изображение?

1 Ответ

2 голосов
/ 23 мая 2019

Краткий ответ: не необходимо для прохождения этого процесса поиска.Если вы планируете работать в одном регионе, используя один AMI, то вполне разумно указать этот AMI в качестве параметра и использовать его напрямую.

Однако пример AWS должен иметь возможность работать в несколькихрегионы, потому что у AWS есть клиенты, которые используют эти разные регионы.Для этого он определяет сопоставления (в разделе Mappings примера шаблона , который можно использовать для перевода из типа экземпляра в AMI.


Редактировать: вот выдержка изшаблон, который я сейчас использую, который передает AMI в качестве параметра (по умолчанию). Он находится в JSON и оставляет много вещей, но должен дать вам суть происходящего:

"Parameters" : {
    "AmiId" : {
        "Description" : "The ID of the AMI to use for the EC2 instance",
        "Default": "ami-059f4aad319ff1bc3",
        "Type": "String"
    }


"Resources" : {

    "EC2Instance" : {
        "Type" : "AWS::EC2::Instance",
        "Properties" : {
            "ImageId" : { "Ref" : "AmiId" },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...