如果在 Azure Web PubSub 中使用事件处理程序,则可能会具有流向使用 Azure 应用服务的 Web 应用功能创建的静态 Web 应用上游终结点的出站流量,或流向使用 Azure Functions 创建的函数的出站流量。 可以将 Web 应用和 Functions 配置为使用接受来自虚拟网络列表的连接的终结点,并拒绝源自公用网络的外部连接。 可以在 Web PubSub 服务中创建出站专用终结点连接来访问这些终结点。
本文介绍如何配置 Web PubSub 资源,以通过共享专用终结点而不是通过公用网络将上游调用发送到 Azure Functions 中的函数。
此出站方法需要符合下列要求:
必须使用 Azure 应用服务或 Azure Functions 部署上游终结点。
Web PubSub 资源必须位于标准层或高级层。
必须通过选择可创建该资源的特定层来创建 Azure 应用服务或 Azure Functions 资源。 有关详细信息,请参阅将专用终结点用于 Azure Web 应用。
使用 Azure Web PubSub API 创建的安全资源的专用终结点称为共享专用链接资源。 你正在“共享”对与 Azure 专用链接集成的资源(例如 Azure Functions 资源)的访问权限。 这些专用终结点是在 Web PubSub 服务执行环境中创建的,不会直接显示出来。
此 Azure Web PubSub 资源的资源 ID 为 _/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub。
Azure Functions 网络资源的资源 ID 为 _/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Web/sites/contoso-func。
请将以下 API 调用与 Azure CLI 一起使用,以创建共享专用链接资源。 将以下示例中的值替换为方案中的值。
```bash
az rest --method put --uri https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub/sharedPrivateLinkResources/func-pe?api-version=2021-06-01-preview --body @create-pe.json --debug
要定期轮询此 URI 以获取操作的状态,请手动查询 Azure-AsyncOperationHeader 值。 下面是一个示例:
az rest --method get --uri https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2021-06-01-preview
az rest --method get --uri https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub/sharedPrivateLinkResources/func-pe?api-version=2021-06-01-preview