cfn-init
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 no AWS CloudFormationGuia do usuário do .
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.
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 /
, essa ação produzirá dois arquivos: path
/to
/file_name
/
contém o conteúdo do arquivo original e path
/to
/file_name
.bak/
contém o conteúdo atualizado.path
/to
/file_name
Sintaxe
cfn-init --stack|-s
stack.name.or.id
\ --resource|-rlogical.resource.id
\ --regionregion
\ --access-keyaccess.key
\ --secret-keysecret.key
\ --rolerolename
\ --credential-file|-fcredential.file
\ --configsets|-cconfig.sets
\ --url|-uservice.url
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.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 ter mais informações, consulte Permissões para scripts auxiliares.
Opções
Nome | Descrição | Obrigatório |
---|---|---|
|
Nome ou ID da pilha. Tipo: string Padrão: nenhum Exemplo: |
Sim |
|
O ID de recursos lógicos do recurso que contém os metadados. Tipo: string Exemplo: |
Sim |
|
O endpoint regional do CloudFormation a ser usado. Tipo: string Padrão: Exemplo: |
Não |
|
A chave de acesso da AWS para uma conta com permissão para chamar Tipo: string |
Não |
|
A chave de acesso secreta da AWS que corresponde a uma chave de acesso específica da AWS. Tipo: string |
Não |
|
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 |
|
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 |
|
Uma lista separada por vírgulas de configsets para executar (em ordem). Tipo: string Padrão: |
Não |
|
O endpoint do CloudFormation a ser usado. Tipo: string |
Não |
|
Um proxy HTTP (não SSL). Use o seguinte formato: Tipo: string |
Não |
|
Um proxy HTTPS. Use o seguinte formato: Tipo: string |
Não |
|
Saída detalhada. Isso é útil para os casos de depuração em que ocorre falha ao inicializar notaPara depurar eventos de inicialização, você deve ativar |
Não |
|
Mostra a mensagem de ajuda e sai. |
Não |
Exemplos
Exemplos do Amazon Linux
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
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
Propriedade UserData
utilizando a função Fn::Join
intrínseca.
UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -xe - '' - yum install -y aws-cfn-bootstrap - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource WebServerInstance ' - ' --configsets InstallAndRun ' - ' --region ' - !Ref 'AWS::Region' - |+
JSON
Propriedade UserData
utilizando a função Fn::Sub
intrínseca.
{ "UserData": { "Fn::Base64": { "Fn::Sub": [ "#!/bin/bash -x\n# Install the files and packages from the metadata\n/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n\n# Signal the status from cfn-init\n/opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}\n", {} ] } } }
YAML
Propriedade UserData
utilizando a função Fn::Sub
intrínseca.
UserData: !Base64 'Fn::Sub': - > #!/bin/bash -x # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} # Signal the status from cfn-init /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region} - {}
Recursos relacionados
Você também pode visitar nosso repositório no GitHub para baixar exemplos de modelo que usam cfn-init
, incluindo os que se seguem.
Para modelos do Windows, consulte Trabalhar com modelos de pilha do Microsoft Windows no Guia do usuário do AWS CloudFormation.