簡體   English   中英

如何在Azure App Service上運行django manage.py命令

[英]How to run django manage.py command on Azure App Service

我想在我的應用程序中的azure應用程序服務上執行Django migration命令,

$ python manage.py migrate

但我不知道該怎么做。

通常情況下,如官方指南所示,我們利用虛擬環境來處理python腳本。 如果是這樣,由於缺少依賴關系,如果我們使用Azure Python運行時來運行命令,則可能會引發異常。

通常,我們可以利用您的Web應用程序或Visual Studio Online擴展的Kudu控制台站點來修改腳本或執行命令。

Kudu控制台站點:

  1. 您可以登錄URL為https://<your_web_app_name>.scm.azurewebsites.net/DebugConsole的Kudu控制台站點
  2. cdd:\\home\\site\\wwwroot ,這是您應用程序的根目錄。
  3. 運行命令env\\Scripts\\python.exe manage.py migrate (假設您的虛擬環境在根目錄中是env

Visual Studio Online擴展:

  1. 安裝VSO extensio,您可以參考如何在應用程序服務上安裝composer的答案
  2. 登錄VSO編輯器站點,找到open console按鈕以打開cmdlet以獲取命令,您可以在左側導航欄中找到此按鈕。 在此處輸入圖片說明

如有任何其他疑問,請隨時告訴我。

您可以在Azure Web應用程序中運行Python代碼。 不過,您必須確保為該應用程序啟用了Python:

在此處輸入圖片說明

然后-您可能可以將對python manage.py migrate的調用包裝在批處理腳本中,並在Web應用程序的啟動任務中調用它。

此處描述了啟動任務: https ://azure.microsoft.com/zh-cn/documentation/articles/cloud-services-startup-tasks/歸結為,您必須將批處理腳本與應用程序捆綁在一起,然后修改ServiceDefinition.csdef並在XML中添加啟動任務,如下所示:

<Startup>
    <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple" >
        <Environment>
            <Variable name="MyVersionNumber" value="1.0.0.0" />
        </Environment>
    </Task>
</Startup>

除了按照Gary Liu的建議從Kudu控制台運行命令之外,我還發現為長期運行的命令創建一個WebJob高級命令(這似乎超時/在Azure上根本無法很好地工作)

創建WebJob和使用類型Triggered ,觸發Manual

在此處輸入圖片說明

上載帶有命令的* .cmd文件,例如

d:\home\python364x64\python.exe d:\home\site\wwwroot\manage.py migrate

將python替換為第一個路徑

然后在您想運行Django命令時單擊“運行”

在此處輸入圖片說明

暫無
暫無

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

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