Erstellen und Verwalten von Containerkopieraufträgen in Azure Cosmos DB (Vorschau)
GILT FÜR: NoSQL MongoDB Cassandra
Containerkopieraufträge helfen bei der Erstellung von Offlinekopien von Containern in Azure Cosmos DB-Konten.
In diesem Artikel wird beschrieben, wie Sie mithilfe von Azure CLI-Befehlen Aufträge für Containerkopieraufträge erstellen, überwachen und verwalten.
Voraussetzungen
- Sie können Cloud Shell im Portal verwenden, um Containerkopierbefehle auszuführen. Alternativ können Sie die Befehle lokal ausführen. Stellen Sie sicher, dass Sie die Azure CLI auf Ihren Computer heruntergeladen und installiert haben.
- Derzeit wird die Containerkopie nur in diesen Regionen unterstützt. Stellen Sie sicher, dass die Schreibregion Ihres Kontos in dieser Liste aufgeführt ist.
- Installieren Sie die Azure Cosmos DB-Vorschauerweiterung, die die Containerkopierbefehle enthält.
az extension add --name cosmosdb-preview
Hinweis
Der Containerkopierauftrag für Azure Cosmos DB-Konten ist nur für NoSQL-API-Konten verfügbar. Der Containerkopierauftrag in einem Azure Cosmos DB-Konto ist für NoSQL-, MongoDB- und Cassandra-API-Konten verfügbar.
Erstellen eines Containerkopierauftrags zum Kopieren von Daten in einem Azure Cosmos DB-Konto
Festlegen von Shellvariablen
Legen Sie zunächst alle Variablen fest, die jedes einzelne Skript verwendet.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""
Containerkopierauftrag erstellen
API für NoSQL-Konto
Erstellen Sie einen Auftrag zum Kopieren eines Containers innerhalb einer Azure Cosmos DB API für NoSQL-Kontos:
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
API für Cassandra-Konto
Erstellen Sie einen Auftrag zum Kopieren eines Containers innerhalb einer Azure Cosmos DB-API für Cassandra-Kontos:
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
API für MongoDB-Konto
Erstellen Sie einen Auftrag zum Kopieren eines Containers innerhalb eines Azure Cosmos DB-API für MongoDB-Kontos:
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
Hinweis
--job-name
sollte für jeden Auftrag innerhalb eines Kontos eindeutig sein.
Erstellen eines Containerkopierauftrags zum Kopieren von Daten in Azure Cosmos DB-Konten
Festlegen von Shellvariablen
Legen Sie zunächst alle Variablen fest, die jedes einzelne Skript verwendet.
$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 = ""
Leseberechtigung zuweisen
Beim Kopieren von Daten aus dem Container eines Kontos in den Container eines anderen Kontos. Es ist erforderlich, den Lesezugriff des Quellcontainers auf die Identität des Zielkontos zu gewähren, um den Kopiervorgang auszuführen. Führen Sie die folgenden Schritte aus, um dem Zielkonto erforderliche Leseberechtigungen zuzuweisen.
Verwenden einer systemseitig verwalteten Identität
- Festlegen des Zielabonnementkontexts
az account set --subscription $destinationSubId
- Hinzufügen der Systemidentität für das Zielkonto
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId
- Festlegen der Standardidentität für das Zielkonto
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
- Festlegen des Quellabonnementkontexts
az account set --subscription $sourceSubId
- Hinzufügen von Rollenzuweisungen für das Quellkonto
# 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
- Zurücksetzen des Zielabonnementkontexts
az account set --subscription $destinationSubId
Verwenden einer benutzerseitig zugewiesenen verwalteten Identität
- Zuweisen einer vom Benutzer zugewiesenen verwalteten Identitätsvariablen
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
- Festlegen des Zielabonnementkontexts
az account set --subscription $destinationSubId
- Hinzufügen der vom Benutzer zugewiesenen verwalteten Identität für das Zielkonto
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId
- Festlegen der Standardidentität für das Zielkonto
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
- Festlegen des Quellabonnementkontexts
az account set --subscription $sourceSubId
- Hinzufügen von Rollenzuweisungen für das Quellkonto
$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
- Zurücksetzen des Zielabonnementkontexts
az account set --subscription $destinationSubId
Containerkopierauftrag erstellen
API für NoSQL-Konto
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
Verwalten von Containerkopieraufträgen
Überwachen des Fortschritts eines Containerkopierauftrags
Zeigen Sie Fortschritt und Status eines Kopierauftrags an:
az cosmosdb copy show `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Auflisten aller Containerkopieraufträge, die in einem Konto erstellt wurden
So listen Sie alle Containerkopieraufträge auf, die in einem Konto erstellt wurden:
az cosmosdb copy list `
--resource-group $destinationAccountRG `
--account-name $destinationAccount
Anhalten eines Containerkopierauftrags
Um einen laufenden Containerkopierauftrag anzuhalten, können Sie den folgenden Befehl verwenden:
az cosmosdb copy pause `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Fortsetzen eines Containerkopierauftrags
Um einen angehaltenen Containerkopierauftrag fortzusetzen, können Sie den folgenden Befehl verwenden:
az cosmosdb copy resume `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Abbrechen eines Containerkopierauftrags
Um einen laufenden Containerkopierauftrag abzubrechen, können Sie den folgenden Befehl verwenden:
az cosmosdb copy cancel `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Anfordern von Unterstützung bei Problemen mit dem Kopieren von Containern
Lösen Sie bei Problemen im Zusammenhang mit Containerkopien eine neue Supportanfrage aus dem Azure-Portal aus. Legen Sie den Problemtyp auf „Datenmigration“ und den Problemuntertyp auf „Containerkopie“ fest.
Nächste Schritte
- Weitere Informationen zu Containerkopieraufträgen finden Sie unter Containerkopieraufträge.