服务总线和功能应用 (Vnet) 集成

时间:2021-01-12 12:45:43

标签: azure azureservicebus azure-virtual-network azure-function-app

我正在为函数应用使用主题触发器。我在 Vnet 中有我的函数应用程序,但在服务总线中没有。我可以看到消息没有被函数触发/接收。这是否意味着服务总线和函数应用程序都应该在 Vnet 内,或者我可以尝试其他任何选项。

如果我从 Function App 中移出 Vnet,一切似乎都很好。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

据我所知,VNet 集成可让您的应用访问 VNet 中的资源,但它不会授予从 VNet 对您的应用的入站私有访问权限。这不会影响到 Azure 服务总线的出站流量。您不需要设置 WEBSITE_VNET_ROUTE_ALL=1

enter image description here

验证集成子网上既没有启用服务端点,也没有阻止 NSG 规则。 enter image description here

enter image description here

答案 1 :(得分:0)

使用区域 VNet 集成时,需要做好几件事以确保函数应用可以与 Key Vault 连接

  • 需要在集成子网上启用 Keyvault 服务端点。
  • 集成子网需要在 Keyvault 防火墙上列入白名单。见this

然而,由于架构限制,有一种方案目前无法使用。看到这个:https://feedback.azure.com/forums/355860-azure-functions/suggestions/38817385-allow-key-vault-references-to-access-secrets-behin

如果 KeyVault 端点通过应用设置传递,则此方案当前不起作用。如果您的函数代码直接访问密钥保管库终结点,那么这应该可以正常工作。