AzureFileCopy@5 - Azure dosya kopyalama v5 görevi

Dosyaları Azure Blob Depolama veya sanal makinelere kopyalayın.

Syntax

# Azure file copy v5
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@5
  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. Clean Target. Default: false.
    #skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.

Girişler

SourcePath - Kaynak
string. Gereklidir.

Kaynak dosyaların konumu. Desteklenen değerler YAML Pipelines ve Klasik Yayın desteği Build.Repository.LocalPath gibi önceden tanımlanmış sistem değişkenlerini içerir.

Yayın değişkenleri yalnızca klasik sürümlerde desteklenir. Joker karakter simgesi (*) dosya yolunun veya dosya adının herhangi bir yerinde desteklenir.


azureSubscription - Azure Aboneliği
Giriş diğer adı: ConnectedServiceNameARM. string. Gereklidir.

Hedef Azure hizmetinin, sanal makinenin veya depolama hesabının bulunduğu abonelik için yapılandırılmış bir Azure Resource Manager hizmet bağlantısının adını belirtin. Diğer ayrıntılar için bkz. Azure Resource Manager genel bakış.


Destination - Hedef Türü
string. Gereklidir. İzin verilen değerler: AzureBlob (Azure Blob), AzureVMs (Azure VM'leri).

Hedef türünü belirtin.


storage - RM Depolama Hesabı
Giriş diğer adı: StorageAccountRM. string. Gereklidir.

Önceden var olan bir ARM depolama hesabı belirtin. Bu, Azure VM'lerine dosya kopyalamak için aracı olarak kullanılan depolama hesabıdır.


ContainerName - Kapsayıcı Adı
string. olduğunda Destination = AzureBlobgereklidir.

Dosyaların kopyalandığı kapsayıcının adı. Belirtilen kapsayıcı depolama hesabında yoksa oluşturulur.

Kapsayıcı içinde bir sanal dizin oluşturmak için blob ön eki girişini kullanın. Örneğin, hedef konum https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/için kapsayıcı adını mycontainer ve blob ön ekini belirtin: vd1/vd2.


BlobPrefix - Blob Ön Eki
string. İsteğe bağlı. olduğunda Destination = AzureBlobkullanın.

Azure Blob kapsayıcısı içindeki hedef sanal dizin için bir ön ek belirtin. Bu, birden çok öğeyle SourcePath eşleşebilecek bir joker karakter içerdiğinde geçerlidir.

Örnek: Dosyaları tüm bloblardan aynı derleme numarasıyla önek olarak eklemek için bir derleme numarası ekleyebilirsiniz.

Örnek: Blob ön eki myvd1belirtirseniz kapsayıcının içinde bir sanal dizin oluşturulur. Dosyalar kaynaktan öğesine https://myaccount.blob.core.windows.net/mycontainer/myvd1/kopyalanır.

joker karakteri olmayan tek bir öğe olması durumunda SourcePath , bu blob ön eki hedef blob adı olarak işlev görür.


resourceGroup - Kaynak Grubu
Giriş diğer adı: EnvironmentNameRM. string. olduğunda Destination = AzureVMsgereklidir.

Dosyaların kopyalandığı hedef Kaynak Grubunun adını belirtin.


ResourceFilteringMethod - Makinelere Göre Seç
string. İsteğe bağlı. olduğunda Destination = AzureVMskullanın. İzin verilen değerler: machineNames (Makine Adları), tags. Varsayılan değer: machineNames.

Bir kaynak grubundaki VM'lerin alt kümesini tanımlayan bir VM ana bilgisayar adı veya etiketi belirtin. Etiketler yalnızca Azure Resource Manager aracılığıyla oluşturulan kaynaklar için desteklenir.


MachineNames - Filtre Ölçütleri
string. İsteğe bağlı. olduğunda Destination = AzureVMskullanın.

Görevin hedefleeceği VM'leri tanımlayan VM adlarının veya etiket adlarının listesini sağlayın. Geçerli filtre ölçütleri şunları içerir:

  • Azure Kaynak Grubunun adı.
  • Önceki bir görevden bir çıkış değişkeni.
  • Etiket adlarının veya VM adlarının virgülle ayrılmış listesi.
  • FQDN'lerin veya IP adreslerinin virgülle ayrılmış listesini kullanarak VM adlarını biçimlendirin.
  • Filtrenin etiket adlarını Örnek olarak {TagName}:{Value} biçimlendirin: Role:DB;OS:Win8.1

vmsAdminUserName - Yönetici Oturum Açma
string. olduğunda Destination = AzureVMsgereklidir.

Tüm hedef VM'lerde yönetici izinlerine sahip bir hesabın kullanıcı adını belirtin.

  • Desteklenen biçimler şunlardır: username, domain\username, machine-name\usernameve .\username.
  • ve gibi NT Authority\System yerleşik sistem hesaplarını içeren username@domain.com UPN biçimleri desteklenmez.

vmsAdminPassword - Parola
string. olduğunda Destination = AzureVMsgereklidir.

parametresi için parolayı Admin Login belirtin.

Değişkenini bulmak için parametresini Admin Login bulun. Değeri korumak ve değişken adını buraya eklemek için sekmede Variables tanımlanan değişkenin asma kilit simgesini seçin.


TargetPath - Hedef Klasör
string. olduğunda Destination = AzureVMsgereklidir.

Azure VM'lerinde dosyaların kopyalandığı klasörün yolunu belirtin.

ve $env:systemroot gibi $env:windir ortam değişkenleri desteklenir. Örnekler: $env:windir\FabrikamFiber\Web ve c:\FabrikamFiber


AdditionalArgumentsForBlobCopy - İsteğe Bağlı Bağımsız Değişkenler (dosyaları bloba yüklemek için)
string.

Blob'a AzCopy.exe yüklenirken ve VM'lere indirilirken kullanılacak ek bağımsız değişkenler sağlayın. Ayrıntılar için bkz. AzCopy Command-Line Yardımcı Programı ile veri aktarma .

Yalnızca Azure sayfa Bloblarını destekleyen Premium depolama hesapları için ek bağımsız değişken olarak kullanılır --blob-type=PageBlob .

Varsayılan bağımsız değişkenler arasında --log-level=INFO (varsayılan) ve --recursive (kapsayıcı adı değilse $root) bulunur.


AdditionalArgumentsForVMCopy - İsteğe Bağlı Bağımsız Değişkenler (dosyaları VM'ye indirmek için)
string. İsteğe bağlı. olduğunda Destination = AzureVMskullanın.

GIBI VM'lere AzCopy.exe indirilirken --check-length=trueuygulanacak olan ek bağımsız değişkenler sağlayın.

İsteğe bağlı bağımsız değişken belirtilmezse, varsayılan olarak aşağıdakiler eklenir:

  • --log-level=INFO
  • --log-level=DEBUG (İşlem hattı hata ayıklama modu kümesinde çalışıyorsa)
  • --recursive

sasTokenTimeOutInMinutes - Dakika cinsinden SAS Belirteci Süre Sonu
string. İsteğe bağlı. olduğunda Destination = AzureBlobkullanın. Varsayılan değer: 240.

Kapsayıcı için SAS belirtecinin süresinin dolacağı süreyi dakika cinsinden belirtin. Varsayılan olarak, bu belirtecin süresi 4 saat sonra dolar.


enableCopyPrerequisites - Kopyalama Önkoşullarını Etkinleştirme
boolean. İsteğe bağlı. olduğunda Destination = AzureVMskullanın. Varsayılan değer: false.

Bu seçenek etkinleştirildiğinde, 5986 numaralı bağlantı noktasında HTTPS protokolü üzerinden Windows Uzaktan Yönetim (WinRM) dinleyicisini yapılandırmak için otomatik olarak imzalanan bir sertifika kullanır. Bu yapılandırma, Azure VM'lerinde kopyalama işlemleri gerçekleştirmek için gereklidir. Yalnızca ARM VM'leri için geçerlidir.

  • Hedef VM'lere yük dengeleyici aracılığıyla erişiliyorsa, 5986 numaralı bağlantı noktasında erişime izin vermek için bir gelen NAT kuralı yapılandırın.
  • Hedef VM'ler bir Ağ Güvenlik Grubu (NSG) ile ilişkilendirilmişse, 5986 numaralı bağlantı noktasında erişime izin vermek için bir gelen güvenlik kuralı yapılandırın.

CopyFilesInParallel - Paralel Olarak Kopyala
boolean. İsteğe bağlı. olduğunda Destination = AzureVMskullanın. Varsayılan değer: true.

Dosyaları hedef VM'lere paralel olarak kopyalamak için belirtin true .


CleanTargetBeforeCopy - Hedefi Temizle
boolean. Varsayılan değer: false.

Dosyaları kopyalamadan önce hedef klasörü temizlemek için belirtin true .


skipCACheck - Test Sertifikası
boolean. İsteğe bağlı. olduğunda Destination = AzureVMskullanın. Varsayılan değer: true.

WinRM, ara depolama Blobundaki dosyaları Azure VM'lerine kopyalarken HTTPS aktarımı için bir sertifika gerektirir.

Otomatik olarak imzalanan bir sertifika kullanıyorsanız, işlemin sertifikayı güvenilir bir CA ile doğrulamasını önlemek için belirtin true .


Görev denetim seçenekleri

Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Bu görev aşağı akış adımlarında, işlerde ve aşamalarda kullanabileceğiniz aşağıdaki çıkış değişkenlerini tanımlar.

StorageContainerUri
Dosyaların kopyalandığı kapsayıcının Uri'si. Yalnızca seçilen hedef Azure Blob olduğunda geçerlidir.

StorageContainerSasToken
Dosyaların kopyalandığı kapsayıcı için SasToken. Yalnızca seçilen hedef Azure Blob olduğunda geçerlidir.

Açıklamalar

AzureFileCopy@5, AzCopy.exe 10.12.2 sürümünü destekler.

Not

Depolama hesaplarınızda depolama hesabı anahtarlarının ve SAS belirteçlerinin kullanımını engelleyebilirsiniz . Bu durumlarda SAS belirteçlerine dayalı AzureFileCopy@5 görevi kullanılamaz.

AzureFileCopy@6 görevi bunun yerine blob depolamaya erişmek için Azure RBAC kullanır. Bu, uygun RBAC rolüne sahip olmak için kullanılan hizmet bağlantısının kimliğini gerektirir; örneğin Depolama Blob Verileri Katkıda Bulunanı. Bkz. Blob verilerine erişmek için Azure rolü atama.

AzureFileCopy@6 görevi, iş yükü kimlik federasyonu kullanan hizmet bağlantılarını da destekler.

Not

Bu görev PowerShell'de yazılır ve yalnızca Windows aracılarında çalıştırıldığında çalışır. İşlem hatlarınız Linux aracıları gerektiriyorsa ve dosyaları bir Azure Depolama Hesabına kopyalamanız gerekiyorsa, alternatif olarak Azure CLI görevinde komut çalıştırmayı az storage blob göz önünde bulundurun.

Görev, uygulamayı yüklemek için gerekli olan uygulama dosyalarını ve diğer yapıtları kopyalamak için kullanılır; PowerShell betikleri, PowerShell-DSC modülleri ve daha fazlası gibi.

Hedef Azure VM'leri olduğunda dosyalar önce otomatik olarak oluşturulan bir Azure blob kapsayıcısına kopyalanır ve ardından VM'lere indirilir. Dosyalar VM'lere başarıyla kopyalandıktan sonra kapsayıcı silinir.

Görev, Azure depolama hesaplarından ve azure depolama hesaplarına hızlı veri kopyalamak için oluşturulan komut satırı yardımcı programı AzCopy'yi kullanır. Azure Dosya Kopyalama görevinin 5. sürümü AzCopy V10 kullanır.

Azure Dosya Kopyalama sürüm 3 ve daha düşük, erişim sağlamak için Azure Depolama anahtarını alır. Azure Dosya Kopyalama sürüm 4 ve üzeri, Azure Depolama'nın Microsoft Entra ID veya SAS belirteci aracılığıyla yetkilendirilmiş olmasını gerektirir. Hizmet sorumlusu ve yönetilen kimlik kullanarak kimlik doğrulaması kullanılabilir. Yönetilen kimlikler için yalnızca sistem genelinde yönetilen kimlik desteklenir. Gerekli yetkilendirme düzeyi 1. Seçenek: Microsoft Entra ID kullanma bölümünde gösterilir.

Sanal makineler içeren Azure Kaynak Gruplarını dinamik olarak dağıtmak için Azure Kaynak Grubu Dağıtım görevini kullanın. Bu görev, VM'lerde WinRM HTTPS protokollerini ayarlamak, güvenlik duvarında 5986 numaralı bağlantı noktasını açmak ve test sertifikasını yüklemek için gerekli işlemleri gerçekleştirebilen örnek bir şablona sahiptir.

Not

Azure Statik Web Sitelerine Blob depolamada kapsayıcı olarak dağıtıyorsanız, $web kapsayıcı adını korumak için görevin Sürüm 2 veya üzerini kullanın.

Bu görevi kullanmak için Azure PowerShell önkoşulları nelerdir?

Görev, otomasyon aracısını çalıştıran makineye Azure PowerShell yüklenmesini gerektirir. Önerilen sürüm 1.0.2'dir, ancak görev 0.9.8 ve üzeri sürümlerle çalışır. Bunu almak için Azure PowerShell Installer v1.0.2'yi kullanabilirsiniz.

Bu görevin WinRM önkoşulları nelerdir?

Görev, depolama Blobu kapsayıcısından Azure VM'lerine dosyaları kopyalamak için Windows Uzaktan Yönetim (WinRM) HTTPS protokollerini kullanır. Bunun için VM'lerde WinRM HTTPS hizmetinin yapılandırılması ve uygun bir sertifikanın yüklü olması gerekir.

Sanal makine oluşturulduktan sonra WinRM'yi yapılandırma

VM'ler WinRM HTTPS bağlantı noktaları açılmadan oluşturulduysa aşağıdakileri gerçekleştirin:

  1. Her vm'nin 5986 numaralı bağlantı noktasında HTTPS'ye izin vermek için bir gelen erişim kuralı yapılandırın.
  2. UAC uzaktan kısıtlamalarını devre dışı bırakın.
  3. Herhangi bir etki alanı bölümü olmadan basit form kullanıcı adıyla yönetici düzeyinde oturum açma bilgileri kullanarak VM'lere erişmek için görevin kimlik bilgilerini belirtin.
  4. Otomasyon aracısını çalıştıran makineye bir sertifika yükleyin.
  5. Otomatik olarak imzalanan bir sertifika kullanıyorsanız görevin Test Sertifikası parametresini ayarlayın.

Ne tür bir hizmet bağlantısı seçmeliyim?

  • Azure Resource Manager depolama hesapları ve Azure Resource Manager VM'leri için Azure Resource Manager hizmeti bağlantı türünü kullanın. Bkz. Hizmet Sorumlusu kullanarak Azure Kaynak Grubu dağıtımlarını otomatikleştirme.

  • Azure Resource Manager hizmeti bağlantı türü kullanılırken görev, uygun yeni Azure Resource Manager depolama hesaplarını ve diğer alanları otomatik olarak filtreler. Örneğin, Kaynak Grubu veya bulut hizmeti ve VM'ler.

Bu görevle kullanmak için bir okul veya iş hesabı Nasıl yaparım??

Hizmet bağlantısında kullanmak için uygun bir hesap oluşturulabilir:

  1. Azure Active Directory'de yeni bir kullanıcı hesabı oluşturmak için Azure portal kullanın.
  2. Azure Active Directory kullanıcı hesabını Azure aboneliğinizdeki ortak yöneticiler grubuna ekleyin.
  3. Bu kullanıcı hesabıyla Azure portal oturum açın ve parolayı değiştirin.
  4. Hizmet bağlantısında bu hesabın kimlik bilgilerini kullanın. Dağıtımlar daha sonra bu hesap kullanılarak işlenir.

Görev başarısız olursa kopyalama devam edecek mi?

AzCopy V10 günlük dosyalarını desteklemediği için görev kopyalama işlemine devam edemiyor. Tüm dosyaları kopyalamak için görevi yeniden çalıştırmanız gerekir.

Günlük dosyaları ve plan dosyaları kopyadan sonra temizleniyor mu?

Günlük ve plan dosyaları görev tarafından silinmiyor. Dosyaları açıkça temizlemek için azcopy jobs clean komutunu kullanarak iş akışına bir CLI adımı ekleyin.

Genel IP adresi olmayan bir Azure sanal makinesine dosya kopyalamak için Azure dosya kopyalama görevini Nasıl yaparım? kullanabilirsiniz?

Azure dosya kopyalama görevinin 5. sürümünü kullandığınızdan emin olun. Görev başarısız olursa, kaynak ve hedef değerleri değiştirmek üzere komutunu azcopy cp "source-file-path" "destination-file-path" çalıştırmak için bir derleme adımı ekleyebilirsiniz.

Yasak hatası: Azure Dosya Kopyalama görevi kullanılırken 'AzCopy.exe blob depolamaya dosya yüklerken sıfır olmayan çıkış koduyla çıkıldı'

Barındırılan aracılar, bir derleme her tetiklendiğinde rastgele atanır ve aracı IP adresleri her çalıştırmada farklı olur. Bu IP adresleri izin verilen IP listenizde yoksa, Azure DevOps ile depolama hesabı arasındaki iletişim başarısız olur. Bu tür senaryolarda, şu adımları izleyin:

  1. Çalışma zamanında Microsoft Barındırılan Derleme aracısının IP adresini belirlemek için Azure CLI kullanarak bir derleme adımı ekleyin. IP adresini Azure Depolama Hesabı'nda Ağ kuralına ekler.
  2. Azure Depolama Hesabınız için derleme adımını çalıştırın.
  3. Derleme aracısının IP adresini Azure Depolama Hesabı ağ kuralından kaldırmak için Azure CLI kullanarak başka bir derleme adımı ekleyin.

Örnekler

trigger:
- main

pool:
  vmImage: windows-latest

steps:
- task: AzureFileCopy@5
  inputs:
    SourcePath: 'Readme.md'
    azureSubscription: 'MyAzureSubscription'
    Destination: 'AzureBlob'
    storage: 'MyStorage'
    ContainerName: 'MyContainerName'
  name: AzureFileCopy
  
- script: | 
    echo $(AzureFileCopy.StorageContainerUri)
    echo $(AzureFileCopy.StorageContainerSasToken)

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalışır Agent, DeploymentGroup
Talep Şirket içi barındırılan aracılar, bu görevi kullanan işleri çalıştırmak için aşağıdaki taleplerle eşleşen özelliklere sahip olmalıdır: azureps
Özellikler Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenler Herhangi biri
Aracı sürümü 1.103.0 veya üzeri
Görev kategorisi Dağıtma