「干货」如何将WebSite集成到虚拟网络中?

如果此命令成功,$vnet 中应该包含 Properties 变量。Properties 变量应该包含证书指纹和证书数据。

· 将证书下载到本地

$certBytes =[System.Convert]::FromBase64String

($vnet.Properties.certBlob)

[System.IO.File]::WriteAllBytes

("$($Configuration.GeneratedCertificatePath)",$certBytes)

在Portal中将下载的证书上载到虚拟网络

「干货」如何将WebSite集成到虚拟网络中?

· 获取点到站点包,并将其提供给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发布配置文件

「干货」如何将WebSite集成到虚拟网络中?

登录到应用Kudu管理平台,打开浏览器输入下图选中的Url并登录。

「干货」如何将WebSite集成到虚拟网络中?

进入命令行界面

「干货」如何将WebSite集成到虚拟网络中?

输入以下命令

SET WEBSITE_

「干货」如何将WebSite集成到虚拟网络中?

我们可以看到WEBSITE_VNETNAME 的环境变量值就是连接的虚拟网络,说明我们的应用已经集成到虚拟网络中了。

「干货」如何将WebSite集成到虚拟网络中?

关注我们,一起成为云达人!


分享到:


相關文章: