我正在进行自动定位Azure App Service的部署,并且我正在使用FTP部署。
不幸的是,FTP部署的主机名似乎与应用程序不同,我希望我的脚本能够自己推断出正确的脚本。
azure CLI中是否有任何可以获取FTP主机名值的内容?如果这有用的话,我会使用2.0(闪亮的新版本)。
答案 0 :(得分:1)
据我所知,没有Azure CLI可以获取FTP主机名值。但我们可以使用Azure Rest API ListPublishingProfileXmlWithSecrets获取主机名,以从PublishingProfile获取Azure WebApp FTP主机名。
如果您的案例可以使用PowerShell,我们也可以使用PowerShell命令 Get-AzureRmWebAppPublishingProfile获取Azure网站PublishProfile。
如果FTP不是部署Azue WebApp的唯一选择,我们也可以使用Kudu API部署Azure网站。我们可以使用CLI命令azure webapp publishingprofile show resourcegroup WebAppname
轻松获取部署凭据。
<强>更新强>
对于 Azure CLI 2.0 az命令,我们可以使用az appservice web deployment list-site-credentials
来获取网站部署凭据。更多命令请参考document。
az appservice web deployment list-site-credentials --resource-group resourcegroup --name WebAppname
答案 1 :(得分:1)
我不建议在制作中这样做,但它有效。它非常hacky,所以要小心它的脆弱性:
$ az appservice web show -n ${WEB_APP} -g ${RES_GRP} -o json --query "hostNames" |
grep -v '.scm.' |
grep azurewebsites.net | # Drop custom domains here
xargs host | # Resolve the scale unit name
grep cloudapp.net |
tail -1 |
cut -d'.' -f 1
输出:
waws-prod-am2-103
这表示应用服务计划所在的比例单位。由于比例单位和FTP端点之间似乎存在1:1关系,因此您可以构建FTP FQDN,如下所示:
waws-prod-am2-103.ftp.azurewebsites.windows.net
话虽如此,我建议反对这样做并使用Kudu's Zip Upload APIs代替(如果你真的不想/不能从源代码控制部署)。 Tom Sun - MSFT 已经推荐了这种方法,并且我就是那个方法。