发现应用服务网络功能
默认情况下,在应用服务中托管的应用可通过 Internet 直接访问,并且可以访问 Internet 托管的终结点。 对于许多应用程序,需要控制入站和出站网络流量。
Azure 应用服务有两种主要部署类型:
- 多租户公共服务托管免费、共享、基本、标准、高级、PremiumV2 和 PremiumV3 定价 SKU 中的应用服务计划。
- 单租户应用服务环境 (ASE) 直接在 Azure 虚拟网络中托管隔离的 SKU 应用服务计划。
多租户应用服务网络功能
Azure 应用服务是分布式系统。 处理传入 HTTP 或 HTTPS 请求的角色称为 前端。 托管客户工作负载的角色称为“辅助角色”。 应用服务部署中的所有角色都存在于多租户网络中。 由于同一应用服务缩放单元中有许多不同的客户,因此无法将应用服务网络直接连接到网络。
不需要连接网络,而是需要功能来处理应用程序通信的各个方面。 处理对应用的请求的功能不能用于解决从应用发出调用时出现的问题。 同样,用于解决应用程序外部调用问题的功能无法用于解决应用程序本身的问题。
| 入站功能 | 出站功能 |
|---|---|
| 应用分配的地址 | 混合连接 |
| 访问限制 | 网关所需的虚拟网络集成 |
| 服务终结点 | 虚拟网络集成 |
| 专用终结点 |
你可以混合使用这些功能来解决你的问题,但存在一些例外情况。 以下入站用例是如何使用应用服务网络功能来控制发入应用的流量的示例。
| 入站用例 | 功能 |
|---|---|
| 支持应用的基于 IP 的 SSL 需求 | 应用分配的地址 |
| 支持应用的非共享专用入站地址 | 应用分配的地址 |
| 从一组定义完善的地址限制对应用的访问 | 访问限制 |
默认网络行为
Azure 应用服务缩放单元支持每个部署中的许多客户。 免费和共享 SKU 计划在多租户辅助角色上托管客户工作负载。 基本及更高版本计划仅用于一个应用服务计划的托管客户工作负载。 如果你有标准 App Service 计划,则该计划中的所有应用在同一工作器上运行。 如果横向扩展辅助角色,则会在应用服务计划中每个实例的新辅助角色上复制该应用服务计划中的所有应用。
出站地址
辅助角色虚拟机在很大程度上由应用服务计划细分。 免费、共享、基本、标准和高级计划都使用相同的辅助角色虚拟机类型。 PremiumV2 计划使用另一种虚拟机类型。 PremiumV3 使用另一种虚拟机类型。 更改虚拟机系列时,将获得一组不同的出站地址。
有许多地址用于外拨电话。 您的应用程序用于进行出站呼叫的出站地址列在应用程序的属性中。 这些地址由应用服务部署中同一辅助角色虚拟机系列上运行的所有应用共享。 如果想要查看应用可能在缩放单元中使用的所有地址,则有一个名为 possibleOutboundIpAddresses 的属性列出它们。
查找出站 IP
若要在 Azure 门户中查找应用当前使用的出站 IP 地址,请在应用的左侧导航中选择 属性。
可以通过在 Cloud Shell 中运行以下 Azure CLI 命令找到相同的信息。 它们列在 其他出站 IP 地址 字段中。
az webapp show \
--resource-group <group_name> \
--name <app_name> \
--query outboundIpAddresses \
--output tsv
若要查找应用的所有可能的出站 IP 地址,而不考虑定价层,请在 Cloud Shell 中运行以下命令。
az webapp show \
--resource-group <group_name> \
--name <app_name> \
--query possibleOutboundIpAddresses \
--output tsv