Как я могу поручить шаблону AWS CloudFormation создавать ресурсы в определенном регионе? - PullRequest
0 голосов
/ 19 января 2019

Я новичок в шаблонах CloudFormation.У меня есть базовый шаблон в yaml, который создает экземпляр EC2.Каждый раз, когда я создаю стек и использую этот шаблон, экземпляр EC2 ВСЕГДА создается в регионе Восток США, Северная Вирджиния.Я пытаюсь изменить это так, чтобы экземпляр EC2 находился в регионе US-WEST-2.После некоторых исследований выясняется, что это не указано в шаблоне.Вместо этого мне нужно изменить регион на us-west-2 в консоли AWS, а затем создать новый стек.Правильно ли мое понимание?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Что мне здесь не хватает? Я уверен, что мы можем указать область, где стек создается в шаблоне CFN, используя параметры, и у нас есть активные шаблоны, которые создают наш стек в соответствующей области на основе значения параметра. Псевдопараметр AWS :: Region - это значение, которое AWS CloudFormation разрешает как область, в которой создается стек. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html

Вот подраздел образца шаблона

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "InstanceType": {
      "Description": "Instance Type",
      "Type": "String",
      "Default": "t2.xlarge"
    },
    "SubnetUSEAST1": {
      "Description": "Subnet on which Ec2 instance needs to be created",
      "Type": "String",
      "Default": "subnet-xxxxxxxx"
    },
    "SubnetUSWEST2": {
      "Description": "Subnet on which Ec2 instance needs to be created",
      "Type": "String",
      "Default": "subnet-yyyyyyyy"
    }
  },
  "Conditions": {
    "useast1": {
      "Fn::Equals": [
        {
          "Ref": "AWS::Region"
        },
        "us-east-1"
      ]
    },
    "uswest2": {
      "Fn::Equals": [
        {
          "Ref": "AWS::Region"
        },
        "us-west-2"
      ]
    }
  },
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "NetworkInterfaces": [
          {
            "SubnetId": {
              "Fn::If": [
                "useast1",
                {
                  "Ref": "SubnetUSEAST1"
                },
                {
                  "Ref": "SubnetUSWEST2"
                }
              ]
            },
            "AssociatePublicIpAddress": "false",
            "DeviceIndex": "0"
          }
        ]
      }
    }
  }
}
0 голосов
/ 19 января 2019

К сожалению, вы не можете указать регион в шаблоне облачной информации.

Вы должны либо передать регион в качестве аргумента командной строки

aws --region eu-west-1 cloudformation create-stack --stack-name ...

, либо указать регион по умолчанию в awsФайл конфигурации Cli ~/.aws/config

[default]
region=eu-west-1
...