web-dev-qa-db-ja.com

Elastic Beanstalk.ebextensions構成スクリプトがWindowsデプロイメントで実行されていない

ElasticBeanstalkを介してサーバーに正常に展開しているMicrosoftASP.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とWindows2012 IIS 8.5の両方に展開しようとしましたが、どちらでも機能しません。

これを理解する助けがあれば幸いです。

ありがとう、

3
agarcian

VSですべてのファイルをプロジェクトに含めるようにすることで、この問題を解決しました。

スクリプトをコンテンツ/常にコピーとしてマークすることにより、スクリプトはターゲットに含まれると思いました。問題は、.ebextensionsがサイトのルートにある必要があることです。これを実現するには、[Package/Publish Web]オプションで[すべてのファイルを含める]を選択する必要があります。これにより、サイトのルートにある.ebextensionsがコピーされ、ElasticBeanstalkワーカーによって取得されます。

Package/Publish Web project options

0
agarcian

ファイルビルドアクションを「コンテンツ」に設定した後、ebextensionsを実行することができました。

[ファイル]> [プロパティ]> [ビルドアクション]を右クリックします。 「コンテンツ」に設定

また、ファイルの内容がオンラインパーサーで有効であることを確認するのにも役立ちます。

1
Sotelo