什么是Azure站点恢复保管库的结构名称和保护容器名称

时间:2016-12-09 22:52:29

标签: rest azure disaster-recovery

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

  1. 复制结构名称
  2. 复制保护容器名称
  3. 你知道这些是什么吗?我在哪里可以找到它们?这些描述并不十分清楚。

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

2 个答案:

答案 0 :(得分:1)

这让我疯狂了一段时间。使用 -Debug 标志运行一些Azure powershell命令行开关,可以让我对一些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}

所以,如果你有一个名为" my-awesome-vm"在资源组" acme-rg"中,保护容器名称为:

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

答案 1 :(得分:0)

好吧,我没有要测试的Azure备份库,但有很多方法可以通过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