

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# cfn-init
<a name="cfn-init"></a>

Em um modelo do CloudFormation, você pode usar `AWS::CloudFormation::Init` na seção `Metadata` de um recurso do Amazon EC2 para definir tarefas de inicialização. Para obter mais informações, consulte [`AWS::CloudFormation::Init`](aws-resource-init.md).

O script auxiliar `cfn-init` lê os metadados do modelo na chave `AWS::CloudFormation::Init` e atua de acordo para:
+ Obter e analisar metadados do CloudFormation
+ Instalar pacotes
+ Gravar arquivos no disco
+ Ativar/desativar e iniciar/interromper serviços

O script auxiliar `cfn-init` geralmente é executado a partir dos dados do usuário de uma instância do Amazon EC2 ou do modelo de execução.

Caso esteja começando a usar scripts auxiliares, recomendamos que primeiro conclua o tutorial [Implantar aplicações no Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html) no *Guia do usuário do AWS CloudFormation*.

**Topics**
+ [Sintaxe](#cfn-init-Syntax)
+ [Opções](#cfn-init-options)
+ [Exemplos](#cfn-init-examples)
+ [Recursos relacionados](#cfn-init-related-resources)

**nota**  
Se você usar `cfn-init` para atualizar um arquivo existente, ele cria uma cópia de backup do arquivo original com uma extensão .bak no mesmo diretório. Por exemplo, se você atualizar `/path/to/file_name`, essa ação produzirá dois arquivos: `/path/to/file_name.bak` contém o conteúdo do arquivo original e `/path/to/file_name` contém o conteúdo atualizado.

## Sintaxe
<a name="cfn-init-Syntax"></a>

```
cfn-init --stack|-s stack.name.or.id \
         --resource|-r logical.resource.id \
         --region region \
         --access-key access.key \
         --secret-key secret.key \
         --role rolename \
         --credential-file|-f credential.file \
         --configsets|-c config.sets \
         --url|-u service.url \
         --http-proxy HTTP.proxy \
         --https-proxy HTTPS.proxy \
         --verbose|-v
```

**nota**  
`cfn-init` não exige credenciais; portanto, você não precisa usar as opções `--access-key`, `--secret-key`, `--role` ou `--credential-file`. No entanto, se nenhuma credencial for especificada, o CloudFormation verificará se há associação de pilha e limitará o escopo da chamada para a pilha à qual a instância pertence. Para obter mais informações, consulte [Permissões para scripts auxiliares](cfn-helper-scripts-reference.md#cfn-helper-scripts-reference-permissions).

## Opções
<a name="cfn-init-options"></a>


| Name (Nome) | Descrição | Obrigatório | 
| --- | --- | --- | 
|   `-s, --stack`   |  Nome ou ID da pilha. *Tipo:* string *Padrão*: nenhum *Exemplo da*: `--stack { "Ref" : "AWS::StackName" },`  |  Sim  | 
|   `-r, --resource `   |  O ID de recursos lógicos do recurso que contém os metadados. *Tipo:* string *Exemplo da*: `--resource WebServerHost`  |  Sim  | 
|   `--region`   |  O endpoint regional do CloudFormation a ser usado. *Tipo:* string *Padrão*: `us-east-1` *Exemplo*:`--region ", { "Ref" : "AWS::Region" },`  |  Não  | 
|   `--access-key`   |  A chave de acesso da AWS para uma conta com permissão para chamar `DescribeStackResource` no CloudFormation. O parâmetro do arquivo de credencial substitui este parâmetro. *Tipo:* string  |  Não  | 
|   `--secret-key`   |  A chave de acesso secreta da AWS que corresponde a uma chave de acesso específica da AWS. *Tipo:* string  |  Não  | 
|   `--role`   |  O nome de um perfil do IAM que está associado à instância. *Tipo:* string Condição: o parâmetro do arquivo de credencial substitui este parâmetro.  |  Não  | 
|   `-f, --credential-file`   |  Um arquivo que contém uma chave de acesso secreta e uma chave de acesso. O parâmetro do arquivo de credencial substitui os parâmetros --role, --access-key e --secret-key. *Tipo:* string  |  Não  | 
|   `-c, --configsets`   |  Uma lista separada por vírgulas de configsets para executar (em ordem). *Tipo:* string *Padrão*: `default`  |  Não  | 
|   `-u, --url`   |  O endpoint do CloudFormation a ser usado. *Tipo:* string  |  Não  | 
|  `--http-proxy`  |  Um proxy HTTP (não SSL). Use o seguinte formato: `http://user:password@host:port`. *Tipo:* string  |  Não  | 
|  `--https-proxy`  |  Um proxy HTTPS. Use o seguinte formato: .: `https://user:password@host:port` *Tipo:* string  |  Não  | 
|  `-v, --verbose`  |  Saída detalhada. Isso é útil para os casos de depuração em que ocorre falha ao inicializar `cfn-init`.  Para depurar eventos de inicialização, você deve ativar `DisableRollback`. Depois, você pode inserir o SSH no console e ler os logs em `/var/log/cfn-init.log`. Para obter mais informações, consulte [Escolher como lidar com falhas ao provisionar recursos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) no *Guia do usuário do AWS CloudFormation*.   |  Não  | 
| `-h, --help` | Mostra a mensagem de ajuda e sai. |  Não | 

## Exemplos
<a name="cfn-init-examples"></a>

### Exemplos do Amazon Linux
<a name="w2aac32c27c21b3"></a>

Os exemplos a seguir mostram a propriedade `UserData` de uma instância do EC2, que executa o `InstallAndRun` associado ao recurso `WebServerInstance`.

Para incluir a versão mais recente, adicione `yum install -y aws-cfn-bootstrap` a `UserData`.

#### JSON
<a name="cfn-init-example.json"></a>

Propriedade `UserData` utilizando a função `Fn::Join` intrínseca.

```
{
    "UserData": {
        "Fn::Base64": {
            "Fn::Join": [
                "",
                [
                    "#!/bin/bash -xe\n",
                    "",
                    "yum install -y aws-cfn-bootstrap",
                    "/opt/aws/bin/cfn-init -v ",
                    "         --stack ",
                    {
                        "Ref": "AWS::StackName"
                    },
                    "         --resource WebServerInstance ",
                    "         --configsets InstallAndRun ",
                    "         --region ",
                    {
                        "Ref": "AWS::Region"
                    },
                    "\n"
                ]
            ]
        }
    }
}
```

#### YAML
<a name="cfn-init-example.yaml"></a>

Propriedade `UserData` utilizando a função `Fn::Sub` intrínseca.

```
UserData:
  Fn::Base64: !Sub |
    #!/bin/bash -xe
    yum update -y aws-cfn-bootstrap
    # Install the files and packages from the metadata
    /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}
```

## Recursos relacionados
<a name="cfn-init-related-resources"></a>

Para um tutorial com um modelo de exemplo, consulte [Implantar aplicações no Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html) no *Guia do usuário do AWS CloudFormation*.

Para um exemplo do Windows, consulte [Fazer o bootstrap de pilhas do CloudFormation baseadas em Windows](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-windows-stacks-bootstrapping.html) no *Guia do usuário do AWS CloudFormation*.

Você também pode visitar nosso repositório no GitHub para baixar [exemplos de modelo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html#sample-templates) que usam `cfn-init`, incluindo os que se seguem.
+  [InstanceWithCfnInit.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/EC2/InstanceWithCfnInit.yaml) 
+  [AutoScalingRollingUpdates.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/AutoScaling/AutoScalingRollingUpdates.yaml) 

Para obter modelos de exemplo de pilha LAMP que usam `cfn-init`, consulte [ec2-lamp-server](https://github.com/aws-samples/ec2-lamp-server) no site do GitHub.