Skapa och hantera containerkopieringsjobb i Azure Cosmos DB (förhandsversion)
GÄLLER FÖR: NoSQL MongoDB Kassandra
Containerkopieringsjobb hjälper dig att skapa offlinekopior av containrar i Azure Cosmos DB-konton.
Den här artikeln beskriver hur du skapar, övervakar och hanterar containerkopieringsjobb med hjälp av Azure CLI-kommandon.
Förutsättningar
- Du kan använda Cloud Shell-portalen för att köra containerkopieringskommandon. Alternativt kan du köra kommandona lokalt. kontrollera att Azure CLI har laddats ned och installerats på datorn.
- För närvarande stöds containerkopiering endast i dessa regioner. Kontrollera att ditt kontos skrivregion tillhör den här listan.
- Installera azure Cosmos DB-förhandsgranskningstillägget som innehåller containerkopieringskommandona.
az extension add --name cosmosdb-preview
Kommentar
Containerkopieringsjobb för Azure Cosmos DB-konton är endast tillgängligt för NoSQL API-konto. Containerkopieringsjobb i ett Azure Cosmos DB-konto är tillgängligt för NoSQL-, MongoDB- och Cassandra API-konton.
Skapa ett containerkopieringsjobb för att kopiera data i ett Azure Cosmos DB-konto
Ange gränssnittsvariabler
Ange först alla variabler som varje enskilt skript använder.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""
Skapa containerkopieringsjobb
API för NoSQL-konto
Skapa ett jobb för att kopiera en container i ett Azure Cosmos DB API för NoSQL-konto:
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
Skapa ett jobb för att kopiera en container i ett Azure Cosmos DB-API för Cassandra-konto:
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
Skapa ett jobb för att kopiera en container i ett Azure Cosmos DB API för MongoDB-konto:
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
Kommentar
--job-name
ska vara unikt för varje jobb i ett konto.
Skapa ett containerkopieringsjobb för att kopiera data mellan Azure Cosmos DB-konton
Ange gränssnittsvariabler
Ange först alla variabler som varje enskilt skript använder.
$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 = ""
Tilldela läsbehörighet
När du kopierar data från ett kontos container till ett annat kontos container. Det är nödvändigt att ge läsbehörighet för källcontainern till målkontots identitet för att utföra kopieringsåtgärden. Följ stegen nedan för att tilldela nödvändiga läsbehörigheter till målkontot.
Använda systemhanterad identitet
- Ange målprenumerationskontext
az account set --subscription $destinationSubId
- Lägga till systemidentitet på målkontot
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId
- Ange standardidentitet för målkontot
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
- Ange källprenumerationskontext
az account set --subscription $sourceSubId
- Lägga till rolltilldelning för källkontot
# 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
- Återställa målprenumerationskontext
az account set --subscription $destinationSubId
Använda användartilldelad hanterad identitet
- Tilldela användartilldelad hanterad identitetsvariabel
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
- Ange målprenumerationskontext
az account set --subscription $destinationSubId
- Lägga till användartilldelad hanterad identitet på målkontot
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId
- Ange standardidentitet för målkontot
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
- Ange källprenumerationskontext
az account set --subscription $sourceSubId
- Lägga till rolltilldelning för källkontot
$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
- Återställa målprenumerationskontext
az account set --subscription $destinationSubId
Skapa containerkopieringsjobb
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
Hantera containerkopieringsjobb
Övervaka förloppet för ett containerkopieringsjobb
Visa förloppet och statusen för ett kopieringsjobb:
az cosmosdb copy show `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Visa en lista över alla containerkopieringsjobb som skapats i ett konto
Så här listar du alla containerkopieringsjobb som skapats i ett konto:
az cosmosdb copy list `
--resource-group $destinationAccountRG `
--account-name $destinationAccount
Pausa ett containerkopieringsjobb
För att pausa ett pågående containerkopieringsjobb kan du använda kommandot:
az cosmosdb copy pause `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Återuppta ett containerkopieringsjobb
För att återuppta ett pågående containerkopieringsjobb kan du använda kommandot:
az cosmosdb copy resume `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Avbryta ett containerkopieringsjobb
Om du vill avbryta ett pågående containerkopieringsjobb kan du använda kommandot:
az cosmosdb copy cancel `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Få stöd för problem med containerkopiering
För problem som rör containerkopiering skapar du en ny supportbegäran från Azure-portalen. Ange problemtypen som "Datamigrering" och Undertypen Problem som "Containerkopia".
Nästa steg
- Mer information om containerkopieringsjobb finns i Containerkopieringsjobb.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för