Amazon-Web-Services

Elastic Beanstalk .ebextensions 配置腳本未在 Windows 部署上執行

  • May 10, 2016

我有一個通過 Elastic Beanstalk 成功部署到伺服器的 Microsoft ASP.NET 應用程序。

但是,我試圖在 .ebextensions 下執行一些配置文件,以設置我的應用程序使用的某些包。

例如,我安裝了 NewRelic 腳本,如下所示:

files:
 "c:\\temp\\redistribution\\newrelic\\NewRelicDotNetAgent_x64.msi":
   source: http://download.newrelic.com/dot_net_agent/release/NewRelicDotNetAgent_x64.msi

commands:
 instNewRelic:
   command:   msiexec.exe /i c:\\temp\\redistribution\\newrelic\\NewRelicDotNetAgent_x64.msi /qb NR_LICENSE_KEY=<mylicense here> INSTALLLEVEL=1
 iisRestart:
   command:   c:\\windows\\system32\\iisreset.exe /RESTART

此命令應下載安裝程序(可通過伺服器訪問)並執行包。

問題是我沒有看到任何跡象表明文件已下載,或者腳本甚至試圖由彈性 beanstalk 程序執行。

我檢查了以下內容:

  • .ebextensions 下的配置文件包含在解決方案中,我已檢查它們是否已部署到伺服器。
  • 伺服器可以訪問我嘗試下載的任何文件。
  • 應用程序執行正常,只是這個初始化腳本不起作用。
  • 我已經嘗試部署到 Windows 2008 IIS 7.5 和 Windows 2012 IIS 8.5,但都無法正常工作。

任何幫助弄清楚這一點將不勝感激。

謝謝,

我通過確保在 VS 中包含項目中的所有文件來解決了這個問題。

我認為通過將腳本標記為Content / Copy Always,它們將包含在目標中,但它們位於 bin 文件夾下。問題是 .ebextensions 需要位於站點的根目錄,您只能通過在“打包/發布 Web ”下選擇“包含所有文件”選項來實現這一點。這將複製站點根目錄下的 .ebextensions,然後由 Elastic Beanstalk 工作人員獲取。

打包/發布 Web 項目選項

在將文件建構操作設置為“內容”後,我能夠讓 ebextensions 執行。

右鍵點擊文件 > 屬性 > 建構操作。設置為“內容”

使用線上解析器驗證文件內容是否有效也很有幫助。

引用自:https://serverfault.com/questions/702066