你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 Azure 事件网格系统主题重定位到另一个区域
本文介绍将 Azure 事件网格系统主题重定位到另一个区域的建议方法、指南和做法。
出于多种原因,你可能希望将现有 Azure 资源从一个区域移到另一个区域。 你可以采取以下建议:
- 利用新的 Azure 区域。
- 部署仅在特定区域可用的功能和服务。
- 满足内部策略和治理要求。
- 与公司合并和收购保持一致
- 满足容量计划要求。
下面是本文介绍的概要步骤:
- 将包含 Azure 存储帐户及其关联的系统主题的资源组导出到资源管理器模板。 你还可以仅导出系统主题的模板。 如果走此路线,请记得在移动系统主题之前将 Azure 事件源(在此示例中为 Azure 存储帐户)移动到另一个区域。 然后,在系统主题的已导出模板中,更新目标区域中的存储帐户的外部 ID。
- 修改模板来添加
endpointUrl
属性,使之指向订阅系统主题的 Webhook。 导出系统主题时,其订阅(在本例中为 Webhook)也将导出到模板,但endpointUrl
属性不包括在内。 因此,你需要将其更新为指向订阅该主题的终结点。 另外,还要更新location
属性的值,使之指向新位置或区域。 对于其他类型的事件处理程序,你只需更新位置。 - 使用模板将资源部署到目标区域。 你需要指定要在目标区域中创建的存储帐户和系统主题的名称。
- 验证部署。 验证将文件上传到目标区域中的 blob 存储时是否调用 Webhook。
- 若要完成移动,请从源区域中删除资源(事件源和系统主题)。
先决条件
- 完成快速入门:利用 Azure 门户将 Blob 存储事件路由到 Web 终结点(在源区域中)。 此步骤是可选的。 可以执行此步骤来测试本文中的步骤。 在与应用服务和应用服务计划不同的资源组中保留存储帐户。
- 请确保在目标区域中可以使用事件网格服务。 参阅各区域的产品可用性。
准备
若要开始,请为包含系统事件源(Azure 存储帐户)及其关联的系统主题的资源组导出资源管理器模板。
登录到 Azure 门户。
在左侧菜单中选择“资源组”。 然后,选择为其创建了系统主题的事件源所在的资源组。 在以下示例中,它是 Azure 存储帐户。 资源组包含存储帐户及其关联的系统主题。
在左侧菜单中的“设置”下选择“导出模板”,然后在工具栏上选择“下载” 。
找到从门户下载的 .zip 文件,并将该文件解压缩到所选的文件夹。 此 zip 文件包含模板和参数 JSON 文件。
在所选编辑器中打开 template.json。
Webhook 的 URL 未导出到模板。 因此,请执行以下步骤:
在模板文件中,搜索“WebHook”。
在“属性”部分的最后一行的末尾添加一个逗号 (
,
) 字符。 在此示例中,它是"preferredBatchSizeInKilobytes": 64
。添加
endpointUrl
属性并将值设置为你的 Webhook URL,如以下示例所示。"destination": { "properties": { "maxEventsPerBatch": 1, "preferredBatchSizeInKilobytes": 64, "endpointUrl": "https://mysite.azurewebsites.net/api/updates" }, "endpointType": "WebHook" }
注意
对于其他类型的事件处理程序,所有属性都会导出到模板。 你只需将
location
属性更新为目标区域,如下一步所示。
将存储帐户资源的
location
更新为目标区域或位置。 若要获取位置代码,请参阅 Azure 位置。 区域的代码是不带空格的区域名称,例如West US
等同于westus
。"type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "name": "[parameters('storageAccounts_spegridstorage080420_name')]", "location": "westus",
重复此步骤以更新模板中系统主题资源的
location
。"type": "Microsoft.EventGrid/systemTopics", "apiVersion": "2020-04-01-preview", "name": "[parameters('systemTopics_spegridsystopic080420_name')]", "location": "westus",
保存该模板。
重新部署
部署模板,在目标区域中为存储帐户创建一个存储帐户和系统主题。
- 在 Azure 门户中,选择“创建资源”。
- 在“搜索市场”中键入“模板部署”,然后按 ENTER。
- 选择“模板部署”。
- 选择“创建” 。
- 选择“在编辑器中生成自己的模板”。
- 选择“加载文件”,然后按说明加载在上一部分下载的 template.json 文件。
- 选择“保存”以保存该模板。
- 在“自定义部署”页上执行以下步骤。
选择 Azure 订阅。
选择目标区域中现有的资源组,或者创建一个资源组。
对于“区域”,请选择目标区域。 如果选择了现有资源组,则此设置为只读。
对于“系统主题名称”,请输入将与存储帐户关联的系统主题的名称。
对于“存储帐户名称”,请输入要在目标区域中创建的存储帐户的名称。
在页面底部选择“查看 + 创建”。
在“查看 + 创建”页上查看设置,然后选择“创建” 。
验证
- 部署成功后,选择“转到资源组”。
- 在“资源组”页面上,验证是否已创建事件源(在本例中为 Azure 存储帐户)和系统主题。
- 将文件上传到 Azure Blob 存储中的容器,并验证 Webhook 是否已收到该事件。 有关详细信息,请参阅将事件发送到终结点。
丢弃或清理
若要完成移动,请在源区域中删除包含存储帐户及其关联的系统主题的资源组。
如果需要重新开始,请在目标区域中删除源源组,然后重复本文的准备和重新创建部分中的步骤。
若要使用 Azure 门户删除资源组(源或目标),请执行以下操作:
在 Azure 门户顶部的搜索窗口中,键入“资源组”,然后从搜索结果中选择“资源组” 。
选择要删除的资源组,然后从工具栏中选择“删除”。
在确认页上,输入资源组的名称,然后选择“删除”。