Share via


AzureFileCopy@3 - Azure dosya kopyalama v3 görevi

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

Syntax

# 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.

Girişler

SourcePath - Kaynak
string. Gereklidir.

Kaynak klasörün veya yerel makinedeki dosyanın ya da UNC paylaşımının mutlak yolunu belirtin. gibi $(Build.Repository.LocalPath)önceden tanımlanmış sistem değişkenlerini kullanabilirsiniz. gibi *.zip joker karakterler içeren adlar desteklenmez. Belirttiğiniz değer veya ifade tek bir klasör veya dosya adı döndürmelidir.


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 konumu 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ı. when Destination = AzureBlobkullanın.

Dosyaları filtrelemek için kullanılabilecek bir ön ek belirtin.

Örnek: Aynı derleme numarasına sahip tüm bloblardan dosyaları filtrelemek için bir derleme numarası ekleyebilirsiniz.

Örnek: Bir 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.


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

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


ResourceFilteringMethod - Makine Seçme Ölçütü
string. İsteğe bağlı. when Destination = AzureVMskullanın. İzin verilen değerler: machineNames (Makine Adları), tags. Varsayılan değer: machineNames.

Bir kaynak grubundaki VM'lerin bir 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ı. when 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 Grubu adı.
  • Önceki görevlerden 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ı olarak {TagName}:{Value}biçimlendirin. Örnek: Role:DB;OS:Win8.1, ffweb, ffdb, veya gibi Role:DBetiketler , , OS:Win8.1Web.

Not: Etiketler için geçerli sınırlayıcılar :(virgül), :(kolanı) ve ;(semicolon) içerir. Birden çok etiket sağlarken, görev yalnızca belirtilen etiketleri içeren VM'lerde çalışır. Varsayılan olarak, görev tüm VM'lerde çalışır.


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 yerleşik sistem hesapları NT Authority\System dahil username@domain.com UPN biçimleri desteklenmez.

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

VM'lerin yönetici parolasını belirtin.

Geçerli giriş, gibi $(passwordVariable)derleme veya yayın işlem hatlarında tanımlanan değişkenleri içerir. Parolanın güvenliğini sağlamak için olarak işaretleyin secret.


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.

Gibi /NC:10Bloblara AzCopy.exe yüklenirken uygulanabilecek 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ğıdaki bağımsız değişkenler eklenir.

  • /Y
  • /SetContentType
  • /Z
  • /V
  • /S - Kapsayıcı adı olmadığında $rooteklenir.
  • /BlobType:page -Belirtilen depolama hesabı bir premium hesap olduğunda eklenir.
  • /Pattern - Kaynak yol bir dosya olduğunda eklenir. Belirtilen diğer isteğe bağlı bağımsız değişkenlere eklenir.

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

gibi /NC:10VM'lere AzCopy.exe indirilirken uygulanabilecek 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.

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

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

Etkinleştirildiğinde, HTTPS protokolü yerine 5986 numaralı bağlantı noktasında Windows Uzaktan Yönetim (WinRM) dinleyicisini yapılandırmak için otomatik olarak imzalanan bir sertifika kullanır. Azure VM'lerinde kopyalama işlemi gerçekleştirmek için gereklidir. Hedef VM'ler yük dengeleyici kullanıyorsa, hedef bağlantı noktası (5986) için gelen NAT kurallarını yapılandırın. Yalnızca ARM VM'leri için geçerlidir. Ağ Güvenlik Grubu (NSG) ile ilişkili hedef VM'lerde, 5986 numaralı bağlantı noktasında erişime izin verecek 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 . Bu değerin kullanılması, eylemi gerçekleştirmek için geçen genel süreyi azaltabilir.


CleanTargetBeforeCopy - Hedefi Temizle
boolean. İsteğe bağlı. olduğunda Destination = AzureVMskullanın. Varsayılan değer: false.

Kopyalama eylemini gerçekleştirmeden önce bu değeri true hedef klasörü temizecek şekilde ayarlamak.


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

Varsayılan değer, HTTPS üzerinden bağlanmadan önce sunucu sertifikasının güvenilir bir CA tarafından imzalanıp imzalanmadığını doğrulamaz.


outputStorageUri - Depolama Kapsayıcısı URI'si
string.

Dosyaların kopyalandığı depolama kapsayıcısı URI'si için kullanılan değişkenin adını belirtin. Yalnızca seçilen hedef bir Azure Blob olduğunda geçerlidir.


outputStorageContainerSasToken - Depolama Kapsayıcısı SAS Belirteci
string.

Kopyalanan dosyalara erişen depolama kapsayıcısı SAS belirteci için kullanılan değişkenin adını belirtin. Sonraki görevlere giriş olarak bu değişkeni kullanın. Varsayılan olarak SAS belirtecinin süresi 4 saat sonra dolar.


sasTokenTimeOutInMinutes - Dakika cinsinden SAS Belirteci Süre Sonu
string.

SAS belirtecinin süresinin dolacağı süreyi dakika cinsinden belirtin. Yalnızca seçilen hedef Azure Blob olduğunda geçerlidir.


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

Yok.

Açıklamalar

Sürüm AzureFileCopy@3'deki yenilikler

  • AzureFileCopy@3 Az Module'i destekler ve klasik Azure hizmet uç noktasını desteklemeyi durdurur.

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

  • 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ızla veri kopyalamak için oluşturulan komut satırı yardımcı programı AzCopy'yi kullanır. Görev sürümü 3 veya altı AzCopy V7'yi kullanır.

  • 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 Sürüm 2 veya üzerini kullanın.

SSS

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. Önerilen sürümü almak için Azure PowerShell Installer v1.0.2'yi kullanın.

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

Görev, depolama Blobu kapsayıcısından Azure VM'lerine dosyaları kopyalamak için WinRM HTTPS protokolunu kullanır. WinRM HTTPS hizmeti VM'lerde yapılandırılmalıdır ve uygun bir sertifika yüklenmelidir.

VM'ler WinRM HTTPS bağlantı noktaları açılmadan oluşturulduysa şu adımları izleyin:

  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. Etki alanı başvurusu olmadan kullanıcı adı olarak biçimlendirilmiş yönetici düzeyinde oturum açma bilgilerini 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 için görevin Test Sertifikası parametresini ayarlayın.

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

Aşağıdaki tabloda depolama hesabı türleri ve ilişkili hizmet bağlantıları listelenmiştir. Depolama hesabının klasik API'leri mi yoksa Resource Manager API'lerini mi temel alındığını belirlemek için Azure portal oturum açın ve Depolama hesapları (Klasik) veya Depolama hesapları için arama yapın.

Depolama hesabı türü TFS/TS'de Azure Hizmet Bağlantıları
Resource Manager Azure Resource Manager hizmet bağlantısı
Klasik Okul veya iş hesabı kullanarak sertifika tabanlı veya kimlik bilgileri tabanlı kimlik doğrulaması ile Azure hizmeti bağlantısı
  • Klasik Azure kaynakları için sertifika veya kimlik bilgileri tabanlı kimlik doğrulaması ile bir Azure hizmet bağlantı türü kullanın. Kimlik bilgileri tabanlı kimlik doğrulaması kullanıyorsanız, kimlik bilgilerinin bir okul veya iş hesabı için olduğundan emin olun. ve joe@hotmail.com gibi joe@live.com Microsoft hesapları desteklenmez.

  • Azure Resource Manager VM'leri için Azure Resource Manager hizmeti bağlantı türünü kullanın. Diğer ayrıntılar için bkz. Hizmet Sorumlusu kullanarak Azure Kaynak Grubu dağıtımlarını otomatikleştirme.

  • Azure Resource Manager hizmet bağlantı türü veya sertifika tabanlı kimlik doğrulamasıyla bir Azure hizmet bağlantı türü kullanıyorsanız, görev uygun klasik depolama hesaplarını, daha yeni Azure Resource Manager depolama hesaplarını ve diğer alanları otomatik olarak filtreler. Örneğin, Kaynak Grubu veya bulut hizmeti ve sanal makineler.

Not

Şu anda kimlik bilgileri tabanlı kimlik doğrulamasına sahip bir Azure hizmeti bağlantı türü depolama, Kaynak Grubu veya bulut hizmeti ve sanal makine alanlarını filtrelemez.

Nasıl yaparım? '403: Bu istek bu izni kullanarak bu işlemi gerçekleştirme yetkisine sahip değil' hatasını düzeltti mi?

Azure DevOps, Azure'a hizmet bağlantısını oluşturup yetkilendirildiğinde, aboneliğinizin Active Directory'sinde bir Uygulama Kaydı oluşturur. Bu kimlik, yetkilendirmeyi seçtiğiniz Kaynak Grubundaki tüm kaynaklara otomatik olarak bir Contributor rolle eklenir. Blobları bir depolama hesabına yüklemek için bir olmak Contributoryeterli değildir. Rolü uygulama kayıt kimliğine el ile atamanızStorage Blob Data Contributor gerekir.

IAM bölmesinde göreceğiniz gibi Contributor var olan devralınan girdiden uygulama kimliğini kopyalayın ve kullanıcı arabiriminde Add role assignment açıkça arayın. Kimlik açılan listede yok, tanımlayıcısını aramanız gerekir.

Kaynak Grubum hem Klasik hem de Resource Manager VM'ler içeriyorsa ne olur?

Belirtilen Kaynak Grubu hem Azure Resource Manager hem de Klasik VM'ler içeriyorsa, hedeflenen VM kümesi bağlantı türüne bağlıdır.

  • Sertifika tabanlı bağlantılar ve kimlik bilgileri tabanlı bağlantılar için kopyalama işlemi yalnızca Klasik VM'lerde gerçekleştirilir.
  • Hizmet Asıl Adı tabanlı bağlantılar için kopyalama işlemi yalnızca Resource Manager VM'lerde gerçekleştirilir.

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 kolayca 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 yeni kimlik bilgilerini kullanın. Dağıtımlar bu hesap kullanılarak işlenir.

Örnekler

# 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

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