2016-12-14 20 views
0

我有一個azuredeploy.json,用於設置運行我的開源NodeJS Web應用程序的應用程序服務。部署運行後,我想向腳本用戶輸出一個URL(例如,使用azuredeploy.net部署我的Web應用的用戶),爲他們提供新服務器管理控制檯的URL。從azuredeploy/ARM腳本輸出管理員URL字符串

我的一些用戶可能從未使用過Azure,部署過程中最難的部分是解釋他們如何使用Azure門戶(這非常令人難以置信)找到他們的新應用服務的URL。

如果我可以在部署後輸出字符串,它會爲他們節省很多麻煩。

+0

我使用的是輸出部分,但是這似乎並沒有在腳本在azuredeploy.net上運行時還是通過天藍色門戶生成輸出? – Seth

回答

0

您看過ARM模板中的output功能嗎?
請參閱this blog瞭解Output的工作原理以及在PowerShell中將其作爲ARM部署的一部分的示例。

應用服務的URL在variable中很容易創建,然後只需在部署結束時輸出即可。

0
{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { ... }, 
    "variables": { 
    ... 
    "primaryWebApp": "[uniqueString(resourceGroup().id, '1')]", 
    ... 
    }, 
    "resources": [ 
    { ... }, 
    { 
     "apiVersion": "2015-01-01", 
     "name": "webAppPrimary", 
     "type": "Microsoft.Resources/deployments", 
     "dependsOn": [ 
     "[resourceId('Microsoft.Resources/deployments', 'StorageAccount')]" 
     ], 
     "properties": { 
     "mode": "Incremental", 
     "templateLink": { ... }, 
     "parameters": { 
     "siteName": { 
      "value": "[variables('primaryWebApp')]" 
      }, 
     ... } 
     } 
     } 
    }, 
    { ... }], 
    "outputs": { 
    "webAppPrimary": { 
     "type": "string", 
     "value": "[variables('primaryWebApp')]" 
    }, 
    ... 
    } 
} 

然後我做這樣的事情:

try { $deploy = New-AzureRmResourceGroupDeployment @parameters } 
catch { Remove-AzureRmResourceGroup -ResourceGroupName $rgName -Force; $error; exit 1 } 

$primaryWepAppName = $deploy.outputs.values.value[0] 

構建最終的網址您可以:

$url = "$primaryWebAppName.azurewebsites.net"