Tworzenie zadań kopiowania kontenerów i zarządzanie nimi w usłudze Azure Cosmos DB (wersja zapoznawcza)
DOTYCZY: Nosql Mongodb Cassandra
Zadania kopiowania kontenerów ułatwiają tworzenie kopii kontenerów w trybie offline na kontach usługi Azure Cosmos DB.
W tym artykule opisano sposób tworzenia, monitorowania i zarządzania zadaniami kopiowania kontenerów przy użyciu poleceń interfejsu wiersza polecenia platformy Azure.
Wymagania wstępne
- Do uruchamiania poleceń kopiowania kontenerów można użyć portalu Cloud Shell . Alternatywnie możesz uruchomić polecenia lokalnie; Upewnij się, że na maszynie został pobrany i zainstalowany interfejs wiersza polecenia platformy Azure.
- Obecnie kopiowanie kontenera jest obsługiwane tylko w tych regionach. Upewnij się, że region zapisu konta należy do tej listy.
- Zainstaluj rozszerzenie usługi Azure Cosmos DB w wersji zapoznawczej zawierające polecenia kopiowania kontenerów.
az extension add --name cosmosdb-preview
Uwaga
Zadanie kopiowania kontenerów na kontach usługi Azure Cosmos DB jest dostępne tylko dla konta interfejsu API NoSQL. Zadanie kopiowania kontenera w ramach konta usługi Azure Cosmos DB jest dostępne dla kont interfejsu API NoSQL, MongoDB i Cassandra.
Tworzenie zadania kopiowania kontenera w celu kopiowania danych na koncie usługi Azure Cosmos DB
Ustawianie zmiennych powłoki
Najpierw ustaw wszystkie zmienne używane przez poszczególne skrypty.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""
Tworzenie zadania kopiowania kontenera
Interfejs API dla konta NoSQL
Utwórz zadanie kopiowania kontenera w ramach interfejsu API usługi Azure Cosmos DB dla konta NoSQL:
az cosmosdb copy create `
--resource-group $destinationRG `
--job-name $jobName `
--dest-account $destinationAccount `
--src-account $sourceAccount `
--dest-nosql database=$destinationDatabase container=$destinationContainer `
--src-nosql database=$sourceDatabase container=$sourceContainer
Interfejs API dla konta Cassandra
Utwórz zadanie kopiowania kontenera w interfejsie API usługi Azure Cosmos DB dla konta Cassandra:
az cosmosdb copy create `
--resource-group $destinationRG `
--job-name $jobName `
--dest-account $destinationAccount `
--src-account $sourceAccount `
--dest-cassandra keyspace=$destinationKeySpace table=$destinationTable `
--src-cassandra keyspace=$sourceKeySpace table=$sourceTable
Interfejs API dla konta bazy danych MongoDB
Utwórz zadanie kopiowania kontenera w ramach interfejsu API usługi Azure Cosmos DB dla konta bazy danych MongoDB:
az cosmosdb copy create `
--resource-group $destinationRG `
--job-name $jobName `
--dest-account $destinationAccount `
--src-account $sourceAccount `
--dest-mongo database=$destinationDatabase collection=$destinationCollection `
--src-mongo database=$sourceDatabase collection=$sourceCollection
Uwaga
--job-name
powinno być unikatowe dla każdego zadania w ramach konta.
Tworzenie zadania kopiowania kontenera w celu kopiowania danych między kontami usługi Azure Cosmos DB
Ustawianie zmiennych powłoki
Najpierw ustaw wszystkie zmienne używane przez poszczególne skrypty.
$sourceSubId = "<source-subscription-id>"
$destinationSubId = "<destination-subscription-id>"
$sourceAccountRG = "<source-resource-group-name>"
$destinationAccountRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""
Przypisywanie uprawnień do odczytu
Podczas kopiowania danych z kontenera jednego konta do kontenera innego konta. Aby umożliwić wykonywanie operacji kopiowania, wymagany jest dostęp do odczytu kontenera źródłowego do tożsamości konta docelowego. Wykonaj poniższe kroki, aby przypisać wymagane uprawnienie do odczytu do konta docelowego.
Korzystanie z tożsamości zarządzanej przez system
- Ustawianie kontekstu subskrypcji docelowej
az account set --subscription $destinationSubId
- Dodawanie tożsamości systemowej na koncie docelowym
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId
- Ustawianie domyślnej tożsamości na koncie docelowym
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
- Ustawianie kontekstu subskrypcji źródłowej
az account set --subscription $sourceSubId
- Dodawanie przypisania roli na koncie źródłowym
# Read-only access role $roleDefinitionId = "00000000-0000-0000-0000-000000000001" az cosmosdb sql role assignment create --account-name $sourceAccount --resource-group $sourceAccountRG --role-definition-id $roleDefinitionId --scope "/" --principal-id $principalId
- Resetowanie kontekstu subskrypcji docelowej
az account set --subscription $destinationSubId
Korzystanie z tożsamości zarządzanej przypisanej przez użytkownika
- Przypisywanie zmiennej tożsamości zarządzanej przypisanej przez użytkownika
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
- Ustawianie kontekstu subskrypcji docelowej
az account set --subscription $destinationSubId
- Dodawanie tożsamości zarządzanej przypisanej przez użytkownika na koncie docelowym
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId
- Ustawianie domyślnej tożsamości na koncie docelowym
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
- Ustawianie kontekstu subskrypcji źródłowej
az account set --subscription $sourceSubId
- Dodawanie przypisania roli na koncie źródłowym
$roleDefinitionId = "00000000-0000-0000-0000-000000000001" # Read-only access role az cosmosdb sql role assignment create --account-name $sourceAccount --resource-group $sourceAccountRG --role-definition-id $roleDefinitionId --scope "/" --principal-id $principalId
- Resetowanie kontekstu subskrypcji docelowej
az account set --subscription $destinationSubId
Tworzenie zadania kopiowania kontenera
Interfejs API dla konta NoSQL
az cosmosdb copy create `
--resource-group $destinationAccountRG `
--job-name $jobName `
--dest-account $destinationAccount `
--src-account $sourceAccount `
--dest-nosql database=$destinationDatabase container=$destinationContainer `
--src-nosql database=$sourceDatabase container=$sourceContainer
Zarządzanie zadaniami kopiowania kontenerów
Monitorowanie postępu zadania kopiowania kontenera
Wyświetl postęp i stan zadania kopiowania:
az cosmosdb copy show `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Wyświetlanie listy wszystkich zadań kopiowania kontenera utworzonych na koncie
Aby wyświetlić listę wszystkich zadań kopiowania kontenera utworzonych na koncie:
az cosmosdb copy list `
--resource-group $destinationAccountRG `
--account-name $destinationAccount
Wstrzymywanie zadania kopiowania kontenera
Aby wstrzymać trwające zadanie kopiowania kontenerów, możesz użyć polecenia :
az cosmosdb copy pause `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Wznawianie zadania kopiowania kontenera
Aby wznowić trwające zadanie kopiowania kontenerów, możesz użyć polecenia :
az cosmosdb copy resume `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Anulowanie zadania kopiowania kontenera
Aby anulować trwające zadanie kopiowania kontenerów, możesz użyć polecenia :
az cosmosdb copy cancel `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Uzyskiwanie pomocy technicznej dotyczącej problemów z kopiowaniem kontenerów
W przypadku problemów związanych z kopiowaniem kontenera zgłoś nowe żądanie pomocy technicznej w witrynie Azure Portal. Ustaw typ problemu jako "Migracja danych" i Podtyp problemu jako "Kopia kontenera".
Następne kroki
- Aby uzyskać więcej informacji na temat zadań kopiowania kontenerów, zobacz Zadania kopiowania kontenerów.