Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

193
Visualizações
La plantilla de Cloudformation completa la implementación antes de que finalice UserData

En la plantilla de CloudFormation que estoy implementando, estoy ejecutando una operación de larga duración en el bloque UserData.

Se ve de la siguiente manera:

 "UserData": { "Fn::Base64" : { "Fn::Join" : [ "", [ "/usr/local/bin/mylongrunningscript.sh" ] ] } }

Los contenidos del guión son:

 echo "UserData starting!" > /var/log/mycustomlog.log sleep 300 echo "UserData finished!" >> /var/log/mycustomlog.log

El problema que veo es que creo que la plantilla de CloudFormation está completando su implementación antes de que termine de ejecutarse el script UserData. Creo que este es el caso porque si soy lo suficientemente rápido y hago ssh en la instancia, veré algo como lo siguiente:

 $ cat /var/log/mycustomlog.log UserData starting

lo que sugiere que UserData no terminó de ejecutarse


¿Cómo puedo asegurarme de que la ejecución del código UserData se complete antes de que la pila esté en el estado "CreateComplete"?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para asegurarse de que la plantilla de CloudFormation espere a que se complete el script de UserData, debe hacer dos cosas:

  1. Agregue una CreationPolicy al recurso al que se dirige (máquina virtual en mi caso).

  2. Agregue lógica en el script para señalar su finalización. Esta lógica personalizada utiliza la utilidad cfn-signal , que es posible que deba instalar en su instancia.


Así es como se ve la plantilla ahora:

 "UserData": { "Fn::Base64" : { "Fn::Join" : [ "", [ "/usr/local/bin/mylongrunningscript.sh" ] ] } }, "CreationPolicy": { "ResourceSignal" : { "Count": "1", "Timeout": "PT10M" } }

La utilidad cfn-signal se utiliza para señalar la finalización del script:

 "/home/ubuntu/aws-cfn-bootstrap-*/bin/cfn-signal -e $? ", " --stack ", { "Ref": "AWS::StackName" }, " --resource MyInstance" , " --region ", { "Ref" : "AWS::Region" }, "\n"

Vea aquí un ejemplo de Windows.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda