Azure Stack Hub Depolama'da veri aktarımı araçlarını kullanma

Azure Stack Hub diskler, bloblar, tablolar, kuyruklar ve hesap yönetimi işlevleri için bir dizi depolama hizmeti sağlar. Azure Stack Hub Depolama'ya veya Azure Stack Hub Depolama'dan veri yönetmek veya taşımak istiyorsanız bazı Azure Depolama araçları kullanılabilir. Bu makalede, kullanılabilir araçlara genel bir bakış sağlanır.

Gereksinimleriniz, aşağıdaki araçlardan hangilerinin sizin için en uygun olduğunu belirler:

  • AzCopy

    Depolama hesaplarınızın içindeki veya arasındaki bir nesneden başka bir nesneye veri kopyalamak için indirebileceğiniz depolamaya özgü, komut satırı yardımcı programı.

  • Azure PowerShell

    Özellikle sistem yönetimi için tasarlanmış görev tabanlı, komut satırı kabuğu ve betik dili.

  • Azure CLI

    Azure ve Azure Stack Hub platformlarıyla çalışmaya yönelik bir dizi komut sağlayan açık kaynaklı, platformlar arası bir araç.

  • Microsoft Azure Depolama Gezgini

    Kullanıcı arabirimine sahip, kullanımı kolay bir tek başına uygulama.

  • Blobfuse

    linux dosya sistemi aracılığıyla depolama hesabınızdaki mevcut blok blob verilerine erişmenizi sağlayan Azure Blob Depolama için sanal dosya sistemi sürücüsü.

Azure ile Azure Stack Hub arasındaki depolama hizmetleri farklılıkları nedeniyle, aşağıdaki bölümlerde açıklanan her araç için bazı özel gereksinimler olabilir. Azure Stack Hub Depolama ile Azure Depolama arasında bir karşılaştırma için bkz. Azure Stack Hub Depolama: Farklılıklar ve dikkat edilmesi gerekenler.

AzCopy

AzCopy, en iyi performansa sahip basit komutları kullanarak Microsoft Azure blob ve tablo depolamaya veri kopyalamak için tasarlanmış bir komut satırı yardımcı programıdır. Depolama hesaplarınız içinde veya arasında bir nesneden diğerine veri kopyalayabilirsiniz.

AzCopy'yi indirme ve yükleme

AzCopy V10+ sürümünü indirin.

AzCopy 10.1 yapılandırması ve sınırları

AzCopy 10.1 artık eski API sürümlerini kullanacak şekilde yapılandırılabilir. Bu, Azure Stack Hub için (sınırlı) destek sağlar. AzCopy API sürümünü Azure Stack Hub'ı destekleyecek şekilde yapılandırmak için ortam değişkenini AZCOPY_DEFAULT_SERVICE_API_VERSION olarak 2017-11-09ayarlayın.

İşletim sistemi Komut
Windows Komut isteminde şunu kullanın: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
PowerShell'de şunları kullanın: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09"
Linux export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
MacOS export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09

AzCopy 10.1'de, Azure Stack Hub için aşağıdaki özellikler desteklenir:

Özellik Desteklenen işlemler
Kapsayıcıyı yönetme Kapsayıcı oluşturma
Kapsayıcıların içeriklerini listeleme
İşi yönetme İşleri görüntüleme
İşi sürdürme
Blobu kaldırma Tek bir blobu kaldırma
Sanal dizinin tamamını veya bir kısmını kaldırma
Dosya yükleme Dosyayı karşıya yükleme
Dizini karşıya yükleme
Dizinin içeriğini karşıya yükleme
Dosyayı indirin Dosya indirme
Dizin indirme
Dizinin içeriğini indirme
Dosyayı eşitle Kapsayıcıyı yerel dosya sistemine eşitleme
Yerel dosya sistemini kapsayıcıyla eşitleme

Not

  • Azure Stack Hub, Microsoft Entra kimliği kullanarak AzCopy'ye yetkilendirme kimlik bilgileri sağlamayı desteklemez. Paylaşılan Erişim İmzası (SAS) belirteci kullanarak Azure Stack Hub'da depolama nesnelerine erişmeniz gerekir.
  • Azure Stack Hub, iki Azure Stack Hub blob konumu arasında ve Azure Depolama ile Azure Stack Hub arasında zaman uyumlu veri aktarımını desteklemez. AzCopy 10.1 ile verileri Azure Stack Hub'dan Azure Depolama'ya (veya tam tersi) taşımak için "azcopy cp" kullanamazsınız.

Veri aktarımı için AzCopy komut örnekleri

Aşağıdaki örnekler, Azure Stack Hub bloblarına veri kopyalamaya yönelik tipik senaryoları izler. Daha fazla bilgi edinmek için bkz. AzCopy'yi kullanmaya başlama.

Tüm blobları yerel diske indirme

azcopy cp "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]" "/path/to/dir" --recursive=true

Sanal dizine tek dosya yükleme

azcopy cp "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]"

AzCopy bilinen sorunları

  • Dosya depolama alanı henüz Azure Stack Hub'da kullanılamadığından, dosya depolamadaki herhangi bir AzCopy işlemi kullanılamaz.
  • İki Azure Stack Hub blob konumu arasında veya AzCopy 10.1 kullanarak Azure Stack Hub ile Azure Depolama arasında veri aktarmak istiyorsanız, önce verileri yerel bir konuma indirmeniz ve ardından Azure Stack Hub veya Azure Depolama'da hedef dizine yeniden yüklemeniz gerekir. İsterseniz AzCopy 7.1'i kullanabilir ve verileri kopyalamak için /SyncCopy seçeneğiyle aktarımı belirtebilirsiniz.
  • AzCopy'nin Linux sürümü yalnızca 1802 güncelleştirme veya sonraki sürümlerini destekler ve Tablo hizmetini desteklemez.
  • Azure Tablo depolama hizmetinize ve azuredan veri kopyalamak istiyorsanız AzCopy sürüm 7.3.0'ı yükleyin

Azure PowerShell

Azure PowerShell, hem Azure hem de Azure Stack Hub'da hizmetleri yönetmek için cmdlet'ler sağlayan bir modüldür. Bu, özellikle sistem yönetimi için tasarlanmış görev tabanlı, komut satırı kabuğu ve betik dilidir.

Azure Stack Hub için PowerShell'i Yükleme ve Yapılandırma

Azure Stack Hub ile çalışmak için Azure Stack Hub uyumlu Azure PowerShell modülleri gerekir. Daha fazla bilgi için bkz. Azure Stack Hub için PowerShell'i yükleme ve Azure Stack Hub kullanıcısının PowerShell ortamını yapılandırma.

Azure Stack Hub için PowerShell Örnek betiği

Bu örnekte , Azure Stack Hub için PowerShell'i başarıyla yüklediğiniz varsayılır. Bu betik, yapılandırmayı tamamlamanıza ve Azure Stack Hub kiracı kimlik bilgilerinizin hesabınızı yerel PowerShell ortamına eklemesini istemenize yardımcı olur. Betik daha sonra varsayılan Azure aboneliğini ayarlar, Azure'da yeni bir depolama hesabı oluşturur, bu yeni depolama hesabında yeni bir kapsayıcı oluşturur ve mevcut bir görüntü dosyasını (blob) bu kapsayıcıya yükler. Betik bu kapsayıcıdaki tüm blobları listeledikten sonra yerel bilgisayarınızda yeni bir hedef dizin oluşturur ve görüntü dosyasını indirir.

  1. Azure Stack Hub uyumlu Azure PowerShell modüllerini yükleyin.
  2. Azure Stack Hub ile çalışmak için gereken araçları indirin.
  3. ISE Windows PowerShell açın ve Yönetici Olarak Çalıştır'ı açın, ardındanYeniDosya'ya> tıklayarak yeni bir betik dosyası oluşturun.
  4. Aşağıdaki betiği kopyalayın ve yeni betik dosyasına yapıştırın.
  5. Betik değişkenlerini yapılandırma ayarlarınıza göre güncelleştirin.

    Not

    Bu betiğin AzureStack_Tools için kök dizinde çalıştırılması gerekir.

# begin

$ARMEvnName = "AzureStackUser" # set AzureStackUser as your Azure Stack Hub environment name
$ARMEndPoint = "https://management.local.azurestack.external" 
$GraphAudience = "https://graph.windows.net/" 
$AADTenantName = "<myDirectoryTenantName>.onmicrosoft.com" 

$SubscriptionName = "basic" # Update with the name of your subscription.
$ResourceGroupName = "myTestRG" # Give a name to your new resource group.
$StorageAccountName = "azsblobcontainer" # Give a name to your new storage account. It must be lowercase.
$Location = "Local" # Choose "Local" as an example.
$ContainerName = "photo" # Give a name to your new container.
$ImageToUpload = "C:\temp\Hello.jpg" # Prepare an image file and a source directory in your local computer.
$DestinationFolder = "C:\temp\download" # A destination directory in your local computer.

# Import the Connect PowerShell module"
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Import-Module .\Connect\AzureStack.Connect.psm1

# Configure the PowerShell environment
# Register an Az environment that targets your Azure Stack Hub instance
Add-AzEnvironment -Name $ARMEvnName -ARMEndpoint $ARMEndPoint 

# Login
$TenantID = Get-AzsDirectoryTenantId -AADTenantName $AADTenantName -EnvironmentName $ARMEvnName
Connect-AzAccount -EnvironmentName $ARMEvnName -TenantId $TenantID 

# Set a default Azure subscription.
Select-AzSubscription -SubscriptionName $SubscriptionName

# Create a new Resource Group 
New-AzResourceGroup -Name $ResourceGroupName -Location $Location

# Create a new storage account.
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS

# Set a default storage account.
Set-AzCurrentStorageAccount -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName 

# Create a new container.
New-AzStorageContainer -Name $ContainerName -Permission Off

# Upload a blob into a container.
Set-AzStorageBlobContent -Container $ContainerName -File $ImageToUpload

# List all blobs in a container.
Get-AzStorageBlob -Container $ContainerName

# Download blobs from the container:
# Get a reference to a list of all blobs in a container.
$blobs = Get-AzStorageBlob -Container $ContainerName

# Create the destination directory.
New-Item -Path $DestinationFolder -ItemType Directory -Force  

# Download blobs into the local destination directory.
$blobs | Get-AzureStorageBlobContent -Destination $DestinationFolder

# end

PowerShell bilinen sorunları

Get-AzStorageAccountKey fark

Azure Stack Hub için geçerli uyumlu Azure PowerShell modülü sürümü, kullanıcı işlemleri için 1.2.11'dir. Bu, Azure PowerShell en son sürümünden farklıdır. Bu fark, depolama hizmetleri işlemini aşağıdaki şekilde etkiler:

Sürüm 1.2.11'deki dönüş değeri biçiminin Get-AzStorageAccountKey iki özelliği vardır: Key1 ve Key2, geçerli Azure sürümü ise tüm hesap anahtarlarını içeren bir dizi döndürür.

# This command gets a specific key for a storage account, 
# and works for Azure PowerShell version 1.4, and later versions.
(Get-AzStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Value[0]

# This command gets a specific key for a storage account, 
# and works for Azure PowerShell version 1.3.2, and previous versions.
(Get-AzStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Key1

Daha fazla bilgi için bkz. Get-AzureRMStorageAccountKey.

Azure Stack Hub kümeleri arasında blob kopyalama

Start-AzStorageBlobCopy bir blobu taşımak üzere kopyalama işi başlatmak için kullanılabilir. Özelliği AbsoluteUri başka bir Azure Stack Hub kümesinde blob uri'si olarak ayarlarken, bu cmdlet iki Azure Stack Hub kümesi arasında blob kopyalamak için kullanılabilir. Kaynak ve hedef Azure Stack Hub kümelerinin aynı güncelleştirme sürümünde olduğundan emin olun. Azure Stack Hub şu anda farklı güncelleştirme sürümleri dağıtan iki Azure Stack Hub kümesi arasında blob kopyalamayı desteklememektedir Start-AzStorageBlobCopy .

Azure CLI

Azure CLI, Azure kaynaklarını yönetmek için Azure tarafından sunulan komut satırı deneyimidir. MacOS, Linux ve Windows'a yükleyebilir ve komut satırından çalıştırabilirsiniz.

Azure CLI, Azure kaynaklarını komut satırından yönetmek ve Azure Resource Manager üzerinde çalışan otomasyon betikleri oluşturmak için iyileştirilmiştir. Zengin veri erişimi de dahil olmak üzere Azure Stack Hub portalında bulunan işlevlerin çoğunu sağlar.

Azure Stack Hub için Azure CLI sürüm 2.0 veya üzeri gerekir. Azure Stack Hub ile Azure CLI'yi yükleme ve yapılandırma hakkında daha fazla bilgi için bkz. Azure Stack Hub CLI'sını yükleme ve yapılandırma. Azure Stack Hub depolama hesabınızdaki kaynaklarla çalışan çeşitli görevleri gerçekleştirmek için Azure CLI'yi kullanma hakkında daha fazla bilgi için bkz. Azure CLI'yi Azure depolama ile kullanma.

Azure Stack Hub için Azure CLI örnek betiği

CLI yüklemesini ve yapılandırmasını tamamladıktan sonra, Azure Stack Hub depolama kaynaklarıyla etkileşime geçmek için küçük bir kabuk örnek betiğiyle çalışmak için aşağıdaki adımları deneyebilirsiniz. Betik aşağıdaki eylemleri tamamlar:

  • Depolama hesabınızda yeni bir kapsayıcı oluşturur.
  • Var olan bir dosyayı (blob olarak) kapsayıcıya yükler.
  • Kapsayıcıdaki tüm blobları listeler.
  • Dosyayı yerel bilgisayarınızda belirttiğiniz bir hedefe indirir.

Bu betiği çalıştırmadan önce hedef Azure Stack Hub'a başarıyla bağlanıp oturum açabildiğinize emin olun.

  1. Sık kullandığınız metin düzenleyiciyi açın, ardından önceki betiği kopyalayıp düzenleyiciye yapıştırın.
  2. Betiğin değişkenlerini yapılandırma ayarlarınızı yansıtacak şekilde güncelleştirin.
  3. Gerekli değişkenleri güncelleştirdikten sonra betiği kaydedin ve düzenleyicinizden çıkın. Sonraki adımlarda betiğinizi my_storage_sample.sh olarak adlandırdığınız varsayılır.
  4. Gerekirse betiği yürütülebilir olarak işaretleyin: chmod +x my_storage_sample.sh
  5. Betiği yürütün. Örneğin, Bash'te: ./my_storage_sample.sh
#!/bin/bash
# A simple Azure Stack Hub storage example script

export AZURESTACK_RESOURCE_GROUP=<resource_group_name>
export AZURESTACK_RG_LOCATION="local"
export AZURESTACK_STORAGE_ACCOUNT_NAME=<storage_account_name>
export AZURESTACK_STORAGE_CONTAINER_NAME=<container_name>
export AZURESTACK_STORAGE_BLOB_NAME=<blob_name>
export FILE_TO_UPLOAD=<file_to_upload>
export DESTINATION_FILE=<destination_file>

echo "Creating the resource group..."
az group create --name $AZURESTACK_RESOURCE_GROUP --location $AZURESTACK_RG_LOCATION

echo "Creating the storage account..."
az storage account create --name $AZURESTACK_STORAGE_ACCOUNT_NAME --resource-group $AZURESTACK_RESOURCE_GROUP --account-type Standard_LRS

echo "Creating the blob container..."
az storage container create --name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME

echo "Uploading the file..."
az storage blob upload --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --file $FILE_TO_UPLOAD --name $AZURESTACK_STORAGE_BLOB_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME

echo "Listing the blobs..."
az storage blob list --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME --output table

echo "Downloading the file..."
az storage blob download --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME --name $AZURESTACK_STORAGE_BLOB_NAME --file $DESTINATION_FILE --output table

echo "Done"

Microsoft Azure Depolama Gezgini

Azure Depolama Gezgini, Microsoft'un tek başına bir uygulamasıdır. Windows, macOS ve Linux bilgisayarlarda hem Azure Depolama hem de Azure Stack Hub Depolama verileriyle kolayca çalışmanızı sağlar. Azure Stack Hub Depolama verilerinizi yönetmenin kolay bir yolunu istiyorsanız Microsoft Azure Depolama Gezgini kullanmayı göz önünde bulundurun.

Blobfuse

Blobfuse, linux dosya sistemi aracılığıyla depolama hesabınızdaki mevcut blok blobu verilerinize erişmenizi sağlayan Azure Blob Depolama için sanal bir dosya sistemi sürücüsüdür. Azure Blob Depolama bir nesne depolama hizmetidir ve bu nedenle hiyerarşik ad alanına sahip değildir. Blobfuse, sınırlayıcı olarak eğik çizgi / kullanımıyla sanal dizin şemasını kullanarak bu ad alanını sağlar. Blobfuse hem Azure hem de Azure Stack Hub üzerinde çalışır.

Linux'ta Blobfuse ile blob depolamayı dosya sistemi olarak bağlama hakkında daha fazla bilgi edinmek için bkz. Blobfuse ile blob depolamayı dosya sistemi olarak bağlama.

Azure Stack Hub için accountName, accountKey/sasToken ve containerName ile birlikte depolama hesabı kimlik bilgilerinizi yapılandırırken blobEndpoint belirtilmelidir.

Azure Stack Geliştirme Seti'nde (ASDK), blobEndpoint olmalıdır myaccount.blob.local.azurestack.external. Uç noktanızdan emin değilseniz Azure Stack Hub tümleşik sisteminde bulut yöneticinize başvurun.

accountKey ve sasToken tek seferde yalnızca bir tane yapılandırılabilir. Depolama hesabı anahtarı verildiğinde, kimlik bilgileri yapılandırma dosyası aşağıdaki biçimdedir:

accountName myaccount 
accountKey myaccesskey== 
containerName mycontainer 
blobEndpoint myaccount.blob.local.azurestack.external

Paylaşılan erişim belirteci verildiğinde, kimlik bilgileri yapılandırma dosyası aşağıdaki biçimdedir:

accountName myaccount 
sasToken ?mysastoken 
containerName mycontainer 
blobEndpoint myaccount.blob.local.azurestack.external

Sonraki adımlar