将 Azure Web PubSub 资源移到另一个区域

在多种情况下,你可能希望将现有的 Web PubSub 资源从一个区域移到另一个区域。 Azure Web PubSub 资源是特定于区域的,不能从一个区域移到另一个区域。 不过,你可以使用 Azure 资源管理器模板导出 Azure Web PubSub 资源的现有配置,修改参数以匹配目标区域,然后在另一个区域中创建 Web PubSub 资源的副本。 有关资源管理器和模板的详细信息,请参阅快速入门:使用 Azure 门户创建和部署 Azure 资源管理器模板

先决条件

  • 确保你正在使用的服务和功能在目标区域中受支持。

  • 验证 Azure 订阅是否允许你在使用的目标区域中创建 Web PubSub 资源。 请联系支持部门,启用所需配额。

  • 对于预览功能,请确保你的订阅已列入目标区域的允许列表。

准备并移动

若要开始,请导出然后修改某个资源管理器模板。

通过门户导出模板并进行部署

以下步骤展示了如何使用资源管理器模板来准备 Web PubSub 资源移动操作,并使用门户将其移到目标区域。

  1. 登录到 Azure 门户> 选择“资源组”。

  2. 找到包含源 Web PubSub 的资源组并单击它。

  3. 选择“设置”>“导出模板”。

  4. 在“导出模板”边栏选项卡中选择“部署”。

  5. 单击“模板”>“编辑参数”,在在线编辑器中打开 parameters.json 文件。

  6. 若要编辑 Web PubSub 资源名称的参数,请更改 parameters 下的 value 属性:

          {
            "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
            "contentVersion": "1.0.0.0",
            "parameters": {
              "webpubsub_myWebPubSub_name": {
                "value": "<target-webpubsub-name>"
              }
            }
          }
    
  7. 将编辑器中的值更改为目标 Web PubSub 的所选名称。 请务必将名称括在引号中。

  8. 在编辑器中单击“保存”。

  9. 单击“模板”>“编辑模板”,在在线编辑器中打开 template.json 文件。

  10. 若要编辑目标区域,请在联机编辑器中 resources 下更改 location 属性:

        "resources": [
          {
            "type": "Microsoft.SignalRService/webPubSub",
            "apiVersion": "2021-10-01",
            "name": "[parameters('webpubsub_myWebPubSub_name')]",
            "location": "<target-region>",
            "properties": {
            }
          }
        ]
    
    
  11. 若要获取区域位置代码,请参阅 Azure Web PubSub 位置。 区域的代码是不带空格的区域名称,中国北部 = chinanorth

  12. 也可选择更改模板中的其他参数,这些参数是可选的,具体取决于你的要求。

  13. 在在线编辑器中单击“保存”。

  14. 单击“基本信息”>“订阅”,以选择要将目标资源部署到的订阅。

  15. 单击“基本信息”>“资源组”,以选择要将目标资源部署到的资源组。 可以单击“新建”来为目标资源创建新的资源组。 确保该名称不同于现有资源的源资源组名称。

  16. 确认“基本信息”>“位置”是否设置为要将资源部署到的目标位置。

  17. 单击“查看 + 创建”按钮部署目标 Azure Web PubSub 资源。

使用 Azure PowerShell 导出和部署模板

若要使用 PowerShell 导出模板:

  1. 使用 Connect-AzAccount -Environment AzureChinaCloud 命令登录到 Azure 订阅,并按屏幕说明操作:

    Connect-AzAccount -Environment AzureChinaCloud
    
  2. 如果你的标识已关联到多个订阅,请将你的活动订阅设置为要移动的 Web PubSub 资源的订阅。

    $context = Get-AzSubscription -SubscriptionId <subscription-id>
    Set-AzContext $context
    
  3. 导出源 Web PubSub 资源的模板。 这些命令会将某个 JSON 模板保存到当前目录。

    $resource = Get-AzResource `
       -ResourceGroupName <resource-group-name> `
       -ResourceName <webpubsub-resource-name> `
       -ResourceType Microsoft.SignalRService/WebPubSub
    Export-AzResourceGroup `
       -ResourceGroupName <resource-group-name> `
       -Resource $resource.ResourceId `
       -IncludeParameterDefaultValue
    
  4. 已下载的文件将根据从其导出了资源的资源组来命名。 找到通过名为 <resource-group-name>.json 的命令导出的文件,在所选编辑器中将其打开:

    notepad <source-resource-group-name>.json
    
  5. 若要编辑 Web PubSub 资源名称的参数,请将源 Web PubSub 资源名称的属性 defaultValue 更改为目标 Web PubSub 资源的名称,确保对名称使用引号:

      {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
          "webPubSub_myWebPubSub_name": {
          "defaultValue": "<target-webpubsub-name>",
            "type": "String"
          }
        }
      }
    
  6. 若要编辑要将 Web PubSub 资源移到其中的目标区域,请更改 resources 下的 location 属性:

        "resources": [
          {
            "type": "Microsoft.SignalRService/WebPubSub",
            "apiVersion": "2021-10-01",
            "name": "[parameters('webPubSub_myWebPubSub_name')]",
            "location": "<target-region>",
            "properties": {
            }
          }
        ]
    
  7. 若要获取区域位置代码,请参阅 Azure Web PubSub 位置。 区域的代码是不带空格的区域名称,中国北部 = chinaeast。

  8. 也可选择更改模板中的其他参数,这些参数是可选的,具体取决于你的要求。

  9. 保存 <resource-group-name>.json 文件。

  10. 使用 New-AzResourceGroup 在目标区域创建资源组,以便部署目标 Web PubSub 资源。

    New-AzResourceGroup -Name <target-resource-group-name> -location <target-region>
    
  11. 使用 New-AzResourceGroupDeployment 将编辑的 <resource-group-name>.json 文件部署到在上一步创建的资源组:

    New-AzResourceGroupDeployment -ResourceGroupName <target-resource-group-name> -TemplateFile <source-resource-group-name>.json
    
  12. 若要验证是否已在目标区域创建这些资源,请使用 Get-AzResourceGroupGet-AzWebPubSub

    Get-AzResourceGroup -Name <target-resource-group-name>
    
    Get-AzWebPubSub -Name <target-webpubsub-name> -ResourceGroupName <target-resource-group-name>
    

弃用

部署以后,如果希望重新开始或弃用目标中的 Web PubSub 资源,请删除在目标中创建的资源组,系统就会删除已移动的 Web PubSub 资源。 为此,请从门户上的仪表板中选择该资源组,然后选择概述页顶部的“删除”。 或者,可以使用 Remove-AzResourceGroup

Remove-AzResourceGroup -Name <target-resource-group-name>

清理

若要提交更改并完成 Web PubSub 资源的移动,请删除源 Web PubSub 资源或资源组。 为此,请从门户上的仪表板中选择该 Web PubSub 资源或资源组,然后选择每个页面顶部的“删除”。

后续步骤

在本教程中,你已将一个 Azure Web PubSub 资源从一个区域移到了另一个区域,并清理了源资源。 若要详细了解如何在区域之间移动资源,以及如何在 Azure 中进行灾难恢复,请参阅: