Etapa 1: Fazer download do modelo do AWS CloudFormation - AWS Service Catalog

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Etapa 1: Fazer download do modelo do AWS CloudFormation

Você pode usar modelos do AWS CloudFormation para configurar e provisionar portfólios e produtos. Modelos são arquivos de texto sem o formato JSON ou YAML que descrevem os recursos que você deseja provisionar. Para obter mais informações, consulte Formatos de modelos no Guia do usuário do AWS CloudFormation. Você pode usar o editor do AWS CloudFormation ou qualquer editor de texto para criar e salvar modelos. Para este tutorial, fornecemos um modelo simples para você começar. Esse modelo lança uma única instância do Linux configurada para acesso SSH.

nota

O uso de modelos do AWS CloudFormation requer permissões especiais. Antes de começar, verifique se você tem as seguintes permissões: Para obter mais informações, consulte pré-requisitos em Biblioteca de conceitos básicos.

Download do modelo

O modelo de amostra fornecido para este tutorial, development-environment.template, está disponível em https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template.

Visão geral do modelo

O texto do modelo de exemplo é:

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "KeyName": { "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.", "Type": "AWS::EC2::KeyPair::KeyName" }, "InstanceType" : { "Description" : "EC2 instance type.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "SSHLocation" : { "Description" : "The IP address range that can SSH to the EC2 instance.", "Type": "String", "MinLength": "9", "MaxLength": "18", "Default": "0.0.0.0/0", "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})", "ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x." } }, "Metadata" : { "AWS::CloudFormation::Interface" : { "ParameterGroups" : [{ "Label" : {"default": "Instance configuration"}, "Parameters" : ["InstanceType"] },{ "Label" : {"default": "Security configuration"}, "Parameters" : ["KeyName", "SSHLocation"] }], "ParameterLabels" : { "InstanceType": {"default": "Server size:"}, "KeyName": {"default": "Key pair:"}, "SSHLocation": {"default": "CIDR range:"} } } }, "Mappings" : { "AWSRegionArch2AMI" : { "us-east-1" : { "HVM64" : "ami-08842d60" }, "us-west-2" : { "HVM64" : "ami-8786c6b7" }, "us-west-1" : { "HVM64" : "ami-cfa8a18a" }, "eu-west-1" : { "HVM64" : "ami-748e2903" }, "ap-southeast-1" : { "HVM64" : "ami-d6e1c584" }, "ap-northeast-1" : { "HVM64" : "ami-35072834" }, "ap-southeast-2" : { "HVM64" : "ami-fd4724c7" }, "sa-east-1" : { "HVM64" : "ami-956cc688" }, "cn-north-1" : { "HVM64" : "ami-ac57c595" }, "eu-central-1" : { "HVM64" : "ami-b43503a9" } } }, "Resources" : { "EC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceType" }, "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ], "KeyName" : { "Ref" : "KeyName" }, "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] } } }, "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} } ] } } }, "Outputs" : { "PublicDNSName" : { "Description" : "Public DNS name of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] } }, "PublicIPAddress" : { "Description" : "Public IP address of the new EC2 instance", "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] } } } }
Recursos do modelo

O modelo declara os recursos a serem criados quando o produto for lançado. Consiste nas seguintes seções:

  • AWSTemplateFormatVersion(opcional) — A versão do formato de AWS modelo usada para criar esse modelo. A versão do modelo mais recente é 2010-09-09 é o único valor válido no momento.

  • Descrição (opcional) — uma descrição do modelo.

  • Parâmetros (opcional) — os parâmetros que o usuário deve especificar para lançar o produto. Para cada parâmetro, o modelo inclui uma descrição e as restrições que devem ser atendidas pelo valor digitado. Para obter mais informações sobre restrições, consulte Uso de restrições do AWS Service Catalog.

    O parâmetro KeyName permite que você especifique um nome de par de chaves do Amazon Elastic Compute Cloud (Amazon EC2) que os usuários finais devem fornecer ao usar o AWS Service Catalog para lançar seu produto. Você criará o par de chaves na próxima etapa.

  • Metadados (opcional) - os objetos que fornecem informações adicionais sobre o modelo. A chave AWS::CloudFormation: :Interface define como a visualização do console do usuário final exibe os parâmetros. A propriedade ParameterGroups define como os parâmetros são agrupados e os títulos desses grupos. A propriedade ParameterLabels define nomes de parâmetros amigáveis. Quando um usuário especifica parâmetros para lançar um produto baseado nesse modelo, a visualização do console do usuário final exibe o parâmetro rotulado Server size: sob o título Instance configuratione exibe os parâmetros rotulados Key pair: e CIDR range: sob o título Security configuration.

  • Mapeamentos (opcional) - um mapeamento de chaves e valores associados que você pode usar para especificar valores de parâmetros condicionais, semelhante a uma tabela de pesquisa. Você pode associar uma chave a um valor correspondente usando a função FindInMap intrínseca Fn:: nas seções Recursos e Saídas. O modelo acima inclui uma lista de regiões da AWS a Imagem de máquina da Amazon (AMI) que corresponde a cada uma delas. O AWS Service Catalog usa o mapeamento para determinar qual AMI usar com base na região da AWS que o usuário seleciona no AWS Management Console.

  • Recursos (obrigatório) — acumula recursos e suas propriedades. Você pode fazer referência a recursos nas seções Recursos e Saídas do modelo. No modelo acima, especificamos uma instância do EC2 executando o Amazon Linux e um grupo de segurança que permite acesso SSH à instância. A seção Propriedades do recurso da instância do EC2 usa as informações que o usuário digita para configurar o tipo de instância e um nome de chave para acesso ao SSH.

    O AWS CloudFormation usa a região da AWS atual para selecionar a ID da AMI nos mapeamentos definidos anteriormente e atribui um grupo de segurança a ele. O grupo de segurança é configurado para permitir acesso de entrada na porta 22 no intervalo de endereços IP do CIDR especificado pelo usuário.

  • Saídas (opcional) - texto que informa ao usuário quando o lançamento do produto está concluído. O modelo fornecido obtém o nome DNS público da instância executada e o exibe para o usuário. O usuário precisa do nome DNS para conectar-se à instância usando SSH.

    Para obter mais informações sobre a página de anatomia do modelo, consulte Anatomia do modelo no Guia do usuário do AWS CloudFormation.