将Azure WebSite(应用)集成到虚拟网络

用过Azure的同学都知道如何将虚拟机加入虚拟网络,也非常简单,但是对于将应用(WebSite)集成到虚拟网络中却很少听到。今天我要讲的就是如何直接将我们部署在WebSite中的应用加入到虚拟网络。

1、先决条件:

  • 安装 Azure Powershell(download)
  • Azure 订阅账号(Azure Portal)

  • 在标准或高级 SKU 中运行的 Azure App Service 中的应用

2、创建虚拟网络

因为将WebSite加入到虚拟网络中是Point to Site,所以我们创建虚拟网络时需要启用点到站点连接,当然也可以创建完成再启用。

输入虚拟网络名称并选择网络位置

 

 

添加网关子网

创建网关,这一步骤时间有点长(大概20分钟)

3、创建WebSite

因为我们创建的WebSite SKU默认为“免费”,而能和虚拟网络进行集成的WebSite SKU需要是标准或高级,所以我们需要手动缩放下。

3、将应用连接到虚拟网络

 使用Powershell命令登录Azure账号和订阅

Login-AzureRmAccount -EnvironmentName AzureChinaCloud

选中WebSite所在订阅

Select-AzureRmSubscription -SubscriptionName [WebAppSubscriptionName]

或者

Select-AzureRmSubscription -SubscriptionId [WebAppSubscriptionId]
  • 使用Powershell设置WebSite连接到虚拟网络的配置信息
$Configuration = @{}
$Configuration.WebAppResourceGroup = "[Your web app resource group]"
$Configuration.WebAppName = "[Your web app name]"
$Configuration.VnetSubscriptionId = "[Your vnet subscription id]"
$Configuration.VnetResourceGroup = "[Your vnet resource group]"
$Configuration.VnetName = "[Your vnet name]"
#国内Azure有两个数据中心:chinaeast、chiannorth
$Configuration.WebAppLocation = "[Your web app Location]"
$Configuration.GeneratedCertificatePath = "C:\Users\Crazy\Desktop\Certificate.cer"

查看刚才设置的配置

  • 向应用中申明虚拟网络
$vnet = New-AzureRmResource -Name "$($Configuration.WebAppName)/$($Configuration.VnetName)" -ResourceGroupName $Configuration.WebAppResourceGroup -ResourceType "Microsoft.Web/sites/virtualNetworkConnections" -PropertyObject @{"VnetResourceId" = "/subscriptions/$($Configuration.VnetSubscriptionId)/resourceGroups/$($Configuration.VnetResourceGroup)/providers/Microsoft.ClassicNetwork/virtualNetworks/$($Configuration.VnetName)"} -Location $Configuration.WebAppLocation -ApiVersion 2015-07-01

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

  • 将证书下载到本地
$certBytes = [System.Convert]::FromBase64String($vnet.Properties.certBlob)
[System.IO.File]::WriteAllBytes("$($Configuration.GeneratedCertificatePath)", $certBytes)

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

  • 获取点到站点包,并将其提供给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模板
$output = New-AzureRmResourceGroupDeployment -Name unused -ResourceGroupName $Configuration.VnetResourceGroup -TemplateParameterObject $parameters -TemplateFile C:\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" -ApiVersion 2015-07-01 -PropertyObject @{"VnetName" = $Configuration.VnetName ; "VpnPackageUri" = $($output.Outputs.packageUri).Value } -Location $Configuration.WebAppLocation

此命令成功之后,应用现在应会连接到虚拟网络

4、确认应用是否连接到虚拟网络

下载WebSite发布配置文件

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

进入命令行界面

输入以下命令

SET WEBSITE_

我们可以看到WEBSITE_VNETNAME 的环境变量值就是连接的虚拟网络。

 

转载于:https://www.cnblogs.com/rampb/p/6405632.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值