未执行 Azure 启动脚本
Azure startup script is not executed
我学会了how to deploy .sh scripts to Azure with Azure CLI。但是我好像不太了解它们是如何工作的。
我正在创建一个脚本,它只是在 Azure Web 应用程序的当前目录中取消存档 .tgz 存档,然后将其删除。很简单:
New-Item ./startup.sh
Set-Content ./startup.sh '#!/bin/sh'
Add-Content ./startup.sh 'tar zxvf archive.tgz; rm-rf ./archive.tgz'
然后我像这样部署脚本:
az webapp deploy --resource-group Group
--name Name
--src-path ./startup.sh
--target-path /home/site/wwwroot/startup.sh
--type=startup
据说,它应该出现在 /home/site/wwwroot/
中,但由于某种原因它从未出现。不管我怎么努力。我以为它只是被执行然后自动删除(因为我将它指定为 startup
脚本),但存档在那里,根本没有取消存档。
我的堆栈是 .NET Core。
我做错了什么,做我需要做的事情的正确方法是什么?谢谢。
我不知道这是否有意义,但我认为问题可能在于您使用的是 target-path
参数,而您应该使用 path
。
来自 documentation you cited,在描述 Azure CLI 功能时,他们指出:
The CLI command uses the Kudu publish API to deploy the package and can be
fully customized.
Kudu publish API reference 表示,当描述类型的不同值时,尤其是 startup
:
type=startup
: Deploy a script that App Service automatically uses as the
startup script for your app. By default, the script is deployed to
D:\home\site\scripts\<name-of-source>
for Windows and
home/site/wwwroot/startup.sh
for Linux. The target path can be specified
with path
.
注意path
的使用:
The absolute path to deploy the artifact to. For example,
"/home/site/deployments/tools/driver.jar", "/home/site/scripts/helper.sh".
我从未测试过,我知道在考虑 az webapp deploy
command itself 时没有描述该选项,这可能只是文档中的一个错误,但它可能有效:
az webapp deploy --resource-group Group
--name Name
--src-path ./startup.sh
--path /home/site/wwwroot/startup.sh
--type=startup
请注意,您提供的路径是默认路径;因此,如果需要,您可以安全地删除它:
az webapp deploy --resource-group Group
--name Name
--src-path ./startup.sh
--type=startup
最后,尝试在您的脚本中包含一些调试或 echo
命令:也许问题可能是由任何权限问题引起的,并且在日志中记录一些痕迹也可能会有所帮助。
我学会了how to deploy .sh scripts to Azure with Azure CLI。但是我好像不太了解它们是如何工作的。
我正在创建一个脚本,它只是在 Azure Web 应用程序的当前目录中取消存档 .tgz 存档,然后将其删除。很简单:
New-Item ./startup.sh
Set-Content ./startup.sh '#!/bin/sh'
Add-Content ./startup.sh 'tar zxvf archive.tgz; rm-rf ./archive.tgz'
然后我像这样部署脚本:
az webapp deploy --resource-group Group
--name Name
--src-path ./startup.sh
--target-path /home/site/wwwroot/startup.sh
--type=startup
据说,它应该出现在 /home/site/wwwroot/
中,但由于某种原因它从未出现。不管我怎么努力。我以为它只是被执行然后自动删除(因为我将它指定为 startup
脚本),但存档在那里,根本没有取消存档。
我的堆栈是 .NET Core。
我做错了什么,做我需要做的事情的正确方法是什么?谢谢。
我不知道这是否有意义,但我认为问题可能在于您使用的是 target-path
参数,而您应该使用 path
。
来自 documentation you cited,在描述 Azure CLI 功能时,他们指出:
The CLI command uses the Kudu publish API to deploy the package and can be fully customized.
Kudu publish API reference 表示,当描述类型的不同值时,尤其是 startup
:
type=startup
: Deploy a script that App Service automatically uses as the startup script for your app. By default, the script is deployed toD:\home\site\scripts\<name-of-source>
for Windows andhome/site/wwwroot/startup.sh
for Linux. The target path can be specified withpath
.
注意path
的使用:
The absolute path to deploy the artifact to. For example, "/home/site/deployments/tools/driver.jar", "/home/site/scripts/helper.sh".
我从未测试过,我知道在考虑 az webapp deploy
command itself 时没有描述该选项,这可能只是文档中的一个错误,但它可能有效:
az webapp deploy --resource-group Group
--name Name
--src-path ./startup.sh
--path /home/site/wwwroot/startup.sh
--type=startup
请注意,您提供的路径是默认路径;因此,如果需要,您可以安全地删除它:
az webapp deploy --resource-group Group
--name Name
--src-path ./startup.sh
--type=startup
最后,尝试在您的脚本中包含一些调试或 echo
命令:也许问题可能是由任何权限问题引起的,并且在日志中记录一些痕迹也可能会有所帮助。