有没有办法以编程方式获取FTP部署主机名?

时间:2017-03-06 00:08:23

标签: azure ftp azure-web-app-service

我正在进行自动定位Azure App Service的部署,并且我正在使用FTP部署。

不幸的是,FTP部署的主机名似乎与应用程序不同,我希望我的脚本能够自己推断出正确的脚本。

azure CLI中是否有任何可以获取FTP主机名值的内容?如果这有用的话,我会使用2.0(闪亮的新版本)。

2 个答案:

答案 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轻松获取部署凭据。

enter image description here

<强>更新

对于 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

enter image description here

答案 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 已经推荐了这种方法,并且我就是那个方法。