Bagikan melalui


AzureFileCopy@3 - Tugas salinan file Azure v3

Salin file ke Azure Blob Storage atau komputer virtual.

Sintaks

# Azure file copy v3
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@3
  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). 
    #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.
  # Output
    #outputStorageUri: # string. Storage Container URI. 
    #outputStorageContainerSasToken: # string. Storage Container SAS Token. 
    #sasTokenTimeOutInMinutes: # string. SAS Token Expiration Period In Minutes.

Input

SourcePath - Sumber
string. Wajib diisi.

Tentukan jalur absolut folder sumber, atau file pada komputer lokal, atau berbagi UNC. Anda dapat menggunakan variabel sistem yang telah ditentukan sebelumnya seperti $(Build.Repository.LocalPath). Nama yang berisi kartubebas seperti *.zip tidak didukung. Nilai atau ekspresi yang Anda tentukan harus mengembalikan satu folder 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. Opsional. 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 didukung untuk sumber daya yang dibuat hanya 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, ffweb, ffdb, atau tag seperti Role:DB, , WebOS:Win8.1.

Catatan: Pemisah yang valid untuk tag meliputi ,(koma), :(colon) dan ;(semicolon). Saat menyediakan beberapa tag, tugas hanya akan berjalan di VM yang berisi tag yang ditentukan. Secara default, tugas berjalan di semua VM.


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 administrator VM.

Input yang valid mencakup variabel yang ditentukan dalam alur build atau rilis seperti $(passwordVariable). Untuk mengamankan kata sandi, tandai sebagai secret.


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 yang dapat diterapkan saat mengunggah ke Blob seperti /NC:10.

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

  • /Y
  • /SetContentType
  • /Z
  • /V
  • /S - Ditambahkan ketika nama kontainer bukan $root.
  • /BlobType:page -Ditambahkan ketika akun penyimpanan yang ditentukan adalah akun premium.
  • /Pattern - Ditambahkan ketika jalur sumber adalah file. Disertakan dengan argumen opsional lain yang ditentukan.

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

Berikan argumen tambahan untuk AzCopy.exe yang dapat diterapkan saat mengunduh ke VM seperti /NC:10.

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

  • /Y
  • /S
  • /Z
  • /V

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

Ketika diaktifkan, menggunakan sertifikat yang ditandatangani sendiri untuk mengonfigurasi pendengar Windows Remote Management (WinRM) pada port 5986 alih-alih protokol HTTPS. Diperlukan untuk melakukan operasi salin pada Azure VM. Jika VM target menggunakan load balancer, konfigurasikan aturan NAT masuk untuk port target (5986). Hanya berlaku untuk ARM VM. Pada VM target yang terkait dengan Network Security Group (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. Menggunakan nilai ini dapat mengurangi waktu keseluruhan yang diperlukan untuk melakukan tindakan.


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

Menyetel nilai ini untuk true membersihkan folder tujuan sebelum melakukan tindakan salin.


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

Nilai default tidak akan memvalidasi jika sertifikat server ditandatangani oleh CA tepercaya sebelum menyambungkan melalui HTTPS.


outputStorageUri - URI Kontainer Penyimpanan
string.

Tentukan nama variabel yang digunakan untuk URI kontainer penyimpanan tempat file disalin. Hanya berlaku saat tujuan yang dipilih adalah Azure Blob.


outputStorageContainerSasToken - Token SAS Kontainer Penyimpanan
string.

Tentukan nama variabel yang digunakan untuk token SAS kontainer penyimpanan yang mengakses file yang disalin. Gunakan variabel ini sebagai input untuk tugas berikutnya. Secara default, token SAS kedaluwarsa setelah 4 jam.


sasTokenTimeOutInMinutes - Periode kedaluwarsa token SAS dalam menit
string.

Tentukan waktu dalam menit setelah token SAS akan kedaluwarsa. Hanya berlaku saat tujuan yang dipilih adalah Azure Blob.


Opsi kontrol tugas

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

Variabel output

Tidak ada.

Keterangan

Apa yang baru dalam Versi AzureFileCopy@3

  • AzureFileCopy@3 mendukung Modul Az dan berhenti mendukung titik akhir layanan klasik Azure.

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

  • Ketika targetnya adalah Azure VM, file pertama kali disalin ke kontainer Azure Blob 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 dari dan ke akun penyimpanan Azure dengan cepat. Tugas versi 3 atau di bawahnya menggunakan AzCopy V7.

  • 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 HTTPS WinRM 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 untuk mempertahankan nama kontainer $web .

FAQ

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 berfungsi dengan versi 0.9.8 dan yang lebih tinggi. Gunakan Azure PowerShell Installer v1.0.2 untuk mendapatkan versi yang direkomendasikan.

Apa saja prasyarat WinRM untuk tugas ini?

Tugas ini menggunakan protokol HTTPS WinRM untuk menyalin file dari kontainer Blob penyimpanan ke Azure VM. Layanan Https WinRM harus dikonfigurasi pada VM, dan sertifikat yang sesuai diinstal.

Jika VM dibuat tanpa membuka port HTTPS WinRM, ikuti langkah-langkah berikut:

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

Jenis koneksi layanan apa yang harus saya pilih?

Tabel berikut ini mencantumkan jenis akun penyimpanan dan koneksi layanan terkait. Untuk mengidentifikasi apakah akun penyimpanan didasarkan pada API klasik atau API Resource Manager, masuk ke portal Azure dan cari akun Penyimpanan (Klasik) atau akun Penyimpanan.

Jenis akun penyimpanan Koneksi Layanan Azure di TFS/TS
Resource Manager Koneksi layanan Azure Resource Manager
Classic Koneksi layanan Azure dengan autentikasi berbasis sertifikat atau berbasis kredensial menggunakan akun sekolah atau kerja
  • Untuk sumber daya klasik Azure, gunakan jenis koneksi layanan Azure dengan autentikasi berbasis sertifikat atau kredensial. Jika Anda menggunakan autentikasi berbasis kredensial, pastikan kredensial tersebut untuk akun sekolah atau kantor. Akun Microsoft seperti joe@live.com dan joe@hotmail.com tidak didukung.

  • Untuk Azure Resource Manager VM, gunakan jenis koneksi layanan Azure Resource Manager. Untuk detail selengkapnya, lihat Mengotomatiskan penyebaran Grup Sumber Daya Azure menggunakan Perwakilan Layanan.

  • Jika menggunakan jenis koneksi layanan Azure Resource Manager, atau jenis koneksi layanan Azure dengan autentikasi berbasis sertifikat, tugas secara otomatis memfilter akun penyimpanan klasik yang sesuai, akun penyimpanan Azure Resource Manager yang lebih baru, dan bidang lainnya. Misalnya, Grup Sumber Daya atau layanan cloud, dan komputer virtual.

Catatan

Saat ini jenis koneksi layanan Azure dengan autentikasi berbasis kredensial tidak memfilter penyimpanan, Grup Sumber Daya atau layanan cloud, dan bidang komputer virtual.

Bagaimana cara memperbaiki kegagalan '403: Permintaan ini tidak berwenang untuk melakukan operasi ini menggunakan izin ini'?

Saat Azure DevOps membuat dan mengotorisasi koneksi layanan ke Azure, Azure DevOps membuat Pendaftaran Aplikasi di Direktori Aktif langganan Anda. Identitas ini secara otomatis ditambahkan dengan Contributor peran ke semua sumber daya di Grup Sumber Daya yang Anda pilih untuk diotorisasi. Untuk mengunggah Blob ke akun penyimpanan, menjadi Contributortidak cukup. Anda harus menetapkan Storage Blob Data Contributor peran secara manual ke identitas pendaftaran aplikasi.

Salin identitas aplikasi dari entri yang diwariskan yang ada seperti Contributor yang akan Anda lihat di panel IAM dan cari secara eksplisit untuknya di Add role assignment UI. Identitas tidak tercantum dalam menu drop-down, Anda harus mencari pengidentifikasinya.

Apa yang terjadi jika Grup Sumber Daya saya berisi VM Klasik dan Resource Manager?

Jika Grup Sumber Daya yang ditentukan berisi VM Azure Resource Manager dan Klasik, kumpulan VM yang ditargetkan bergantung pada jenis koneksi.

  • Untuk koneksi berbasis sertifikat dan koneksi berbasis kredensial, operasi salin hanya dilakukan pada VM Klasik.
  • Untuk koneksi berbasis Nama Perwakilan Layanan, operasi salin hanya dilakukan pada Resource Manager VM.

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

Akun yang sesuai dapat dengan mudah 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 baru untuk akun ini dalam koneksi layanan. Penyebaran akan diproses menggunakan akun ini.

Contoh

# Example: Upload files from Pipeline staging directory to blob storage.
- task: AzureFileCopy@3
  displayName: 'Example Step Name'
  inputs:
    sourcePath: '$(Build.ArtifactStagingDirectory)/BlobsToUpload'
    additionalArgumentsForBlobCopy: |
      '/Y' # Supresses all AZCopy Confirmations. Used here to allow overwrites
      '/Pattern:*' # Pattern of files to copy.
      '/S' # Recursive Copy
    azureSubscription: 'Subscription Name'
    destination: AzureBlob
    storage: storageaccountname
    containerName: storagecontainername
    blobPrefix: targetdirectoryincontainer

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