2013-12-18 36 views
2

我們對應用程序使用AWS Elastic Beanstalk,每個應用程序有三個環境test,uat和prod。在批處理腳本中使用AWS Elastic Beanstalk自定義變量

我們面臨的問題是,每次應用程序激活縮放選項時,縮放比例降低時都會丟失應用程序日誌。

雖然我們重寫我們的應用程序以將其日誌發送到syslog服務,但我們需要一個臨時解決方案,它是通過ebextensions部署的批處理腳本。

批處理腳本的一部分是安排每天運行它的任務(現在),但我們無法傳入AWS Elastic Beanstalk提供的自定義變量。

例子:

schtasks /create /SC daily /ST 00:00:00 /f /TN s3sync /TR "c:\s3sync.bat {PARAM2}" 

我們使用* container_commands *零運氣嘗試。

實施例:

02_schedule_s3sync: 
    command: "c:\\s3sync.bat {$PARAM2}" 

任何意見,替代方法或溶液將是最有用嗎?

回答

3

我乾淨的忘了這個問題,所以我雖然我會更新它與正確的答案任何人卡住了同樣的問題。

02_schedule_s3sync: command: schtasks /create /sc hourly /st 00:00:00 /f /ru System /tn s3sync /tr "C:\s3sync.bat %PARAM2% %PARAM3% %PARAM4%" /v1

+0

從我看過的Beanstalk配置中指定的環境變量沒有公開爲EC2環境變量的工作是否完成?我打開了一個CMD提示符並使用'set',但沒有看到這些值。經過一番研究後,我在c:\ inetpub \ wwwroot目錄中找到了一個包含值的父級web.config。所以,他們顯然只能用.net配置值(在我的情況下)。我想做你的建議,還沒有嘗試過,但似乎它不會工作。這事有進一步更新嗎? – Ron

+0

更新:我嘗試使用分配的環境變量的「命令」,它不起作用。請讓我知道如果我失去了一些東西。 – Ron

+0

更新:它確實有效,但前提是您使用'container_commands'。我最初使用'命令'。關於config container_commands的文檔證實了這一點,它確實表示環境變量存在。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-container_commands。 +1 – Ron

1

自定義環境屬性僅在容器內部可用。設置這些屬性後,它們將作爲系統屬性變爲可用於AWS Elastic Beanstalk應用程序。

它們不能直接在EC2實例上使用。

因爲它只是一個解決方法,所以一個選項是將API添加到您的應用程序以返回參數值。

希望它有幫助。

+0

提到API觸發了一個燈泡的時刻。雖然我沒有最終使用API​​,但我最終使用PowerShell來獲得我所需的。 –