Aracılığıyla paylaş


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: Sistem yönetimi için özellikle tasarlanmış, görev odaklı 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 kaynak, platformlar arası bir araç.
  • Microsoft Azure Depolama Gezgini: Kullanıcı arabirimine sahip kullanımı kolay bir tek başına uygulama.
  • Blobfuse: Depolama hesabınızdaki mevcut blok blob verilerine Linux dosya sistemi üzerinden erişmenize olanak tanıyan Azure Blob Depolama için bir 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'nin 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 işletim sistemi 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 eylemler
Kapsayıcıyı yönetme Kapsayıcı oluşturma
Kapsayıcıların içeriğini listeleme
İşi yönetme İş ilanlarını görüntüle
İş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ükle Dosya yükle
Dizini karşıya yükleme
Dizinin içeriğini karşıya yükleme
Dosya indirme Dosya indirme
Dizin indirme
Dizinin içeriğini indirme
Dosyayı eşitle Kapsayıcıyı yerel dosya sistemiyle senkronize et
Yerel dosya sistemini bir kapsayıcı ile eşleştirme

Uyarı

Azure Stack Hub, Microsoft Entra Id kullanarak AzCopy'ye yetkilendirme kimlik bilgileri sağlamayı desteklemez. Paylaşılan Erişim İmzası (SAS) belirtecini 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 doğrudan Azure Stack Hub'dan Azure Depolama'ya (veya tam tersi) veri taşımak için kullanamazsınız azcopy cp .

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

Tek dosyayı sanal dizine 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.
  • AzCopy 10.1 kullanarak iki Azure Stack Hub blob konumu arasında veya Azure Stack Hub ile Azure Depolama arasında veri aktarmak istiyorsanız, önce verileri yerel bir konuma indirin ve ardından Azure Stack Hub veya Azure Depolama'da hedef dizine yeniden yükleyin.
  • AzCopy'nin Linux sürümü yalnızca 1802 güncelleştirmesini veya sonraki sürümlerini destekler; Tablo hizmetini desteklemez.
  • Azure Tablo Depolama hizmetinize veri kopyalamak ve Azure'dan veri almak istiyorsanız PowerShell, CLI veya Azure istemci kütüphanelerini kullanabilirsiniz.

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. Özellikle sistem yönetimi için tasarlanmış, görev tabanlı bir 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 gereklidir. 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 bilgilerinizden 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ülleriniyükleyin.
  2. Azure Stack Hub ile çalışmak için gerekenaraçlarını indirin.
  3. Yeni bir betik dosyası oluşturmak için Windows PowerShell ISE'yi açın ve Yönetici Olarak Çalıştır'a tıklayın, ardından Dosya>Yeni'ye tıklayın.
  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.

    Uyarı

    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. Azure PowerShell'in 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.

Blobu Azure Stack Hub kümeleri arasında 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 Komut Satırı Arayüzü (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'da ç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 birçoğuna sahiptir.

Azure Stack Hub için Azure CLI sürüm 2.0 veya üzeri gerekir. Azure Stack Hub ile Azure CLI'yı yükleme ve yapılandırma hakkında daha fazla bilgi için bkz. Azure Stack Hub CLI'yi 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 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ıza olanak tanır. Azure Stack Hub Depolama verilerinizi yönetmenin kolay bir yolunu istiyorsanız Microsoft Azure Depolama Gezgini'ne göz atabilirsiniz.

Blobfuse

Blobfuse , Depolama hesabınızdaki mevcut blok blob verilerine Linux dosya sistemi üzerinden erişmenizi sağlayan Azure Blob Depolama için bir sanal 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 üzerinde Blobfuse ile blob depolamayı dosya sistemi olarak bağlama hakkında daha fazla bilgi edinmek için bkz. Blob depolamayı Blobfuse ile 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. Azure Stack Hub tümleşik sisteminde uç noktanızdan emin değilseniz bulut yöneticinize başvurun.

accountKey ve sasToken tek seferde yalnızca bir kez 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