如果此命令成功,$vnet 中应该包含 Properties 变量。Properties 变量应该包含证书指纹和证书数据。
· 将证书下载到本地
$certBytes =[System.Convert]::FromBase64String
($vnet.Properties.certBlob)
[System.IO.File]::WriteAllBytes
("$($Configuration.GeneratedCertificatePath)",$certBytes)
在Portal中将下载的证书上载到虚拟网络
· 获取点到站点包,并将其提供给WebSite应用
将以下模板保存到计算机上某个位置中的名为GetNetworkPackageUri.json 的文件
{
"$schema":"http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion":"1.0.0.0",
"parameters": {
"certData": {
"type":"string"
},
"certThumbprint": {
"type": "string"
},
"networkName": {
"type":"string"
}
},
"variables": {
"legacyVnetName":"[concat('Group ', resourceGroup().name, ' ',parameters('networkName'))]"
},
"resources": [
],
"outputs" : {
"PackageUri" :
{
"value" : "[listPackage(resourceId('Microsoft.ClassicNetwork/virtualNetworks/gateways/clientRootCertificates',parameters('networkName'), 'primary', parameters('certThumbprint')), '2014-06-01').packageUri]","type" : "string"
}
}
}
设置输入参数:
$parameters =@{"certData" = $vnet.Properties.certBlob ;
certThumbprint =$vnet.Properties.certThumbprint ;
"networkName" =$Configuration.VnetName }
· 调用ARM模板
#这里的json文件就是上面保存的json模板文件
$output = New-AzureRmResourceGroupDeployment-Name unused -ResourceGroupName $Configuration.VnetResourceGroup-TemplateParameterObject $parameters -TemplateFileC:\PATH\TO\GetNetworkPackageUri.json
变量 $output.Outputs.packageUri 现在包含要提供给Web 应用的包 URI。
· 将点到站点包上载到应用
$vnet = New-AzureRmResource -Name"$($Configuration.WebAppName)/$($Configuration.VnetName)/primary"-ResourceGroupName $Configuration.WebAppResourceGroup -ResourceType"Microsoft.Web/sites/virtualNetworkConnections/gateways" -ApiVersion2015-07-01 -PropertyObject @{"VnetName" = $Configuration.VnetName ;"VpnPackageUri" = $($output.Outputs.packageUri).Value } -Location$Configuration.WebAppLocation
此命令成功之后,应用现在应会连接到虚拟网络
6、确认应用是否连接到虚拟网络
下载WebSite发布配置文件
登录到应用Kudu管理平台,打开浏览器输入下图选中的Url并登录。
进入命令行界面
输入以下命令
SET WEBSITE_
我们可以看到WEBSITE_VNETNAME 的环境变量值就是连接的虚拟网络,说明我们的应用已经集成到虚拟网络中了。
关注我们,一起成为云达人!
閱讀更多 上海南洋培訓 的文章