所以我正在构建脚本,以使用 PowerShell 中的 Az 模块部署 Azure 资源。 我是 Azure 流量管理器的新手,所以我想知道我们想要做的事情是否可行,如果是,如何做。
我们有一个 API 管理服务 (APIMS(,其中包含一些指向 Azure 中几个不同 Web 应用的 API。 因此,它目前的工作方式是,我们有一个客户端应用程序,它将通过其APIMS URL发布到特定的API操作。
我们正在研究使用流量管理器的想法,纯粹是为了在需要创建新的 APIMS 时将流量从一个 APIMS 移动到另一个 APIMS。 我可以使用流量管理器的公共 IP 地址将现有 APIMS 作为终结点添加到流量管理器作为外部终结点。 但除此之外,这是我不确定的:
流量- 究竟如何通过流量管理器、APIMS 路由到特定的 API 帖子?(例如,客户端应用程序需要指定什么作为其发送帖子的位置? 或者这甚至会起作用吗??
- 如果我们创建新的 APIMS,是否可以简单地将其作为新终结点添加到流量管理器(再次通过其 IP 地址作为外部终结点(,然后删除旧的 APIMS 终结点?
我确实发现这个问题很相似,但该答案使用的是Add-AzureTrafficManagerEndpoint
而不是New-AzTrafficManagerEndpoint
,这是我正在使用的,显然不支持-DomainName
作为参数。
流量管理器不路由流量,它只执行域名解析。你可以使用TM来实现这一点。对于流量管理器中的自定义域(例如 contoso.com(,可以添加指向 contoso.azure-api.net 的 CNAME 记录(最好使用 CNAME 而不是 A,在某些情况下 APIM 服务 IP 可能会更改(。并在 APIM 中添加 SSL 证书以供 contoso.com。在该设置中会发生什么:
- 客户希望向 https://contoso.com/myapi 提出请求
- 客户端将对 contoso.com 执行 DNS 查找,并查看指向 contoso.azure-api.net 的 CNAME 记录
- 客户端将对 contoso.azure-api.net 执行 DNS 查找并查看 APIM IP 地址
- 客户端将尝试打开与 APIM 的 SSL 连接
- 具有可用 SSL 证书的 APIM 将接受连接
- 客户端将发送请求。
所有这些都不需要客户端进行任何特殊配置,只需将其设置为使用"contoso.com"作为API的主机名即可。稍后,如果您想切换到不同的APIM服务,您可以更新TM。客户端不需要任何更改。
要知道的一件事是,此特定设置本身不需要TM。由于您真正需要的只是来自任何 DNS 提供商的自定义域,因为将流量从一个 APIM 切换到另一个 APIM 所需要做的就是更新 CNAME 记录。