Elastic Beanstalk .ebextensions 配置脚本未在 Windows 部署上运行

Elastic Beanstalk .ebextensions 配置脚本未在 Windows 部署上运行

我有一个 Microsoft ASP.NET 应用程序,正在通过 Elastic Beanstalk 成功部署到服务器。

但是,我正在尝试运行 .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

此命令应下载安装程序(可通过服务器访问)并运行该包。

问题是我没有看到任何迹象表明文件已被下载,或者甚至试图由弹性 beantalk 进程运行脚本。

我已检查以下内容:

  • .ebextensions 下的配置文件包含在解决方案中,我已检查它们已部署到服务器。
  • 服务器可以访问我尝试下载的任何文件。
  • 应用程序运行正常,只是初始化脚本不起作用。
  • 我曾尝试部署到 Windows 2008 IIS 7.5 和 Windows 2012 IIS 8.5,但都不起作用。

如能得到任何帮助解决这个问题,我们将不胜感激。

谢谢,

答案1

将文件构建操作设置为“内容”后,我能够运行 ebextensions。

右键点击文件 > 属性 > 构建操作。设置为“内容”

使用在线解析器验证文件内容是否有效也很有帮助。

答案2

我通过确保在 VS 中包含项目中的所有文件来解决了这个问题。

我认为通过将脚本标记为内容/始终复制它们将包含在目标中,但它们位于 bin 文件夹下。问题是 .ebextensions 需要位于网站的根目录下,您只能通过选择打包/发布 Web选项包括所有文件。这将复制站点根目录中的 .ebextensions,然后由 Elastic Beanstalk 工作者获取。

打包/发布 Web 项目选项

相关内容