繁体   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