Domanda

Ho bisogno del server delle applicazioni, che è Beanstalk istanze, per fare alcune azioni all'avvio e ho pensato di eseguire uno script bash passato all'istanza con la proprietà UserData che è disponibile per le normali istanze EC2.

Ho trovato diversi modelli di formazione cloud di esempio che lo fanno con regolari istanze EC2, ma nessun esempio con Beanstalk. Ho provato ad aggiungere questo al campo Proprietà per l'applicazione:

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

Ho anche provato ad aggiungere alla parte dell'ambiente:

"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"
  }
},

In entrambi i casi ciò ha comportato un fallimento quando si tenta di creare lo stack. Qualcuno sa se è possibile passare UserData a un'istanza di Beanstalk utilizzando CloudFormation. In tal caso, puoi fornire un esempio.

È stato utile?

Soluzione

Se vuoi avere tutti i vantaggi offerti da Beanstalk - come non dover patch del sistema operativo che Amazon fa per te - questo non è possibile. Un'opzione è quella di creare un AMI personalizzato in cui includi gli script necessari, ma è necessario gestire il sistema operativo da solo con le patch di sicurezza. Leggi di più qui.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top