AzureFileCopy@4 - Tugas salinan file v4 Azure

Salin file ke Azure Blob Storage atau komputer virtual.

Sintaks

# Azure file copy v4
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@4
  inputs:
    SourcePath: # string. Required. Source. 
    azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription. 
    Destination: # 'AzureBlob' | 'AzureVMs'. Required. Destination Type. 
    storage: # string. Alias: StorageAccountRM. Required. RM Storage Account. 
    #ContainerName: # string. Required when Destination = AzureBlob. Container Name. 
    #BlobPrefix: # string. Optional. Use when Destination = AzureBlob. Blob Prefix. 
    #resourceGroup: # string. Alias: EnvironmentNameRM. Required when Destination = AzureVMs. Resource Group. 
    #ResourceFilteringMethod: 'machineNames' # 'machineNames' | 'tags'. Optional. Use when Destination = AzureVMs. Select Machines By. Default: machineNames.
    #MachineNames: # string. Optional. Use when Destination = AzureVMs. Filter Criteria. 
    #vmsAdminUserName: # string. Required when Destination = AzureVMs. Admin Login. 
    #vmsAdminPassword: # string. Required when Destination = AzureVMs. Password. 
    #TargetPath: # string. Required when Destination = AzureVMs. Destination Folder. 
    #AdditionalArgumentsForBlobCopy: # string. Optional Arguments (for uploading files to blob). 
    #AdditionalArgumentsForVMCopy: # string. Optional. Use when Destination = AzureVMs. Optional Arguments (for downloading files to VM). 
    #sasTokenTimeOutInMinutes: '240' # string. Optional. Use when Destination = AzureBlob. SAS Token Expiration Period In Minutes. Default: 240.
    #enableCopyPrerequisites: false # boolean. Optional. Use when Destination = AzureVMs. Enable Copy Prerequisites. Default: false.
    #CopyFilesInParallel: true # boolean. Optional. Use when Destination = AzureVMs. Copy in Parallel. Default: true.
    #CleanTargetBeforeCopy: false # boolean. Optional. Use when Destination = AzureVMs. Clean Target. Default: false.
    #skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.

Input

SourcePath - Sumber
string. Wajib diisi.

Lokasi file sumber. Nilai yang didukung termasuk Alur YAML dan Rilis Klasik mendukung variabel sistem yang telah ditentukan sebelumnya seperti Build.Repository.LocalPath.

Variabel rilis hanya didukung dalam rilis klasik. Simbol kartubebas (*) didukung di mana saja di jalur file atau nama file.


azureSubscription - Langganan Azure
Alias input: ConnectedServiceNameARM. string. Wajib diisi.

Tentukan nama koneksi layanan Azure Resource Manager yang dikonfigurasi untuk langganan tempat layanan Azure target, komputer virtual, atau akun penyimpanan berada. Lihat Gambaran umum Azure Resource Manager untuk detail selengkapnya.


Destination - Jenis Tujuan
string. Wajib diisi. Nilai yang diizinkan: AzureBlob (Azure Blob), AzureVMs (Azure VM).

Tentukan jenis tujuan.


storage - Akun Penyimpanan RM
Alias input: StorageAccountRM. string. Wajib diisi.

Tentukan akun penyimpanan ARM yang sudah ada sebelumnya. Ini adalah akun penyimpanan yang digunakan sebagai perantara untuk menyalin file ke Azure VM.


ContainerName - Nama Kontainer
string. Diperlukan saat Destination = AzureBlob.

Nama kontainer tempat file disalin. Jika kontainer yang ditentukan tidak ada di akun penyimpanan, kontainer tersebut akan dibuat.

Untuk membuat direktori virtual di dalam kontainer, gunakan input awalan blob. Misalnya, untuk lokasi https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/target , tentukan nama mycontainer kontainer dan awalan blob: vd1/vd2.


BlobPrefix - Awalan Blob
string. Pilihan. Gunakan saat Destination = AzureBlob.

Tentukan awalan yang dapat digunakan untuk memfilter file.

Contoh: Anda dapat menambahkan nomor build untuk memfilter file dari semua blob dengan nomor build yang sama.

Contoh: Jika Anda menentukan awalan myvd1blob , direktori virtual dibuat di dalam kontainer. File disalin dari sumber ke https://myaccount.blob.core.windows.net/mycontainer/myvd1/.


resourceGroup - Grup Sumber Daya
Alias input: EnvironmentNameRM. string. Diperlukan saat Destination = AzureVMs.

Tentukan nama Grup Sumber Daya target tempat file akan disalin.


ResourceFilteringMethod - Pilih Mesin Menurut
string. Pilihan. Gunakan saat Destination = AzureVMs. Nilai yang diizinkan: machineNames (Nama Mesin), tags. Nilai default: machineNames.

Tentukan nama atau tag host VM yang mengidentifikasi subset VM dalam grup sumber daya. Tag hanya didukung untuk sumber daya yang dibuat melalui Azure Resource Manager.


MachineNames - Kriteria Filter
string. Pilihan. Gunakan saat Destination = AzureVMs.

Berikan daftar nama VM atau nama tag yang mengidentifikasi VM yang akan ditargetkan tugas. Kriteria filter yang valid meliputi:

  • Nama Grup Sumber Daya Azure.
  • Variabel output dari tugas sebelumnya.
  • Daftar nama tag atau nama VM yang dibatasi koma.
  • Format nama VM menggunakan daftar FQDN atau alamat IP yang dipisahkan koma.
  • Format nama tag untuk filter sebagai {TagName}:{Value} Contoh: Role:DB;OS:Win8.1

vmsAdminUserName - Admin Masuk
string. Diperlukan saat Destination = AzureVMs.

Berikan nama pengguna akun dengan izin administratif pada semua VM target.

  • Format yang didukung meliputi: username, domain\username, machine-name\username, dan .\username.
  • Format UPN termasuk username@domain.com dan akun sistem bawaan seperti NT Authority\System tidak didukung.

vmsAdminPassword - Password
string. Diperlukan saat Destination = AzureVMs.

Berikan kata sandi untuk Admin Login parameter .

Untuk menemukan variabel, temukan Admin Login parameter . Pilih ikon gembok untuk variabel yang ditentukan di tab Variables untuk melindungi nilai dan menyisipkan nama variabel di sini.


TargetPath - Folder Tujuan
string. Diperlukan saat Destination = AzureVMs.

Tentukan jalur ke folder di Azure VM tempat file akan disalin.

Variabel lingkungan seperti $env:windir dan $env:systemroot didukung. Contoh: $env:windir\FabrikamFiber\Web dan c:\FabrikamFiber


AdditionalArgumentsForBlobCopy - Argumen Opsional (untuk mengunggah file ke blob)
string.

Berikan argumen tambahan untuk AzCopy.exe digunakan saat mengunggah ke Blob dan mengunduh ke VM. Lihat Mentransfer data dengan Utilitas Command-Line AzCopy untuk detailnya.

Untuk akun penyimpanan Premium yang hanya mendukung blob halaman Azure yang digunakan --blob-type=PageBlob sebagai argumen tambahan.

Argumen default termasuk --log-level=INFO (default) dan --recursive (jika nama kontainer bukan $root).


AdditionalArgumentsForVMCopy - Argumen Opsional (untuk mengunduh file ke VM)
string. Opsional. Gunakan saat Destination = AzureVMs.

Berikan argumen tambahan untuk AzCopy.exe yang akan diterapkan saat mengunduh ke VM seperti, --check-length=true.

Jika tidak ada argumen opsional yang ditentukan, berikut ini ditambahkan secara default:

  • --log-level=INFO
  • --log-level=DEBUG (Jika alur berjalan dalam set mode debug)
  • --recursive

sasTokenTimeOutInMinutes - Periode kedaluwarsa token SAS dalam hitung menit
string. Pilihan. Gunakan saat Destination = AzureBlob. Nilai default: 240.

Tentukan waktu dalam menit setelah token SAS untuk kontainer akan kedaluwarsa. Secara default, token ini kedaluwarsa setelah 4 jam.


enableCopyPrerequisites - Aktifkan Prasyarat Salin
boolean. Pilihan. Gunakan saat Destination = AzureVMs. Nilai default: false.

Ketika diaktifkan, opsi ini menggunakan sertifikat yang ditandatangani sendiri untuk mengonfigurasi pendengar Windows Remote Management (WinRM) melalui protokol HTTPS pada port 5986. Konfigurasi ini diperlukan untuk melakukan operasi salin pada Azure VM.

  • Jika VM target diakses melalui load balancer, konfigurasikan aturan NAT masuk untuk mengizinkan akses pada port 5986.
  • Jika VM target dikaitkan dengan Kelompok Keamanan Jaringan (NSG), konfigurasikan aturan keamanan masuk untuk mengizinkan akses pada port 5986.

CopyFilesInParallel - Salin secara Paralel
boolean. Pilihan. Gunakan saat Destination = AzureVMs. Nilai default: true.

Tentukan true untuk menyalin file secara paralel dengan VM target.


CleanTargetBeforeCopy - Bersihkan Target
boolean. Pilihan. Gunakan saat Destination = AzureVMs. Nilai default: false.

Tentukan true untuk membersihkan folder tujuan sebelum menyalin file.


skipCACheck - Uji Sertifikat
boolean. Pilihan. Gunakan saat Destination = AzureVMs. Nilai default: true.

WinRM memerlukan sertifikat untuk transfer HTTPS saat menyalin file dari Blob penyimpanan perantara ke Azure VM.

Jika Anda menggunakan sertifikat yang ditandatangani sendiri, tentukan true untuk mencegah proses memvalidasi sertifikat dengan CA tepercaya.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tugas ini menentukan variabel output berikut, yang dapat Anda konsumsi dalam langkah-langkah hilir, pekerjaan, dan tahapan.

StorageContainerUri
URI kontainer tempat file disalin. Hanya berlaku saat tujuan yang dipilih adalah Azure Blob.

StorageContainerSasToken
SasToken untuk kontainer tempat file disalin. Hanya berlaku saat tujuan yang dipilih adalah Azure Blob.

Keterangan

AzureFileCopy@4 mendukung AzCopy.exe versi 10.8.0.

Catatan

Tugas ini ditulis di PowerShell dan hanya berfungsi saat dijalankan pada agen Windows. Jika alur Anda memerlukan agen Linux dan perlu menyalin file ke Akun Azure Storage, pertimbangkan untuk menjalankan az storage blob perintah dalam tugas Azure CLI sebagai alternatif.

Tugas ini digunakan untuk menyalin file aplikasi dan artefak lain yang diperlukan untuk menginstal aplikasi; seperti skrip PowerShell, modul PowerShell-DSC, dan lainnya.

Ketika targetnya adalah Azure VM, file pertama kali disalin ke kontainer blob Azure yang dihasilkan secara otomatis lalu diunduh ke VM. Kontainer dihapus setelah file berhasil disalin ke VM.

Tugas ini menggunakan AzCopy, utilitas baris perintah yang dibuat untuk menyalin data dengan cepat dari dan ke akun penyimpanan Azure. Tugas Azure File Copy versi 4 menggunakan AzCopy V10.

Azure File Copy versi 3 dan yang lebih rendah akan mengambil kunci Azure Storage untuk menyediakan akses. Azure File Copy versi 4 dan yang lebih tinggi mengharuskan Azure Storage diotorisasi melalui id Microsoft Entra atau token SAS. Autentikasi menggunakan perwakilan layanan dan identitas terkelola tersedia. Untuk identitas terkelola, hanya identitas terkelola di seluruh sistem yang didukung. Tingkat otorisasi yang diperlukan ditampilkan di Opsi 1: Gunakan ID Microsoft Entra.

Untuk menyebarkan Grup Sumber Daya Azure yang berisi komputer virtual secara dinamis, gunakan tugas Penyebaran Grup Sumber Daya Azure . Tugas ini memiliki templat sampel yang dapat melakukan operasi yang diperlukan untuk menyiapkan protokol WinRM HTTPS pada VM, membuka port 5986 di firewall, dan menginstal sertifikat pengujian.

Catatan

Jika Anda menyebarkan ke Situs Web Statis Azure sebagai kontainer di penyimpanan Blob, gunakan Versi 2 atau yang lebih tinggi dari tugas untuk mempertahankan nama kontainer $web .

Tugas ini mendukung autentikasi berdasarkan Azure Active Directory. Autentikasi menggunakan perwakilan layanan dan identitas terkelola tersedia. Untuk identitas terkelola, hanya identitas terkelola di seluruh sistem yang didukung.

Apa saja prasyarat Azure PowerShell untuk menggunakan tugas ini?

Tugas ini mengharuskan Azure PowerShell diinstal pada komputer yang menjalankan agen otomatisasi. Versi yang direkomendasikan adalah 1.0.2, tetapi tugas akan berfungsi dengan versi 0.9.8 dan yang lebih tinggi. Anda dapat menggunakan Azure PowerShell Installer v1.0.2 untuk mendapatkan ini.

Apa saja prasyarat WinRM untuk tugas ini?

Tugas ini menggunakan protokol HTTPS Windows Remote Management (WinRM) untuk menyalin file dari kontainer Blob penyimpanan ke Azure VM. Ini mengharuskan layanan Https WinRM dikonfigurasi pada VM, dan sertifikat yang sesuai diinstal.

Mengonfigurasi WinRM setelah pembuatan komputer virtual

Jika VM dibuat tanpa membuka port HTTPS WinRM, lakukan hal berikut:

  1. Konfigurasikan aturan akses masuk untuk mengizinkan HTTPS pada port 5986 dari setiap VM.
  2. Nonaktifkan pembatasan jarak jauh UAC.
  3. Tentukan kredensial untuk tugas mengakses VM menggunakan login tingkat administrator dalam nama pengguna formulir sederhana tanpa bagian domain apa pun.
  4. Instal sertifikat pada komputer yang menjalankan agen otomatisasi.
  5. Jika Anda menggunakan sertifikat yang ditandatangani sendiri, atur parameter Uji Sertifikat tugas.

Jenis koneksi layanan apa yang harus saya pilih?

  • Untuk akun penyimpanan Azure Resource Manager dan Azure Resource Manager VM, gunakan jenis koneksi layanan Azure Resource Manager. Lihat Mengotomatiskan penyebaran Grup Sumber Daya Azure menggunakan Perwakilan Layanan.

  • Saat menggunakan jenis koneksi layanan Azure Resource Manager, tugas secara otomatis memfilter akun penyimpanan Azure Resource Manager yang lebih baru yang sesuai, dan bidang lainnya. Misalnya, Grup Sumber Daya atau layanan cloud, dan VM.

Bagaimana cara membuat akun sekolah atau kantor untuk digunakan dengan tugas ini?

Akun yang sesuai dapat dibuat untuk digunakan dalam koneksi layanan:

  1. Gunakan portal Azure untuk membuat akun pengguna baru di Azure Active Directory.
  2. Tambahkan akun pengguna Azure Active Directory ke grup administrator bersama di langganan Azure Anda.
  3. Masuk ke portal Azure dengan akun pengguna ini dan ubah kata sandi.
  4. Gunakan kredensial akun ini dalam koneksi layanan. Penyebaran kemudian diproses menggunakan akun ini.

Jika tugas gagal, apakah salinan akan dilanjutkan?

Karena AzCopy V10 tidak mendukung file jurnal, tugas tidak dapat melanjutkan salinan. Anda harus menjalankan tugas lagi untuk menyalin semua file.

Apakah file log dan file rencana dibersihkan setelah salinan?

File log dan file rencana tidak dihapus oleh tugas. Untuk membersihkan file secara eksplisit, tambahkan langkah CLI dalam alur kerja menggunakan pekerjaan azcopy bersih.

Bagaimana cara menggunakan tugas penyalinan file Azure untuk menyalin file ke komputer virtual Azure yang tidak memiliki alamat IP publik?

Pastikan Anda menggunakan versi 4 dari tugas penyalinan file Azure. Jika tugas gagal, Anda dapat menambahkan langkah build untuk menjalankan perintah azcopy cp "source-file-path" "destination-file-path" untuk mengganti nilai sumber dan tujuan.

Kesalahan terlarang: 'AzCopy.exe keluar dengan kode keluar bukan nol saat mengunggah file ke penyimpanan blob' saat menggunakan tugas Azure File Copy

Agen yang dihosting ditetapkan secara acak setiap kali build dipicu, alamat IP agen akan berbeda pada setiap eksekusi. Jika alamat IP ini tidak ada dalam daftar IP yang diizinkan, komunikasi antara Azure DevOps dan akun penyimpanan gagal. Dalam skenario seperti itu, ikuti langkah-langkah yang diuraikan:

  1. Tambahkan langkah build menggunakan Azure CLI untuk mengidentifikasi alamat IP agen Microsoft Hosted Build saat runtime. Ini akan menambahkan alamat IP ke aturan Jaringan pada Akun Azure Storage.
  2. Jalankan langkah build untuk Akun Azure Storage Anda.
  3. Tambahkan langkah build lain menggunakan Azure CLI untuk menghapus alamat IP agen build dari aturan jaringan Akun Azure Storage.

Contoh

- task: AzureFileCopy@4
  inputs:
    SourcePath: 'Readme.md'
    azureSubscription: 'Azure'
    Destination: 'AzureBlob'
    storage: 'storageAccount'
    ContainerName: 'containerName'
    BlobPrefix: ''
  name: AzureFileCopy
  
- script: | 
    echo $(AzureFileCopy.StorageContainerUri)
    echo $(AzureFileCopy.StorageContainerSasToken)

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Agen yang dihost sendiri harus memiliki kemampuan yang cocok dengan tuntutan berikut untuk menjalankan pekerjaan yang menggunakan tugas ini: azureps
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 1.103.0 atau lebih tinggi
Kategori tugas Sebarkan