Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda