Vytváření a správa úloh kopírování kontejnerů ve službě Azure Cosmos DB (Preview)
PLATÍ PRO: NoSQL MongoDB Cassandra
Úlohy kopírování kontejnerů pomáhají vytvářet offline kopie kontejnerů v účtech Azure Cosmos DB.
Tento článek popisuje, jak vytvářet, monitorovat a spravovat úlohy kopírování kontejnerů pomocí příkazů Azure CLI.
Požadavky
- Ke spuštění příkazů pro kopírování kontejnerů můžete použít portál Cloud Shell . Případně můžete příkazy spouštět místně; ujistěte se, že jste na počítači stáhli a nainstalovali Azure CLI .
- V současné době se kopírování kontejnerů podporuje jenom v těchto oblastech. Ujistěte se, že oblast zápisu vašeho účtu patří do tohoto seznamu.
- Nainstalujte rozšíření Azure Cosmos DB ve verzi Preview, které obsahuje příkazy pro kopírování kontejneru.
az extension add --name cosmosdb-preview
Poznámka:
Úloha kopírování kontejnerů napříč účty Služby Azure Cosmos DB je k dispozici pouze pro účet rozhraní API NoSQL. Úloha kopírování kontejnerů v rámci účtu služby Azure Cosmos DB je k dispozici pro účty noSQL, MongoDB a Cassandra API.
Vytvoření úlohy kopírování kontejneru pro kopírování dat v rámci účtu služby Azure Cosmos DB
Nastavení proměnných prostředí
Nejprve nastavte všechny proměnné, které jednotlivé skripty používají.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""
Vytvoření úlohy kopírování kontejneru
Účet rozhraní API pro NoSQL
Vytvořte úlohu pro kopírování kontejneru v rámci účtu rozhraní API služby Azure Cosmos DB pro 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
Rozhraní API pro účet Cassandra
Vytvořte úlohu pro kopírování kontejneru v rámci účtu rozhraní API služby Azure Cosmos DB pro 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
Účet ROZHRANÍ API pro MongoDB
Vytvořte úlohu pro kopírování kontejneru v rámci účtu rozhraní API služby Azure Cosmos DB pro 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
Poznámka:
--job-name
pro každou úlohu v rámci účtu by měla být jedinečná.
Vytvoření úlohy kopírování kontejneru pro kopírování dat napříč účty Azure Cosmos DB
Nastavení proměnných prostředí
Nejprve nastavte všechny proměnné, které jednotlivé skripty používají.
$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 = ""
Přiřazení oprávnění ke čtení
Při kopírování dat z kontejneru jednoho účtu do kontejneru jiného účtu. Aby bylo možné provést operaci kopírování, je nutné udělit přístup ke čtení zdrojového kontejneru identitě cílového účtu. Podle následujících kroků přiřaďte požadované oprávnění ke čtení cílovému účtu.
Použití spravované identity systému
- Nastavení kontextu cílového předplatného
az account set --subscription $destinationSubId
- Přidání systémové identity v cílovém účtu
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId
- Nastavení výchozí identity v cílovém účtu
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
- Nastavení kontextu zdrojového předplatného
az account set --subscription $sourceSubId
- Přidání přiřazení role ke zdrojovému účtu
# 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
- Resetování kontextu cílového předplatného
az account set --subscription $destinationSubId
Použití spravované identity přiřazené uživatelem
- Přiřazení proměnné spravované identity přiřazené uživatelem
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
- Nastavení kontextu cílového předplatného
az account set --subscription $destinationSubId
- Přidání spravované identity přiřazené uživatelem v cílovém účtu
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId
- Nastavení výchozí identity v cílovém účtu
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
- Nastavení kontextu zdrojového předplatného
az account set --subscription $sourceSubId
- Přidání přiřazení role ke zdrojovému účtu
$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
- Resetování kontextu cílového předplatného
az account set --subscription $destinationSubId
Vytvoření úlohy kopírování kontejneru
Účet rozhraní API pro 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
Správa úloh kopírování kontejneru
Monitorování průběhu úlohy kopírování kontejneru
Zobrazení průběhu a stavu úlohy kopírování:
az cosmosdb copy show `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Výpis všech úloh kopírování kontejneru vytvořených v účtu
Zobrazení seznamu všech úloh kopírování kontejneru vytvořených v účtu:
az cosmosdb copy list `
--resource-group $destinationAccountRG `
--account-name $destinationAccount
Pozastavení úlohy kopírování kontejneru
Pokud chcete pozastavit probíhající úlohu kopírování kontejneru, můžete použít tento příkaz:
az cosmosdb copy pause `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Obnovení úlohy kopírování kontejneru
Pokud chcete obnovit probíhající úlohu kopírování kontejneru, můžete použít tento příkaz:
az cosmosdb copy resume `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Zrušení úlohy kopírování kontejneru
Pokud chcete zrušit probíhající úlohu kopírování kontejneru, můžete použít tento příkaz:
az cosmosdb copy cancel `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Získání podpory problémů s kopírováním kontejnerů
V případě problémů souvisejících s kopírováním kontejneru vytvořte novou žádost o podporu na webu Azure Portal. Nastavte typ problému jako "Migrace dat" a podtyp problému jako "Kopie kontejneru".
Další kroky
- Další informace o úlohách kopírování kontejneru najdete v tématu Úlohy kopírování kontejneru.