6

我需要應用服務器(它是beanstalk實例)在啓動時執行一些操作,我想運行一個bash腳本傳遞給具有UserData屬性的實例定期到EC2實例。我如何通過CloudFormation將UserData傳遞給Beanstalk實例

我發現了幾個例子CloudFormation模板,它與常規的EC2實例做到了這一點,但沒有使用Beanstalk的例子。我試圖把它添加到屬性字段中的應用:

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

我也試圖添加到環境的一部分:

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

在這兩種情況下,這種試圖創建時導致失敗堆棧。有誰知道是否可以使用CloudFormation將UserData傳遞給Beanstalk實例。如果是這樣 - 你能提供一個例子嗎?

回答

6

如果你想擁有Beanstalk提供的所有優點 - 比如不需要修補亞馬遜爲你做的操作系統 - 這是不可能的。一種選擇是在包含所需腳本的情況下創建自定義AMI,但必須使用安全修補程序自行管理操作系統。閱讀更多here

+0

+1對於您自己的問題,謝謝! –

+0

@tronda,你知不知道6年後還是這樣? –

+0

對不起,自從這篇文章以來一直沒有使用Beanstalk。 @AlexanderF。 – tronda

相關問題