Przenoszenie zasobów Azure do nowej grupy zasobów lub subskrypcji
W tym artykule wyjaśniono, jak przenieść zasoby platformy Azure między grupami zasobów w ramach tej samej subskrypcji lub w różnych subskrypcjach. Jeśli przeniesienie obejmuje różne subskrypcje, obie subskrypcje muszą być częścią tej samej dzierżawy identyfikatora Entra firmy Microsoft. Aby przenieść zasoby, możesz użyć narzędzi takich jak witryna Azure Portal, program Azure PowerShell, interfejs wiersza polecenia platformy Azure, interfejs API REST lub język Python .
Podczas operacji przenoszenia zarówno źródłowe, jak i docelowe grupy zasobów są zablokowane. Nie można tworzyć, usuwać ani aktualizować zasobów w tych grupach zasobów, gdy przenoszenie jest w toku. Jednak istniejące zasoby pozostają w pełni operacyjne. Jeśli na przykład przeniesiesz maszynę wirtualną z jednej grupy zasobów do innej, nie możesz jej usunąć ani zmodyfikować jej właściwości (takich jak jego rozmiar) podczas przenoszenia. Pomimo tego ograniczenia maszyna wirtualna nadal działa normalnie, a usługi zależne od niej nie występują przestoje. Blokada może trwać do czterech godzin. Większość ruchów jest wykonywanych szybciej, a blokada jest odpowiednio usuwana.
W żądaniu przeniesienia należy określić tylko zasoby najwyższego poziomu (nadrzędnego). Zasoby podrzędne są przenoszone automatycznie z elementem nadrzędnym, ale nie można ich przenosić niezależnie. Można na przykład przenieść zasób nadrzędny, taki jak Microsoft.Compute/virtualMachines
, i jego zasób podrzędny, taki jak Microsoft.Compute/virtualMachines/extensions
przenoszenie. Nie można jednak samodzielnie przenieść zasobu podrzędnego.
Podczas przenoszenia zasobu zachowuje swoje zależności z zasobami podrzędnymi, zależności z innymi zasobami mogą zostać przerwane i może być konieczne ponowne skonfigurowanie. Przeniesienie zasobu zmienia tylko skojarzona grupę zasobów i nie zmienia fizycznego regionu zasobu.
Uwaga
Nie można przenieść zasobów platformy Azure, jeśli istnieje blokada tylko do odczytu w źródłowej, docelowej grupie zasobów lub subskrypcji.
Zmieniony identyfikator zasobu
Podczas przenoszenia zasobu zmienia się jego identyfikator zasobu. Standardowy format identyfikatora zasobu to /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
. Po przeniesieniu zasobu do nowej grupy zasobów lub subskrypcji należy zmienić co najmniej jedną wartość w tej ścieżce.
Jeśli używasz identyfikatora zasobu w dowolnym miejscu, zmień wartość. Jeśli na przykład masz niestandardowy pulpit nawigacyjny w portalu, który odwołuje się do identyfikatora zasobu, zaktualizuj wartość. Poszukaj skryptów lub szablonów, które należy zaktualizować pod kątem nowego identyfikatora zasobu.
Lista kontrolna przed przenoszeniem zasobów
Niektóre ważne kroki poprzedzają przeniesienie zasobu. Jeśli sprawdzisz te warunki, możesz uniknąć błędów.
Subskrypcje źródłowa i docelowa muszą być aktywne. Jeśli masz problemy z włączeniem wyłączonego konta, utwórz żądanie pomoc techniczna platformy Azure. Jako typ problemu wybierz Zarządzanie subskrypcją.
Subskrypcje źródłowe i docelowe muszą istnieć w tej samej dzierżawie usługi Microsoft Entra. Użyj interfejsu wiersza polecenia platformy Azure lub programu PowerShell, aby sprawdzić, czy obie subskrypcje mają ten sam identyfikator dzierżawy.
az account show --subscription <your-source-subscription> --query tenantId az account show --subscription <your-destination-subscription> --query tenantId
Jeśli identyfikatory dzierżawy dla subskrypcji źródłowych i docelowych nie są zgodne, użyj następujących metod, aby je uzgodnić:
Aby przenieść zasoby do lub z partnera Dostawca rozwiązań w chmurze (CSP), zobacz Przenoszenie subskrypcji platformy Azure między subskrybentami i dostawcami CSP.
Zasoby, które chcesz przenieść, muszą obsługiwać operację przenoszenia. Aby uzyskać listę zasobów, które obsługują operacje przenoszenia, zobacz Typy zasobów platformy Azure na potrzeby operacji przenoszenia.
Niektóre usługi mają określone ograniczenia lub wymagania dotyczące przenoszenia zasobów. Przed przeniesieniem zasobów w ramach tych usług zapoznaj się z poniższymi wskazówkami dotyczącymi przenoszenia:
- Jeśli używasz usługi Azure Stack Hub, nie możesz przenosić zasobów między grupami.
- Azure App Services
- Azure DevOps Services
- Klasyczny model wdrażania dla klasycznych usług obliczeniowych, magazynu, sieci wirtualnych i usług w chmurze
- Cloud Services (rozszerzona pomoc techniczna)
- Sieć
- Azure Recovery Services
- Maszyny wirtualne
- Aby przenieść subskrypcję platformy Azure do nowej grupy zarządzania, zobacz Przenoszenie subskrypcji.
Subskrypcja docelowa musi być zarejestrowana dla dostawcy zasobów przenoszonego zasobu. Jeśli tak nie jest, zostanie wyświetlony komunikat o błędzie informujący, że subskrypcja nie jest zarejestrowana dla typu zasobu. Ten błąd może wystąpić podczas przenoszenia zasobu do nowej subskrypcji, ale wcześniej nie użyto typu zasobu w subskrypcji.
Aby uzyskać stan rejestracji:
az account set -s <destination-subscription-name-or-id> az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
Aby zarejestrować dostawcę zasobów:
az provider register --namespace Microsoft.Batch
Przed rozpoczęciem operacji przenoszenia sprawdź limit przydziału subskrypcji dla subskrypcji, do której przenosisz zasoby. Sprawdź, czy możesz zażądać zwiększenia limitu przydziału, co spowodowałoby przekroczenie limitu subskrypcji docelowej. Aby uzyskać szczegółowe wskazówki dotyczące limitów i sposobu żądania zwiększenia, zobacz Limity subskrypcji i usług platformy Azure, limity przydziału i ograniczenia.
Konto przenoszące zasoby musi mieć co najmniej następujące uprawnienia:
- W źródłowej grupie zasobów: Microsoft.Resources/subscriptions/resourceGroups/moveResources/action
- W docelowej grupie zasobów: Microsoft.Resources/subscriptions/resourceGroups/write
Jeśli przeniesiesz zasób z aktywnym przypisaniem roli platformy Azure (lub jej zasobem podrzędnym z tym samym przypisaniem), przypisanie roli nie zostanie przeniesione i zostanie oddzielone. Należy ponownie utworzyć przypisanie roli po przeniesieniu. Mimo że system automatycznie usuwa oddzielone przypisanie roli, zalecamy usunięcie go przed przeniesieniem.
Aby dowiedzieć się więcej na temat zarządzania przypisaniami ról, zobacz Wyświetlanie listy przypisań ról platformy Azure i Przypisywanie ról platformy Azure.
W przypadku przenoszenia między subskrypcjami zasób i jego zasoby zależne muszą znajdować się w tej samej grupie zasobów i muszą być przenoszone jednocześnie. Na przykład maszyna wirtualna z dyskami zarządzanymi wymaga przeniesienia maszyny wirtualnej, dysków zarządzanych i innych zasobów zależnych.
Jeśli przenosisz zasób do nowej subskrypcji, sprawdź, czy zasób ma jakiekolwiek zasoby zależne i czy znajdują się w tej samej grupie zasobów. Jeśli zasoby nie są w tej samej grupie zasobów, sprawdź, czy można je połączyć w tę samą grupę zasobów. Jeśli możesz, użyj jednej operacji przenoszenia między grupami zasobów, aby skonsolidować wszystkie zasoby w tej samej grupie zasobów.
Aby uzyskać więcej informacji, zobacz Scenariusz przenoszenia między subskrypcjami.
Scenariusz przenoszenia między subskrypcjami
Przenoszenie zasobów z jednej subskrypcji do innej jest procesem trzyetapowym. Aby zilustrować te kroki, na poniższym diagramie przedstawiono tylko jeden zasób zależny:
- Krok 1: Jeśli zasoby zależne są rozproszone w różnych grupach zasobów, najpierw przenieś je do jednej grupy.
- Krok 2: Przenieś jednocześnie zasób i zasoby zależne z subskrypcji źródłowej do subskrypcji docelowej.
- Krok 3: Opcjonalnie przenieś ponownie zasoby zależne do różnych grup zasobów w ramach subskrypcji docelowej.
Przenoszenie zasobów
Korzystanie z witryny Azure Portal
Aby przenieść zasoby, wybierz grupę zasobów zawierającą te zasoby.
Wybierz zasoby, które chcesz przenieść. Aby przenieść wszystkie zasoby, zaznacz pole wyboru w górnej części listy. Możesz też wybrać zasoby pojedynczo.
Wybierz przycisk Przenieś.
Ten przycisk udostępnia trzy opcje:
- Przenoszenie do nowej grupy zasobów.
- Przenoszenie do nowej subskrypcji.
- Przenoszenie do nowego regionu. Aby zmienić regiony, zobacz Przenoszenie zasobów między regionami (z grupy zasobów) przy użyciu usługi Azure Resource Mover.
Wybierz, czy przenosisz zasoby do nowej grupy zasobów lub subskrypcji.
Źródłowa grupa zasobów ustawia się automatycznie. Określ docelową grupę zasobów. Jeśli przechodzisz do nowej subskrypcji, określ tę opcję. Wybierz Dalej.
Portal sprawdza, czy zasoby można przenieść. Poczekaj na zakończenie walidacji.
Po pomyślnym zakończeniu walidacji wybierz pozycję Dalej.
Potwierdź, że musisz zaktualizować narzędzia i skrypty dla tych zasobów. Aby rozpocząć przenoszenie zasobów, wybierz pozycję Przenieś.
- W witrynie Azure Portal zostanie wyświetlony komunikat o zakończeniu przenoszenia.
Korzystanie z interfejsu wiersza polecenia platformy Azure
Sprawdź poprawność
Aby przetestować scenariusz przenoszenia bez faktycznego az resource invoke-action
przenoszenia zasobów w czasie rzeczywistym, użyj polecenia . Użyj tego polecenia tylko wtedy, gdy musisz modelować wyniki bez wykonywania instrukcji. Aby uruchomić tę operację, potrzebny jest identyfikator zasobu źródłowej grupy zasobów, docelowej grupy zasobów i każdego przenoszonego zasobu.
Użyj \"
polecenia , aby uniknąć podwójnych cudzysłowów w treści żądania.
az resource invoke-action --action validateMoveResources \
--ids "/subscriptions/{subscription-id}/resourceGroups/{source-rg}" \
--request-body "{ \"resources\": [\"/subscriptions/{subscription-id}/resourceGroups/{source-rg}/providers/{resource-provider}/{resource-type}/{resource-name}\", \"/subscriptions/{subscription-id}/resourceGroups/{source-rg}/providers/{resource-provider}/{resource-type}/{resource-name}\", \"/subscriptions/{subscription-id}/resourceGroups/{source-rg}/providers/{resource-provider}/{resource-type}/{resource-name}\"],\"targetResourceGroup\":\"/subscriptions/{subscription-id}/resourceGroups/{destination-rg}\" }"
Jeśli walidacja zakończy się pomyślnie, zobaczysz:
{} Finished ..
Jeśli walidacja nie powiedzie się, zostanie wyświetlony komunikat o błędzie, który wyjaśnia, dlaczego nie można przenieść zasobów.
Przesuń
Aby przenieść istniejące zasoby do innej grupy zasobów lub subskrypcji, użyj az resource move
polecenia . W parametrze --ids
podaj rozdzielaną spacjami listę identyfikatorów zasobów do przeniesienia.
Poniższe polecenia pokazują, jak przenieść kilka zasobów do nowej grupy zasobów. Pracują z interfejsem wiersza polecenia platformy Azure w terminalu powłoki Bash lub w konsoli programu Azure PowerShell. Aby przenieść zasoby do nowej subskrypcji, podaj --destination-subscription-id
parametr .
webapp=$(az resource show -g OldRG -n ExampleSite --resource-type "Microsoft.Web/sites" --query id --output tsv)
plan=$(az resource show -g OldRG -n ExamplePlan --resource-type "Microsoft.Web/serverfarms" --query id --output tsv)
az resource move --destination-group newgroup --ids $webapp $plan
Korzystanie z programu Azure PowerShell
Sprawdź poprawność
Aby przetestować scenariusz przenoszenia bez faktycznego Invoke-AzResourceAction
przenoszenia zasobów w czasie rzeczywistym, użyj polecenia w programie Azure PowerShell. Użyj tego polecenia tylko wtedy, gdy musisz modelować wyniki bez wykonywania instrukcji.
$sourceName = "sourceRG"
$destinationName = "destinationRG"
$resourcesToMove = @("app1", "app2")
$sourceResourceGroup = Get-AzResourceGroup -Name $sourceName
$destinationResourceGroup = Get-AzResourceGroup -Name $destinationName
$resources = Get-AzResource -ResourceGroupName $sourceName | Where-Object { $_.Name -in $resourcesToMove }
Invoke-AzResourceAction -Action validateMoveResources `
-ResourceId $sourceResourceGroup.ResourceId `
-Parameters @{
resources = $resources.ResourceId; # Wrap in an @() array if providing a single resource ID string.
targetResourceGroup = $destinationResourceGroup.ResourceId
}
Dane wyjściowe nie są wyświetlane, jeśli walidacja zakończy się pomyślnie. Jeśli jednak walidacja nie powiedzie się, komunikat o błędzie wyjaśnia, dlaczego nie można przenieść zasobów.
Przesuń
Aby przenieść istniejące zasoby do innej grupy zasobów lub subskrypcji, użyj polecenia Move-AzResource . W poniższym przykładzie pokazano, jak przenieść kilka zasobów do nowej grupy zasobów.
$sourceName = "sourceRG"
$destinationName = "destinationRG"
$resourcesToMove = @("app1", "app2")
$resources = Get-AzResource -ResourceGroupName $sourceName | Where-Object { $_.Name -in $resourcesToMove }
Move-AzResource -DestinationResourceGroupName $destinationName -ResourceId $resources.ResourceId
Aby przejść do nowej subskrypcji, dołącz wartość parametru DestinationSubscriptionId
.
Korzystanie z języka Python
Sprawdź poprawność
Aby przetestować scenariusz przenoszenia bez faktycznego ResourceManagementClient.resources.begin_validate_move_resources
przenoszenia zasobów w czasie rzeczywistym, użyj metody . Użyj tej metody tylko wtedy, gdy musisz modelować wyniki bez wykonywania instrukcji.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
source_name = "sourceRG"
destination_name = "destinationRG"
resources_to_move = ["app1", "app2"]
destination_resource_group = resource_client.resource_groups.get(destination_name)
resources = [
resource for resource in resource_client.resources.list_by_resource_group(source_name)
if resource.name in resources_to_move
]
resource_ids = [resource.id for resource in resources]
validate_move_resources_result = resource_client.resources.begin_validate_move_resources(
source_name,
{
"resources": resource_ids,
"target_resource_group": destination_resource_group.id
}
).result()
print("Validate move resources result: {}".format(validate_move_resources_result))
Dane wyjściowe nie są wyświetlane, jeśli walidacja zakończy się pomyślnie. Jeśli jednak walidacja nie powiedzie się, komunikat o błędzie wyjaśnia, dlaczego nie można przenieść zasobów.
Przesuń
Aby przenieść istniejące zasoby do innej grupy zasobów lub subskrypcji, użyj ResourceManagementClient.resources.begin_move_resources
metody w języku Python. W poniższym przykładzie pokazano, jak przenieść kilka zasobów do nowej grupy zasobów.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
source_name = "sourceRG"
destination_name = "destinationRG"
resources_to_move = ["app1", "app2"]
destination_resource_group = resource_client.resource_groups.get(destination_name)
resources = [
resource for resource in resource_client.resources.list_by_resource_group(source_name)
if resource.name in resources_to_move
]
resource_ids = [resource.id for resource in resources]
resource_client.resources.begin_move_resources(
source_name,
{
"resources": resource_ids,
"target_resource_group": destination_resource_group.id
}
)
Korzystanie z interfejsu API REST
Sprawdź poprawność
validate move operation
Operacja testuje scenariusz przenoszenia bez faktycznego przenoszenia zasobów. Użyj tej operacji, aby sprawdzić, czy przenoszenie może zakończyć się powodzeniem. Walidacja jest wywoływana automatycznie podczas wysyłania żądania przeniesienia. Tej operacji należy używać tylko wtedy, gdy trzeba modelować wyniki bez wykonywania kroków. Aby uruchomić tę operację, potrzebne są następujące elementy:
- Nazwa źródłowej grupy zasobów
- Identyfikator zasobu docelowej grupy zasobów
- Identyfikator zasobu każdego zasobu do przeniesienia
- Token dostępu dla konta
Wyślij następujące żądanie:
POST https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<source-group>/validateMoveResources?api-version=2019-05-10
Authorization: Bearer <access-token>
Content-type: application/json
Z treścią żądania:
{
"resources": ["<resource-id-1>", "<resource-id-2>"],
"targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}
Jeśli żądanie jest poprawnie sformatowane, operacja zwraca następujące elementy:
Response Code: 202
cache-control: no-cache
pragma: no-cache
expires: -1
location: https://management.azure.com/subscriptions/<subscription-id>/operationresults/<operation-id>?api-version=2018-02-01
retry-after: 15
...
Kod stanu 202 wskazuje, że żądanie weryfikacji zostało zaakceptowane, ale nie zostało jeszcze określone, czy operacja przenoszenia zakończy się pomyślnie. Wartość location
zawiera adres URL używany do sprawdzania stanu długotrwałej operacji.
Aby sprawdzić stan, wyślij następujące żądanie:
GET <location-url>
Authorization: Bearer <access-token>
Podczas wykonywania operacji nadal otrzymujesz kod stanu 202 . Przed ponowną próbą retry-after
zaczekaj liczbę sekund wskazanych w wartości. Jeśli weryfikacja przeniesienia zakończy się pomyślnie, otrzymasz kod stanu 204 . Jeśli walidacja przenoszenia zakończy się niepowodzeniem, zostanie wyświetlony komunikat o błędzie podobny do następującego:
{"error":{"code":"ResourceMoveProviderValidationFailed","message":"<message>"...}}
Przesuń
Aby przenieść istniejące zasoby do innej grupy zasobów lub subskrypcji, użyj Move resources
operacji .
POST https://management.azure.com/subscriptions/{source-subscription-id}/resourcegroups/{source-resource-group-name}/moveResources?api-version={api-version}
Określ docelową grupę zasobów i zasoby, które mają być przenoszone w treści żądania.
{
"resources": ["<resource-id-1>", "<resource-id-2>"],
"targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}
Często zadawane pytania
Moja operacja przenoszenia zasobów, która zwykle trwa kilka minut, trwa prawie godzinę. Czy coś jest nie tak?
Przenoszenie zasobu to złożona operacja z różnymi fazami. Może to obejmować nie tylko dostawcę zasobów zasobu, który próbujesz przenieść. Usługa Azure Resource Manager umożliwia zakończenie operacji przenoszenia przez cztery godziny z powodu zależności między dostawcami zasobów. Ten czas trwania daje im czas na odzyskanie sprawności po przejściowych problemach. Jeśli żądanie przeniesienia mieści się w ciągu czterech godzin, operacja nadal próbuje zakończyć działanie i może zakończyć się pomyślnie. Operacja blokuje źródłowe i docelowe grupy zasobów w tym czasie, aby uniknąć problemów ze spójnością.
Dlaczego moja grupa zasobów jest zablokowana przez cztery godziny podczas przenoszenia zasobów?
Operacje przenoszenia mogą być wykonywane przez cztery godziny. Operacja blokuje źródłowe i docelowe grupy zasobów w tym czasie, aby zapobiec ich modyfikacji.
Realizacja żądania przeniesienia obejmuje dwie fazy. Zasoby są przenoszone w pierwszej fazie, a dostawcy zasobów, którzy zależą od przenoszonych zasobów, są powiadamiani w drugiej fazie. Grupę zasobów można zablokować przez wszystkie cztery godziny, gdy dostawca zasobów ulegnie awarii w obu fazach. Usługa Resource Manager inicjuje wszelkie nieudane kroki w okresie operacji przenoszenia.
Usługa Resource Manager odblokuje obie grupy zasobów, jeśli zasób nie zostanie przeniesiony w ciągu czterech godzin. Zasoby, które zostały pomyślnie przeniesione, znajdują się w docelowej grupie zasobów. Zasoby, które nie mogą zostać przeniesione, pozostają w źródłowej grupie zasobów.
Jakie są konsekwencje blokowania źródłowych i docelowych grup zasobów podczas przenoszenia zasobu?
Blokada uniemożliwia usunięcie żadnej grupy zasobów. Blokada uniemożliwia również utworzenie nowego zasobu, usunięcie zasobu lub zaktualizowanie właściwości zasobu w każdej grupie zasobów (na przykład zmiana rozmiaru maszyny wirtualnej).
Na poniższej ilustracji przedstawiono komunikat o błędzie z witryny Azure Portal podczas próby usunięcia grupy zasobów będącej częścią trwającego przenoszenia:
Na powyższym obrazie zasób maszyny wirtualnej należy do grupy zasobów ("TestB"), która jest obecnie poddawana operacji przenoszenia. Podczas próby zaktualizowania właściwości maszyny wirtualnej (na przykład jej rozmiaru) witryna Azure Portal zwraca komunikat o błędzie. Ten błąd występuje, ponieważ grupa zasobów jest zablokowana podczas przenoszenia, co chroni jej zasoby przed modyfikacją.
Ponadto źródłowe i docelowe grupy zasobów nie mogą uczestniczyć w innych operacjach przenoszenia jednocześnie podczas przenoszenia zasobów. Jeśli na przykład przenosisz zasoby z grupy zasobów A do grupy zasobów B, zarówno grupa zasobów A, jak i grupa zasobów B nie mogą być w tym samym czasie zaangażowane w inną operację przenoszenia. Nie można jednocześnie przenosić zasobów do lub z grupy zasobów C. To ograniczenie uniemożliwia zablokowanie grup zasobów przez wiele operacji powodujących konflikt podczas procesu przenoszenia.
Co oznacza kod błędu „MissingMoveDependentResources”?
Po przeniesieniu zasobu jego zasoby zależne muszą istnieć w docelowej grupie zasobów lub subskrypcji albo zostać uwzględnione w żądaniu przeniesienia. Zostanie wyświetlony kod błędu MissingMoveDependentResources , gdy zasób zależny nie spełnia tego wymagania. Komunikat o błędzie zawiera szczegółowe informacje o zasobie zależnym, który należy uwzględnić w żądaniu przeniesienia.
Na przykład przeniesienie maszyny wirtualnej może wymagać przeniesienia siedmiu typów zasobów z trzema różnymi dostawcami zasobów. Ci dostawcy zasobów i typy to:
Microsoft.Compute
- virtualMachines
- disks
Microsoft.Network
- networkInterfaces
- publicIPAddresses
- networkSecurityGroups
- virtualNetworks
Microsoft.Storage
- storageAccounts
Innym typowym przykładem jest przeniesienie sieci wirtualnej, w której może być konieczne przeniesienie kilku innych zasobów skojarzonych z tą siecią wirtualną. Żądanie przeniesienia może wymagać przeniesienia publicznych adresów IP, tabel tras, bram sieci wirtualnej, sieciowych grup zabezpieczeń i innych zasobów. Brama sieci wirtualnej powinna znajdować się w tej samej grupie zasobów co jej sieć wirtualna, ponieważ nie może przenosić się oddzielnie.
Co oznacza kod błędu „RequestDisallowedByPolicy”?
Usługa Resource Manager weryfikuje żądanie przeniesienia przed podjęciem próby przeniesienia. Ta walidacja obejmuje sprawdzanie zasad zdefiniowanych dla zasobów zaangażowanych w przenoszenie. Na przykład walidacja kończy się niepowodzeniem podczas próby przeniesienia magazynu kluczy, ale organizacja ma zasady odmowy tworzenia magazynu kluczy w docelowej grupie zasobów. Zwrócony kod błędu to RequestDisallowedByPolicy.
Aby uzyskać więcej informacji na temat zasad, zobacz Co to jest usługa Azure Policy?.
Dlaczego nie mogę przenieść niektórych zasobów na platformie Azure?
Nie wszystkie zasoby platformy Azure zezwalają na operacje przenoszenia.
Ile zasobów mogę przenieść w jednej operacji?
W miarę możliwości oddzielaj duże ruchy do różnych operacji przenoszenia. Usługa Resource Manager natychmiast zwraca błąd, gdy jedna operacja obejmuje więcej niż 800 zasobów. Jednak przeniesienie mniej niż 800 zasobów może również zakończyć się niepowodzeniem przez limit czasu.
Jakie jest znaczenie błędu, którego zasób nie znajduje się w stanie "powodzenie"?
Gdy zostanie wyświetlony komunikat o błędzie informujący, że nie można przenieść zasobu, ponieważ nie jest w stanie Powodzenie , może to być spowodowane tym, że zasób zależny blokuje przeniesienie. Zazwyczaj kod błędu jest następujący: MoveCannotProceedWithResourcesNotInSucceededState.
Jeśli źródłowa lub docelowa grupa zasobów zawiera sieć wirtualną, stany wszystkich zasobów, które zależą od tej sieci wirtualnej, są sprawdzane podczas przenoszenia. Ta kontrola obejmuje zasoby, które bezpośrednio i pośrednio zależą od sieci. Przeniesienie jest blokowane, jeśli jakiekolwiek zasoby nie są w stanie powodzenia. Jeśli na przykład maszyna wirtualna używająca sieci wirtualnej, która nie zgłasza stanu powodzenia, przeniesienie zostanie zablokowane. Przenoszenie jest blokowane nawet wtedy, gdy maszyna wirtualna nie jest jedną z przenoszonych zasobów. Przeniesienie jest również blokowane nawet wtedy, gdy maszyna wirtualna nie znajduje się w źródłowej lub docelowej grupie zasobów.
Aby rozwiązać ten problem, przenieś zasoby do grupy zasobów, która nie ma sieci wirtualnej lub skontaktuj się z pomocą techniczną.
Czy mogę przenieść grupę zasobów do innej subskrypcji?
Nie, nie można przenieść grupy zasobów do nowej subskrypcji. Można jednak przenieść wszystkie zasoby w grupie zasobów do grupy zasobów w innej subskrypcji. Ustawienia, takie jak tagi, przypisania ról i zasady, nie są przenoszone automatycznie z oryginalnej grupy zasobów do docelowej grupy zasobów. Te ustawienia należy zastosować ręcznie do nowej grupy zasobów.
Następne kroki
Aby sprawdzić, które zasoby platformy Azure obsługują operacje przenoszenia, zobacz Obsługa operacji przenoszenia dla zasobów.