使用专用终结点将单租户标准逻辑应用部署到专用存储帐户
适用于:Azure 逻辑应用(标准)
当创建单租户标准逻辑应用资源时,你必须拥有一个用于存储逻辑应用项目的存储帐户。 你可以限制对此存储帐户的访问,以便只有虚拟网络内的资源才能连接到逻辑应用工作流。 Azure 存储支持将专用终结点添加到存储帐户。
本文介绍将此类逻辑应用部署到受保护的专用存储帐户时要执行的步骤。
有关详细信息,请查看以下文档:
使用 Azure 门户或 Visual Studio Code 进行部署
此部署方法需要对存储帐户进行临时公共访问。 如果由于组织策略而无法启用公共访问,你仍可将逻辑应用部署到专用存储帐户。 但是,你必须使用 Azure 资源管理器模板(ARM 模板)进行部署,后面部分将对此进行介绍。
注意
上一规则的例外情况是,即使存储帐户受到专用终结点的保护,也可以使用 Azure 门户将逻辑应用部署到应用服务环境。 但是,需要在应用服务环境使用的子网与存储帐户专用终结点使用的子网之间建立连接。
为每个表、队列和 Blob 和文件存储服务创建不同的专用终结点。
部署逻辑应用时,在存储帐户上启用临时公共访问。
在 Azure 门户中,打开你的存储帐户资源。
在存储帐户资源菜单中的“安全性 + 网络”下,选择“网络” 。
在“网络”窗格中的“防火墙和虚拟网络”选项卡上,在“允许从以下位置访问”下,选择“所有网络” 。
使用 Azure 门户或 Visual Studio Code 部署逻辑应用资源。
部署完成后,在逻辑应用与连接到存储帐户的虚拟网络上的专用终结点之间启用虚拟网络集成。
在 Azure 门户中,打开你的逻辑应用资源。
在逻辑应用资源菜单中的“设置”下,选择“网络” 。
在“出站流量配置”部分的“虚拟网络集成”旁边,选择“未配置”>“添加虚拟网络集成”。
在打开的“添加虚拟网络集成”窗格中,选择你的 Azure 订阅和你的虚拟网络。
从“子网”列表中,选择要在其中添加逻辑应用的子网。 完成后,选择“连接”。
若要通过虚拟网络访问逻辑应用工作流数据,请执行以下步骤:
在逻辑应用资源菜单中,在“设置”下选择“环境变量”。
在“应用设置”选项卡上,添加 WEBSITE_CONTENTOVERVNET 应用设置(如果不存在),并将值设置为 1。
如果将自己的域名服务器 (DNS) 用于虚拟网络,请添加 WEBSITE_DNS_SERVER 应用设置(如果不存在),并将相应值设置为你的 DNS 的 IP 地址。 如果有辅助 DNS,请添加名为 WEBSITE_DNS_ALT_SERVER 的另一个应用设置,并将相应值设置为辅助 DNS 的 IP。
应用这些应用设置后,可以从存储帐户中删除公共访问。
在 Azure 门户中,打开你的存储帐户资源。
在存储帐户资源菜单中的“安全性 + 网络”下,选择“网络” 。
在“网络”窗格中的“防火墙和虚拟网络”选项卡上,在“允许的访问来源”下,清除所选的网络,然后视情况添加虚拟网络。
注意
逻辑应用可能会遇到中断,因为公共终结点和专用终结点之间的连接切换可能需要一些时间。 该中断可能会导致工作流暂时消失。 如果发生此行为,可以尝试通过重启逻辑应用并等待几分钟来重新加载工作流。
使用 Azure 资源管理器模板进行部署
此部署方法不需要对存储帐户的公共访问权限。 有关 ARM 模板示例,请查看使用安全存储帐户和专用终结点部署逻辑应用。 示例模板可创建以下资源:
- 拒绝公共流量的存储帐户
- Azure 虚拟网络和子网
- Blob、文件、队列和表服务的专用 DNS 区域和专用终结点
- Azure 逻辑应用运行时目录和文件的文件共享。 有关详细信息,请查看单租户 Azure 逻辑应用中逻辑应用的主机和应用设置。
- 用于托管标准逻辑应用资源的应用服务计划(工作流标准 WS1)
- 其网络配置设置为使用虚拟网络集成的标准逻辑应用资源。 此配置使逻辑应用能够通过专用终结点访问存储帐户。
解决常见问题
以下错误通常发生在防火墙后面的专用存储帐户中,这些错误表示逻辑应用无法访问存储帐户服务。
问题 | 错误 |
---|---|
拒绝访问 host.json 文件 |
"System.Private.CoreLib: Access to the path 'C:\\home\\site\\wwwroot\\host.json' is denied." |
无法在逻辑应用资源中加载工作流 | "Encountered an error (ServiceUnavailable) from host runtime." |
由于出现这些错误时逻辑应用未运行,因此无法使用 Azure 平台上的 Kudu 控制台调试服务来排查这些错误。 但可改用以下方法:
在同一个虚拟网络的不同子网(与逻辑应用集成)中创建 Azure 虚拟机 (VM)。 尝试从 VM 连接到存储帐户。
使用存储资源管理器工具检查对存储帐户服务的访问。
如果使用此工具发现任何连接问题,请继续执行以下步骤:
从命令提示符运行
nslookup
,检查存储服务是否解析为虚拟网络的专用 IP 地址:C:\>nslookup {storage-account-host-name} [optional-DNS-server]
检查所有存储服务:
C:\nslookup {storage-account-host-name}.blob.core.chinacloudapi.cn
C:\nslookup {storage-account-host-name}.file.core.chinacloudapi.cn
C:\nslookup {storage-account-host-name}.queue.core.chinacloudapi.cn
C:\nslookup {storage-account-host-name}.table.core.chinacloudapi.cn
如果这些 DNS 查询解析,请运行
psping
或tcpping
以检查通过端口 443 到存储帐户的流量:C:\psping {storage-account-host-name} {port} [optional-DNS-server]
检查所有存储服务:
C:\psping {storage-account-host-name}.blob.core.chinacloudapi.cn:443
C:\psping {storage-account-host-name}.queue.core.chinacloudapi.cn:443
C:\psping {storage-account-host-name}.table.core.chinacloudapi.cn:443
C:\psping {storage-account-host-name}.file.core.chinacloudapi.cn:443
如果查询从 VM 解析,请继续执行以下步骤:
在 VM 中,查找用于解析的 DNS 服务器。
在逻辑应用中,找到
WEBSITE_DNS_SERVER
应用设置并将其设置为你在上一步中找到的同一 DNS 服务器值。检查是否使用逻辑应用中相应的虚拟网络和子网正确设置了虚拟网络集成。