Menggunakan alat transfer data di Azure Stack Hub Storage

Azure Stack Hub menyediakan satu set layanan penyimpanan untuk fungsi disk, blob, tabel, antrean, dan manajemen akun. Ada beberapa alat Azure Storage yang tersedia jika Anda ingin mengelola atau memindahkan data ke atau Azure Stack Hub Storage. Artikel ini memberikan gambaran umum mengenai alat yang tersedia.

Persyaratan Anda menentukan alat mana yang paling cocok untuk Anda:

  • AzCopy

    Utilitas baris perintah khusus penyimpanan yang dapat Anda unduh untuk menyalin data dari satu objek ke objek lain di dalam atau antar akun penyimpanan Anda.

  • Azure PowerShell

    Sebuah shell baris perintah dan bahasa pembuatan skrip berbasis tugas yang dirancang khusus untuk administrasi sistem.

  • Azure CLI

    Alat lintas platform sumber terbuka yang menyediakan set perintah dalam bekerja dengan platform Azure dan Azure Stack Hub.

  • Penjelajah Penyimpanan Microsoft Azure

    Aplikasi yang mudah digunakan secara mandiri dengan antarmuka pengguna.

  • Blobfuse

    Driver sistem file virtual untuk Azure Blob Storage, yang memungkinkan Anda dalam mengakses data blob blok yang ada di akun penyimpanan Anda melalui sistem file Linux.

Karena perbedaan layanan penyimpanan antara Azure dan Azure Stack Hub, mungkin ada beberapa persyaratan khusus untuk setiap alat yang dijelaskan di bagian berikut. Untuk perbandingan antara Azure Stack Hub Storage dan Azure Storage, lihat Azure Stack Hub Storage: Perbedaan dan pertimbangan.

AzCopy

AzCopy adalah utilitas baris perintah yang dirancang untuk menyalin data ke dan dari blob Microsoft Azure dan penyimpanan tabel menggunakan perintah sederhana dengan performa yang optimal. Anda dapat menyalin data dari satu objek ke objek lain di dalam atau antar akun penyimpanan Anda.

Mengunduh dan Memasang AzCopy

Unduh AzCopy V10+.

Konfigurasi dan batas AzCopy 10.1

AzCopy 10.1 sekarang dapat dikonfigurasikan untuk menggunakan versi API yang lebih lama. Hal ini memungkinkan dukungan (terbatas) untuk Azure Stack Hub. Untuk mengonfigurasikan versi API AzCopy agar mendukung Azure Stack Hub, set AZCOPY_DEFAULT_SERVICE_API_VERSION variabel lingkungan ke 2017-11-09.

Sistem operasi Perintah
Windows Di perintah gunakan: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
Di PowerShell gunakan: $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

Di AzCopy 10.1, fitur berikut ini didukung untuk Azure Stack Hub:

Fitur Tindakan yang didukung
Mengelola kontainer Buat kontainer
Mencantumkan isi kontainer
Mengelola pekerjaan Menampilkan pekerjaan
Melanjutkan pekerjaan
Menghapus blob Menghapus satu blob tunggal
Menghapus seluruh atau sebagian direktori virtual
Mengunggah file Mengunggah file
Mengunggah direktori
Mengunggah konten direktori
Mengunduh file Mengunduh file
Mengunduh direktori
Mengunduh konten direktori
Menyinkronkan file Menyinkronkan kontainer ke sistem file lokal
Menyinkronkan sistem file lokal ke kontainer

Catatan

  • Azure Stack Hub tidak mendukung penyediaan kredensial otorisasi ke AzCopy dengan menggunakan ID Microsoft Entra. Anda harus mengakses objek penyimpanan di Azure Stack Hub dengan menggunakan token Tanda Tangan Akses Bersama (SAS).
  • Azure Stack Hub tidak mendukung transfer data sinkron antara dua lokasi blob Azure Stack Hub, serta antara Azure Storage dan Azure Stack Hub. Anda tidak dapat menggunakan "azcopy cp" untuk memindahkan data dari Azure Stack Hub ke Azure Storage (atau sebaliknya) secara langsung dengan AzCopy 10.1.

Contoh perintah AzCopy untuk transfer data

Contoh berikut mengikuti skenario khas dalam menyalin data ke dan dari blob Azure Stack Hub. Untuk mempelajari lebih lanjut, lihat Mulai menggunakan AzCopy.

Mengunduh semua blob ke disk lokal

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

Mengunggah file tunggal ke direktori virtual

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

Masalah yang diketahui terkait AzCopy

  • Setiap operasi AzCopy pada penyimpanan file tidak tersedia karena penyimpanan file belum tersedia di Azure Stack Hub.
  • Jika Anda ingin mentransfer data antara dua lokasi blob Azure Stack Hub, atau antara Azure Stack Hub dan Azure Storage dengan menggunakan AzCopy 10.1, maka Anda perlu mengunduh data ke lokasi lokal terlebih dahulu, lalu mengunggah ulang ke direktori target di Azure Stack Hub atau Azure Storage. Atau Anda dapat menggunakan AzCopy 7.1, dan menentukan transfer dengan opsi /SyncCopy untuk menyalin data.
  • Versi Linux AzCopy hanya mendukung pembaruan 1802 atau versi yang lebih baru dan tidak mendukung layanan Tabel.
  • Jika Anda ingin menyalin data ke dan dari layanan penyimpanan Azure Table Anda, instal AzCopy versi 7.3.0

Azure PowerShell

Azure PowerShell adalah modul yang menyediakan cmdlet untuk mengelola layanan di Azure dan Azure Stack Hub. Ini adalah shell baris perintah dan bahasa pembuatan skrip berbasis tugas yang dirancang khusus untuk administrasi sistem.

Menginstal dan Mengonfigurasikan PowerShell untuk Azure Stack Hub

Modul Azure PowerShell yang kompatibel dengan Azure Stack Hub diperlukan dalam bekerja menggunakan Azure Stack Hub. Untuk informasi lebih lanjut, lihat menginstal PowerShell untuk Azure Stack Hub dan Mengonfigurasikan lingkungan PowerShell pengguna Azure Stack Hub.

Skrip Sampel PowerShell untuk Azure Stack Hub

Sampel ini mengasumsikan bahwa Anda telah berhasil menginstal PowerShell untuk Azure Stack Hub. Skrip ini akan membantu Anda dalam menyelesaikan konfigurasi dan meminta info masuk penyewa Azure Stack Hub guna menambahkan akun Anda ke lingkungan PowerShell lokal. Skrip tersebut kemudian akan mengatur langganan Azure default, membuat akun penyimpanan baru di Azure, membuat kontainer baru di akun penyimpanan baru ini, dan mengunggah file citra yang sudah ada (blob) ke kontainer itu. Setelah skrip mencantumkan semua blob dalam kontainer tersebut, selanjutnya skrip akan membuat direktori tujuan baru di komputer lokal Anda dan mengunduh file citra.

  1. Instal modul Azure PowerShell yang kompatibel dengan Azure Stack Hub.
  2. Unduh alat yang diperlukan dalam bekerja menggunakan Azure Stack Hub.
  3. Buka Windows PowerShell ISE dan Jalankan sebagai Administrator, lalu klik File>Baru untuk membuat file skrip baru.
  4. Salin skrip di bawah ini dan tempelkan ke file skrip yang baru.
  5. Perbarui variabel skrip berdasarkan pengaturan konfigurasi Anda.

    Catatan

    Skrip ini harus dijalankan di direktori akar AzureStack_Tools.

# 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

Masalah yang diketahui terkait PowerShell

Perbedaan Get-AzStorageAccountKey

Versi modul Azure PowerShell saat ini yang kompatibel untuk Azure Stack Hub adalah versi 1.2.11 untuk operasi pengguna. Versi tersebut berbeda dengan versi terbaru Azure PowerShell. Perbedaan ini berdampak pada operasi layanan penyimpanan, seperti:

Format nilai Get-AzStorageAccountKey yang ditampilkan di versi 1.2.11 memiliki dua properti: Key1 dan Key2, sedangkan versi Azure saat ini menampilkan array yang berisi semua kunci akun.

# 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

Untuk informasi lebih lanjut, lihat Get-AzureRMStorageAccountKey.

Menyalin blob antar kluster Azure Stack Hub

Start-AzStorageBlobCopy dapat digunakan untuk memulai pekerjaan menyalin untuk memindahkan blob. Saat mengatur properti AbsoluteUri sebagai uri blob pada kluster Azure Stack Hub lainnya, cmdlet ini dapat digunakan untuk menyalin blob di antara dua kluster Azure Stack Hub. Pastikan bahwa sumber dan tujuan kluster Azure Stack Hub berada pada versi pembaruan yang sama. Azure Stack Hub saat ini tidak mendukung penggunaan Start-AzStorageBlobCopy untuk menyalin blob antara dua kluster Azure Stack Hub yang telah menyebarkan versi pembaruan yang berbeda.

Azure CLI

Azure CLI adalah pengalaman baris perintah Azure untuk mengelola sumber daya Azure. Anda dapat menginstalnya di macOS, Linux, dan Windows dan menjalankannya dari baris perintah.

Azure CLI dioptimalkan untuk mengelola sumber daya Azure dari baris perintah, dan untuk membangun skrip otomatisasi yang berfungsi terhadap Azure Resource Manager. Azure CLI menyediakan banyak fungsi yang sama yang ditemukan di portal Azure Stack Hub, termasuk akses data yang kaya.

Azure Stack Hub memerlukan Azure CLI versi 2.0 atau versi yang lebih baru. Untuk informasi lebih lanjut mengenai cara menginstal dan mengonfigurasi Azure CLI dengan Azure Stack Hub, lihat menginstal dan mengonfigurasikan CLI Azure Stack Hub. Untuk informasi lebih lanjut mengenai cara menggunakan Azure CLI untuk melakukan beberapa tugas yang menggunakan sumber daya di akun penyimpanan Azure Stack Hub Anda, lihat Menggunakan Azure CLI dengan penyimpanan Azure.

Skrip sampel Azure CLI untuk Azure Stack Hub

Setelah Anda menyelesaikan penginstalan dan konfigurasi CLI, Anda dapat mencoba langkah-langkah berikut untuk menggunakan skrip sampel shell kecil dalam berinteraksi dengan sumber daya penyimpanan Azure Stack Hub. Skrip tersebut menyelesaikan tindakan berikut:

  • Membuat wadah baru di akun penyimpanan Anda.
  • Mengunggah file yang sudah ada (sebagai blob) ke kontainer.
  • Mencantumkan semua blob dalam kontainer.
  • Mengunduh file ke tujuan di komputer lokal Anda yang telah Anda tentukan.

Sebelum Anda menjalankan skrip ini, pastikan bahwa Anda berhasil tersambung dan masuk ke Azure Stack Hub target.

  1. Buka editor teks favorit Anda, lalu salin dan tempel skrip sebelumnya ke editor.
  2. Perbarui variabel skrip untuk melihat pengaturan konfigurasi Anda.
  3. Setelah Anda memperbarui variabel yang diperlukan, simpan skrip, dan keluar dari editor Anda. Langkah selanjutnya mengasumsikan bahwa Anda telah menamai skrip Anda my_storage_sample.sh.
  4. Tandai skrip sebagai skrip yang dapat dieksekusi, jika perlu: chmod +x my_storage_sample.sh
  5. Jalankan skrip. Misalnya, di Bash: ./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"

Penjelajah Penyimpanan Microsoft Azure

Azure Storage Explorer adalah aplikasi mandiri dari Microsoft. Aplikasi ini memungkinkan Anda untuk dengan mudah menggunakan data Azure Storage dan Azure Stack Hub Storage pada komputer Windows, macOS, dan Linux. Jika Anda menginginkan cara yang mudah dalam mengelola data Azure Stack Hub Storage Anda, maka pertimbangkan untuk menggunakan Microsoft Azure Storage Explorer.

Blobfuse

Blobfuse adalah driver sistem file virtual untuk Azure Blob Storage, yang memungkinkan Anda mengakses data blob blok yang sudah ada di akun penyimpanan Anda melalui sistem file Linux. Azure Blob Storage adalah layanan penyimpanan objek, sehingga tidak memiliki namespace layanan hierarkis. Blobfuse menyediakan namespace layanan ini menggunakan skema direktori virtual dengan penggunaan garis miring / sebagai pemisah. Blobfuse berfungsi di Azure dan Azure Stack Hub.

Untuk mempelajari lebih lanjut cara memasang penyimpanan blob sebagai sistem file dengan Blobfuse di Linux, lihat Cara memasang penyimpanan Blob sebagai sistem file dengan Blobfuse.

Untuk Azure Stack Hub, blobEndpoint perlu ditentukan saat mengonfigurasi info masuk akun penyimpanan Anda sekaligus dengan accountName, accountKey/sasToken, dan containerName.

Di Azure Stack Development Kit (ASDK), blobEndpoint harus myaccount.blob.local.azurestack.external. Di sistem Azure Stack Hub yang terintegrasi, hubungi admin cloud Anda Jika Anda tidak yakin tentang titik akhir Anda.

accountKey dan sasToken hanya dapat dikonfigurasi satu per satu. Saat kunci akun penyimpanan diberikan, maka file konfigurasi info masuk berada dalam format berikut:

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

Ketika token akses bersama diberikan, maka file konfigurasi info masuk berada dalam format berikut:

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

Langkah berikutnya