0

Ich habe einige LaunchConfig für AS GruppeVerwendung AWS :: EC2 :: Instanz in der AWS :: Cloudformation :: Init

"LaunchConfig": { 
    "Type" : "AWS::AutoScaling::LaunchConfiguration", 

    "Metadata" : { 
     "AWS::CloudFormation::Init" : { 
      "configSets" : { 
      "InstallAndRun" : [ "Install" ] 
      }, 

      "Install" : { 

      "files" : { 

       "/var/www/html/index.html" : { 
       "content" : { "Fn::Join" : ["", [ 
       "<html\n", 
       "<h1>Apache HTTP Server</h1>\n", 
       "</html>\n" 
       ]]}, 
       "mode" : "000644", 
       "owner" : "apache", 
       "group" : "apache" 
       }, 
      ...... 

Es ist möglich, oder das, was der beste Ansatz fügen Sie einige Daten index.html, wie, Zum Beispiel Instanz-ID von AWS :: EC2 :: Instanz mit "Dateien" Abschnitte?

Wenn ich {"Ref": "AWS :: StackId"} oder {"Ref": "AWS :: Region"} hinzufüge, funktioniert es gut, aber es ist von Pseudo-Parameter.

   "/var/www/html/index.html" : { 
       "content" : { "Fn::Join" : ["", [ 
       "<html\n", 
       "<h1>Apache HTTP Server</h1>\n", 
       { "Ref" : "AWS::StackId" }, 
       "</html>\n" 
       ]]}, 

Vielen Dank!

+0

Ich würde vorschlagen, die Datei extern hinzufügen. d. h. es auf S3 haben und es während des EC2-Starts ziehen. Hauptsächlich, weil Sie die Flexibilität haben, so viel Inhalt wie nötig hinzuzufügen - ohne dass die Vorlage unordentlich aussieht. Dann fügen Sie zusätzliche Daten hinzu, indem Sie den Befehl sed im EC2-Startskript verwenden. – ivanji

Antwort

1

Ich glaube nicht, es ist möglich, dies direkt zu tun, aber Sie sollten diese in der Lage sein, zu erreichen, indem eine Datei platzieren und dann anschließend einen Befehl ausgeführt wird, sie zu aktualisieren:

(Disclaimer: Ich habe nicht explizit getestet dies.)

{ 
    "AWS::CloudFormation::Init": { 
     "configSets": { 
      "InstallAndRun": [ 
       "Install", 
       "UpdateIndexHtml" 
      ] 
     }, 
     "Install": { 
      "files": { 
       "/var/www/html/index.html": { 
        "content": { 
         "Fn::Join": [ 
          "", 
          [ 
           "<html\n", 
           "<h1>Apache HTTP Server</h1>\n", 
           "---INSTANCE_ID---\n", 
           "</html>\n" 
          ] 
         ] 
        }, 
        "mode": "000644", 
        "owner": "apache", 
        "group": "apache" 
       } 
      } 
     }, 
     "UpdateIndexHtml": { 
      "commands": { 
       "UpdateIndexHtml": { 
        "command": "sed -i \"s|---INSTANCE_ID---|$(curl -s http://169.254.169.254/latest/meta-data/instance-id)|\" /var/www/html/index.html" 
       } 
      } 
     } 
    } 
} 
Verwandte Themen