如果您在 Azure Web PubSub 中使用 事件处理程序,您可能会产生流向由 专用链接服务支持的上游终结点的出站流量。 若要保护此类出站流量,可以在 Web PubSub 服务中创建出站 专用终结点连接 ,以专用方式访问这些终结点。
Azure 专用链接服务可由在 Azure 标准负载均衡器后面运行的任何应用程序提供支持。 这意味着可以在虚拟机、虚拟机规模集或 Azure Kubernetes 服务中托管事件处理程序。
此出站方法需要满足以下要求:
- 必须将专用链接服务可见性配置为 “对任何人可见”
- Web PubSub 资源必须位于标准层或高级层。
使用 Azure Web PubSub API 创建的受保护资源的专用终结点称为 共享专用链接资源。 你正在“共享”对专用链接服务的访问权限。 这些专用终结点是在 Web PubSub 服务执行环境中创建的,不直接可见。
先决条件
注释
本文中的示例使用以下值:
- 此 Azure Web PubSub 资源的资源 ID 为
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub。
- Azure 专用链接服务资源的资源 ID 为
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Network/privateLinkServices/contoso-pls。
- 我们希望使用域
pls.contoso.com 调用专用链接服务终结点。
若要使用以下示例中的步骤,请将这些值替换为自己的订阅 ID、Web PubSub 资源的名称和专用链接服务的名称。
如果计划在事件处理程序设置中使用 HTTPS pls.contoso.com ,请确保 Azure 专用链接服务后面的应用程序配置了正确的证书。
创建一个共享的专用链接资源,以用于专用链接服务
请在 Azure 门户中导航到您的 Azure Web PubSub 资源。
在左侧菜单中,选择“ 网络”。
选择 “专用访问”。
选择 “添加共享专用终结点”。
输入共享专用终结点的名称。
若要设置目标链接资源,请选择 从您的资源中选择 或在 指定资源 ID 中输入您的资源 ID。
(可选)可以在 请求消息 中输入文本,以向目标资源所有者发送请求。
输入 FQDN 作为 pls.contoso.com。
选择 并添加。
共享专用终结点资源中 预配状态 的值是 “成功”。
连接状态 为 挂起 ,直到终结点在目标资源上获得批准。
将以下 API 调用与 Azure CLI 配合使用来创建共享专用链接资源。 将以下示例中的值替换为方案中的值。
az rest --method put --uri https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub/sharedPrivateLinkResources/pls-pe?api-version=2024-08-01-preview --body @create-pe.json --debug
create-pe.json 文件包含 API 的请求正文。 这类似于以下示例:
{
"name": "pls-pe",
"properties": {
"privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Network/privateLinkServices/contoso-pls",
"fqdns": [
"pls.contoso.com"
],
"requestMessage": "please approve"
}
}
创建出站专用终结点的过程是长时间运行的(异步)操作。 与所有异步 Azure 操作的情况一样,PUT 调用返回类似于以下示例的 Azure-AsyncOperation 标头值:
"Azure-AsyncOperation": "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=2024-08-01-preview"
若要定期轮询此 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=2024-08-01-preview
等待状态更改为“成功”,然后转到下一步。
批准专用终结点连接
当共享专用终结点连接处于“挂起”状态时,必须在目标资源中批准连接请求。
- 在 Azure 门户中,转到 Azure 专用链接服务。
- 在左侧菜单中,选择 “设置 - 专用终结点连接”。
- 选择您在 Web PubSub 资源中创建的挂起的连接。
- 选择“ 批准”,然后选择“ 是 ”以确认。
可以选择“ 刷新 ”以检查状态。 状态 “连接”状态 更新为 “已批准”可能需要几分钟时间。
列出专用终结点连接:
az network private-endpoint-connection list -n <private-link-service-resource-name> -g <private-link-service-resource-group-name> --type 'Microsoft.Network/privateLinkServices'
检查挂起的专用端点连接。 记下连接 ID。
[
{
"id": "<ID>",
"location": "",
"name": "",
"properties": {
"privateLinkServiceConnectionState": {
"actionRequired": "None",
"description": "Please approve",
"status": "Pending"
}
}
}
]
批准私有终结点连接:
az network private-endpoint-connection approve --id <private-endpoint-connection-ID>
查询共享专用链接资源的状态
批准需要几分钟才能反映在 Web PubSub 中。 可以使用 Azure 门户或 Azure CLI 检查状态。
az rest --method get --uri https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub/sharedPrivateLinkResources/pls-pe?api-version=2024-08-01-preview
此命令返回 JSON。 连接状态在status下由properties指示。
{
"name": "pls-pe",
"properties": {
"privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Network/privateLinkServices/contoso-pls",
"fqdns": [
"pls.contoso.com"
],
"requestMessage": "please approve",
"status": "Approved",
"provisioningState": "Succeeded"
}
}
当properties.provisioningStateSucceeded和properties.status(连接状态)为Approved时,共享的私有链接资源正常工作,并且 Web PubSub 可以通过私有终结点进行通信。
此时,Azure Web PubSub 和 Azure 专用链接服务之间的专用终结点已建立。 可以使用 URL,例如 http://pls.contoso.com/eventhandler 在事件处理程序设置中。 当 Azure Web PubSub 发送事件处理程序请求时, pls.contoso.com 会在内部解析为专用地址,流量通过专用网络。
相关内容