簡體   English   中英

部署到 Elastic Beanstalk 后如何運行 Python 腳本

[英]How to Run a Python Script After Deploying to Elastic Beanstalk

我正在嘗試在運行 Python 3.4 的 AWS Elastic Beanstalk 64 位 Linux 實例上運行 python 腳本。 我目前正在ebextensions目錄中使用container_commands來運行一些命令,但我的問題是這些命令在應用程序完全部署到環境之前運行。 有誰知道如何在部署后執行 python 腳本? 我發現這篇較舊的帖子詳細介紹了 Rails 環境的解決方法,但我使用的是 Python。

我想說你有兩個選擇:

  1. 本文提到的appdeploy/post文件夾中托管腳本:

因此,當我查看 EC2 實例上的 eb-tools.log 時,我發現它正在搜索要在重新啟動 Web 服務器后在 /opt/elasticbeanstalk/hooks/appdeploy/post 目錄中運行的腳本。 事實證明,如果您將 shell 腳本放到這個目錄中,它們將在部署后執行,就像您想要的一樣! 但是這個目錄默認不存在,因為亞馬遜不使用任何部署后腳本,所以我們還需要確保創建了這個目錄。

  1. 如果第一個選項不起作用,我會做的是在我部署到該 EB 的代碼中添加我想要運行的代碼,並將其作為我正在使用的部署過程的一部分運行。 例如,如果我通過 Windows 機器上的批處理文件進行部署,我會執行以下操作:

     call eb deploy call http://myurl.com/postDeploy

根據自定義平台掛鈎AWS 文檔:

警告

不支持在托管平台上使用自定義平台掛鈎。 自定義平台掛鈎專為自定義平台而設計。 在 Elastic Beanstalk 托管平台上,它們的工作方式可能不同或存在一些問題,並且行為可能因平台而異。 Amazon Linux AMI平台( Amazon Linux 2 之前)上,它們在某些情況下可能仍然以有用的方式工作; 謹慎使用它們。

自定義平台掛鈎是Amazon Linux AMI平台上存在的一項遺留功能。 Amazon Linux 2平台上, /opt/elasticbeanstalk/hooks/文件夾中的自定義平台掛鈎完全停止使用。 Elastic Beanstalk 不會讀取或執行它們。 Amazon Linux 2平台支持一種新的平台掛鈎,專門設計用於擴展 Elastic Beanstalk 托管平台。 您可以將自定義腳本和程序直接添加到應用程序源包中的 hooks 目錄中。 Elastic Beanstalk 在各個實例配置階段運行它們。 有關更多信息,請展開擴展 Elastic Beanstalk Linux 平台中的平台掛鈎部分。

這意味着,在亞馬遜的Linux 2,您可以創建.platform/hooks/目錄下的主機預生成預先部署postdeploy文件夾對應.SH腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM