【问题标题】:What is Fabric Name and Protection Container Name for an Azure Site Recovery Vault什么是 Azure Site Recovery Vault 的结构名称和保护容器名称
【发布时间】:2017-04-25 12:05:18
【问题描述】:

在位于此处的 Azure 站点恢复服务的 REST API:Get a list of replication protected items in Azure Site Recovery 中,有两条关于 ASR 保管库的信息我无法找到。这些是 GET 请求 URL 的一部分。该文档只是重复了名称,并没有提及如何获取此信息。这两项是:

  1. 复制结构名称
  2. 复制保护容器名称

你知道这些是什么吗?我在哪里可以找到这些?这些描述不是很清楚。

我也下载并检查了 Vault 设置文件,但没有成功。任何指针都会有所帮助。

【问题讨论】:

    标签: rest azure disaster-recovery


    【解决方案1】:

    这让我发疯了一段时间。运行一些带有 -Debug 标志的 Azure powershell commandlet 让我可以对一些 API 调用进行逆向工程。

    注意,以下适用于“AzureIaasVM”的备份管理类型。这尚未使用 SQL Server 等其他资源进行测试。

    据我所知(使用 API 版本“2016-06-01”),Azure 上的默认结构名称只是“Azure”。

    您可以在此端点获取可用的容器:

    https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.RecoveryServices/vaults/{vault_name}/backupProtectionContainers
    

    看起来可以为每个资源创建一个保护容器,名称如下:

    IaasVMContainer;iaasvmcontainerv2;{resource_group_name};{resource_name}
    

    因此,如果您在资源组“acme-rg”中有一个名为“my-awesome-vm”的 VM,则保护容器名称为:

    IaasVMContainer;iaasvmcontainerv2;acme-rg;my-awesome-vm
    

    它的完整 ID 是:

    /subscriptions/{subscription_id}resourceGroups/acme-rg/providers/Microsoft.RecoveryServices/vaults/{vault_name}/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;acme-rg;my-awesome-vm
    

    【讨论】:

      【解决方案2】:

      嗯,我没有要测试的 Azure Backup Vault,但有一些方法可以使用 REST API 找到它。

      获取面料:https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}
      https://msdn.microsoft.com/en-us/library/azure/mt750478.aspx

      获取容器:
      https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{?api-version={api-version}
      https://msdn.microsoft.com/en-us/library/azure/mt736896.aspx

      支持的 API 版本:'2016-08-10, 2016-06-01、2016-05-01、2015-12-15、2015-12-10、2015-11-10、2015-06-10、2015-08-10、2015-08-15、2015- 03-15'

      还有一个ARMClient 可以帮助处理 REST 请求。

      或者这里有一个查询 REST API 的快速 Powershell 脚本(但您需要安装 .NET Azure SDK 才能工作):

      function GetAuthToken
      {
          param
          (
                  [Parameter(Mandatory=$true)]
                  $ApiEndpointUri,
      
                  [Parameter(Mandatory=$true)]
                  $AADTenant
          )
          $adal = "${env:ProgramFiles(x86)}\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Services\" + `
                      "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
          $adalforms = "${env:ProgramFiles(x86)}\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Services\" + `
                          "Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll"
      
          [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null
          [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null
      
          $clientId = "1950a258-227b-4e31-a9cf-717495945fc2"
          $redirectUri = "urn:ietf:wg:oauth:2.0:oob"
          $authorityUri = “https://login.windows.net/$aadTenant”
      
          $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authorityUri
      
          $authResult = $authContext.AcquireToken($ApiEndpointUri, $clientId,$redirectUri, "Auto")
      
          return $authResult
      }
      
      $ApiEndpointUri = "https://management.azure.com/"
      $AADTenant = 'Azure AD Tenant GUID'
      $token = GetAuthToken -ApiEndPointUri $ApiEndpointUri -AADTenant $AADTenant
      $header = @{
          'Content-Type'='application\json'
          'Authorization'=$token.CreateAuthorizationHeader()
      }
      
      $request = `https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}`
      (Invoke-RestMethod -Uri $request -Headers $header -Method Get).value
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-21
        • 1970-01-01
        • 2017-04-23
        • 1970-01-01
        • 2020-08-13
        • 2015-03-09
        • 2011-04-02
        相关资源
        最近更新 更多