繁体   English   中英

将 Azure Function App 连接到 VNet

[英]Connect Azure Function App to VNet

如何使用 arm 模板部署附加到 VNet 的函数应用?

现在,我的 arm 模板部署了一个基于 AppServicePlan 的函数应用程序就好了,并在“站点”资源“属性”部分设置了“vnetName”……但在部署之后,函数应用程序仍然显示为“未配置”任何 VNet。 然后我可以进入门户并单击几下添加到所需的 VNet...但为什么它不能通过 arm 模板工作? 有人可以提供一个样本手臂模板来做到这一点吗?

经过进一步审查,仅通过 ARM 是不可能的。 以下是将 Web 应用连接到 VNet 的说明: https ://docs.microsoft.com/en-gb/azure/app-service-web/app-service-vnet-integration-powershell


旧答案:这是另一篇试图通过 Web Apps 实现相同目标的帖子(函数构建在 Web Apps 上): https : //stackoverflow.com/a/39518349/5915331


如果我不得不根据 powershell 命令进行猜测,请尝试向名为web的类型为config的站点添加一个子资源,类似于 github 部署的 arm 模板: https : //github.com/MicrosoftDocs/azure-docs/ blob/master/articles/app-service-web/app-service-web-arm-from-github-provision.md#web-app

然而,引擎盖下可能会发生一些神奇的事情。

{
  "name": "[parameters('siteName')]",
  "type": "Microsoft.Web/sites"
  "location": ...,
  "apiVersion": ...,
  "properties": ...,
  "resources": [
    "name": "web",
    "type": "config",
    "apiVersion": "2015-08-01",
    "dependsOn": [
      "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]"
    ],
    "properties": {
      "vnetName": "[parameters('vnetName')]"
    },
  ]
}

除了创建 VPN 包之外,我可以使用 ARM 完成所有操作 - 这就是仅设置资源属性和实际使应用程序正确连接到 VNET 之间的区别。

除了Get-AzureRmVpnClientPackage之外,本文中的所有内容 ( https://docs.microsoft.com/en-gb/azure/app-service-web/app-service-vnet-integration-powershell ) 都可以轻松地从 PowerShell 转换为 ARM

假设您使用的是旧版 VNET,您可以通过 ARM 获取 VPN 客户端包 URL,因为旧版 VNET 资源提供程序支持该操作 ( https://docs.microsoft.com/en-us/azure/active-directory/基于角色的访问控制资源提供者操作):

Microsoft.ClassicNetwork/virtualNetworks/gateways/listPackage/action

ARM VNET 提供程序似乎没有

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM