Azure Cosmos DB'de kapsayıcı kopyalama işleri oluşturma ve yönetme (Önizleme)
ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra
Kapsayıcı kopyalama işleri , Azure Cosmos DB hesaplarında kapsayıcıların çevrimdışı kopyalarının oluşturulmasına yardımcı olur.
Bu makalede, Azure CLI komutlarını kullanarak kapsayıcı kopyalama işlerinin nasıl oluşturulacağı, izleneceği ve yönetileceğini açıklanmaktadır.
Ön koşullar
- Kapsayıcı kopyalama komutlarını çalıştırmak için Cloud Shell portalını kullanabilirsiniz. Alternatif olarak, komutları yerel olarak çalıştırabilirsiniz; Azure CLI'nın makinenize indirildiğinden ve yüklendiğinden emin olun.
- Şu anda kapsayıcı kopyalama yalnızca bu bölgelerde desteklenmektedir. Hesabınızın yazma bölgesinin bu listeye ait olduğundan emin olun.
- Kapsayıcı kopyalama komutlarını içeren Azure Cosmos DB önizleme uzantısını yükleyin.
az extension add --name cosmosdb-preview
Dekont
Azure Cosmos DB hesaplarında kapsayıcı kopyalama işi yalnızca NoSQL API hesabı için kullanılabilir. Azure Cosmos DB hesabındaki kapsayıcı kopyalama işi NoSQL, MongoDB ve Cassandra API hesapları için kullanılabilir.
Azure Cosmos DB hesabındaki verileri kopyalamak için kapsayıcı kopyalama işi oluşturma
Kabuk değişkenlerini ayarlama
İlk olarak, her bir betiğin kullandığı tüm değişkenleri ayarlayın.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""
Kapsayıcı kopyalama işi oluşturma
NoSQL hesabı için API
NoSQL hesabı için Azure Cosmos DB API'sinde bir kapsayıcıyı kopyalamak için bir iş oluşturun:
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
Cassandra hesabı için API
Cassandra hesabı için Azure Cosmos DB API'sinde bir kapsayıcıyı kopyalamak için iş oluşturun:
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
MongoDB hesabı için API
MongoDB hesabı için Azure Cosmos DB API'sinde bir kapsayıcıyı kopyalamak için bir iş oluşturun:
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
Dekont
--job-name
bir hesaptaki her iş için benzersiz olmalıdır.
Azure Cosmos DB hesapları arasında veri kopyalamak için kapsayıcı kopyalama işi oluşturma
Kabuk değişkenlerini ayarlama
İlk olarak, her bir betiğin kullandığı tüm değişkenleri ayarlayın.
$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 = ""
Okuma izni atama
Bir hesabın kapsayıcısından başka bir hesabın kapsayıcısına veri kopyalarken. Kopyalama işlemini gerçekleştirmek için hedef hesabın kimliğine kaynak kapsayıcıya okuma erişimi vermek gerekir. Hedef hesaba gerekli okuma iznini atamak için aşağıdaki adımları izleyin.
Sistem tarafından yönetilen kimliği kullanma
- Hedef abonelik bağlamı ayarlama
az account set --subscription $destinationSubId
- Hedef hesapta sistem kimliği ekleme
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId
- Hedef hesapta varsayılan kimliği ayarlama
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
- Kaynak abonelik bağlamı ayarlama
az account set --subscription $sourceSubId
- Kaynak hesapta rol ataması ekleme
# 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
- Hedef abonelik bağlamı sıfırla
az account set --subscription $destinationSubId
Kullanıcı tarafından atanan yönetilen kimliği kullanma
- Kullanıcı tarafından atanan yönetilen kimlik değişkenlerini atama
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
- Hedef abonelik bağlamı ayarlama
az account set --subscription $destinationSubId
- Hedef hesaba kullanıcı tarafından atanan yönetilen kimlik ekleme
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId
- Hedef hesapta varsayılan kimliği ayarlama
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
- Kaynak abonelik bağlamı ayarlama
az account set --subscription $sourceSubId
- Kaynak hesapta rol ataması ekleme
$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
- Hedef abonelik bağlamı sıfırla
az account set --subscription $destinationSubId
Kapsayıcı kopyalama işi oluşturma
NoSQL hesabı için API
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
Kapsayıcı kopyalama işlerini yönetme
Kapsayıcı kopyalama işinin ilerleme durumunu izleme
Kopyalama işinin ilerleme durumunu ve durumunu görüntüleyin:
az cosmosdb copy show `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Bir hesapta oluşturulan tüm kapsayıcı kopyalama işlerini listeleme
Bir hesapta oluşturulan tüm kapsayıcı kopyalama işlerini listelemek için:
az cosmosdb copy list `
--resource-group $destinationAccountRG `
--account-name $destinationAccount
Kapsayıcı kopyalama işini duraklatma
Devam eden bir kapsayıcı kopyalama işini duraklatmak için komutunu kullanabilirsiniz:
az cosmosdb copy pause `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Kapsayıcı kopyalama işini sürdürme
Devam eden bir kapsayıcı kopyalama işini sürdürmek için komutunu kullanabilirsiniz:
az cosmosdb copy resume `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Kapsayıcı kopyalama işini iptal etme
Devam eden bir kapsayıcı kopyalama işini iptal etmek için komutunu kullanabilirsiniz:
az cosmosdb copy cancel `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
Kapsayıcı kopyalama sorunları için destek alma
Kapsayıcı kopyalamayla ilgili sorunlar için Azure portalından Yeni Destek İsteği oluşturun. Sorun Türü'nü'Veri Geçişi' ve Sorun alt türünü 'Kapsayıcı kopyası' olarak ayarlayın.
Sonraki adımlar
- Kapsayıcı kopyalama işleri hakkında daha fazla bilgi için bkz . Kapsayıcı kopyalama işleri.