[英]PowerShell (or REST API) to get the status of all Protected Items in an ARM based Azure Site Recovery Vault
[英]What is Fabric Name and Protection Container Name for an Azure Site Recovery Vault
在位於以下位置的用於Azure Site Recovery Services的REST API中: 獲取Azure Site Recovery中受復制保護的項目的列表 ,我找不到兩個有關ASR庫的信息。 這些是GET請求URL的一部分。 該文檔僅重復該名稱,沒有提及如何獲取此信息。 這兩項是:
您知道這些是什么,我在哪里可以找到它們? 這些的描述不是很清楚。
我也下載並檢查了“ Vault設置”文件,但沒有成功。任何指針都將對您有所幫助。
這使我發瘋了一段時間。 使用-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
好吧,我沒有要測試的Azure備份保管庫,但是有多種方法可以使用REST API來發現這一點。
獲取結構: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}
: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}
resourceGroups https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}
replicationFabrics https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}
api-version https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics?api-version={api-version}
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請求。
或這里是一個快速的Powershell腳本,用於查詢REST API( 但您需要安裝.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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.