Question

J'ai besoin du serveur d'applications, qui est des instances Beanstalk, pour effectuer des actions au démarrage et j'ai pensé à exécuter un script bash transmis à l'instance avec la propriété UserData qui est disponible pour les instances EC2 régulières.

J'ai trouvé plusieurs exemples de modèles CloudFormation qui le font avec des instances EC2 régulières, mais aucun exemple avec Beanstalk. J'ai essayé d'ajouter cela au champ Propriétés pour l'application:

"MyApp" : {
  "Type" : "AWS::ElasticBeanstalk::Application",
  "Properties" : {
    "Description" : "MyApp description",
    "ApplicationVersions" : [{
      ...
    }],
    "UserData" : {
      "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash\n",
        "touch /tmp/userdata_sucess\n"
      ]]
    }},
    ...

J'ai également essayé d'ajouter à la partie environnement:

"MyAppEnv" : {
  "Type" : "AWS::ElasticBeanstalk::Environment",
  "Properties" : {
    "ApplicationName" : { "Ref" : "MyApp" },
    "Description" :  "MyApp environment description",
    "UserData" : {
      "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash\n",
        "touch /tmp/userdata_sucess\n"
      ]]
    }},
    "TemplateName" : "MyAppConfiguration",
    "VersionLabel" : "First Cloud version"
  }
},

Dans les deux cas, cela a entraîné une défaillance lorsque vous essayez de créer la pile. Est-ce que quelqu'un sait s'il est possible de passer UserData à une instance Beanstalk en utilisant CloudFormation. Si c'est le cas - pouvez-vous fournir un exemple.

Était-ce utile?

La solution

Si vous voulez avoir tous les avantages que Beanstalk offre - comme ne pas avoir à corriger le système d'exploitation qu'Amazon fait pour vous - ce n'est pas possible. Une option consiste à créer une AMI personnalisée où vous incluez les scripts nécessaires, mais vous devez ensuite gérer le système d'exploitation vous-même avec des correctifs de sécurité. Lire la suite ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top