Sdílet prostřednictvím


AzureFileCopy@3 – úloha Kopírování souborů Azure v3

Zkopírujte soubory do Azure Blob Storage nebo virtuálních počítačů.

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.

Vstupy

SourcePath - Zdroj
string. Povinná hodnota.

Zadejte absolutní cestu ke zdrojové složce nebo souboru v místním počítači nebo sdílené složce UNC. Můžete použít předdefinované systémové proměnné, jako $(Build.Repository.LocalPath)je . Názvy obsahující zástupné cardy, jako *.zip jsou, nejsou podporovány. Zadaná hodnota nebo výraz by měl vrátit jeden název složky nebo souboru.


azureSubscription - Předplatné Azure
Alias vstupu: ConnectedServiceNameARM. string. Povinná hodnota.

Zadejte název připojení služby Azure Resource Manager nakonfigurované pro předplatné, ve kterém se nachází cílová služba Azure, virtuální počítač nebo účet úložiště. Další podrobnosti najdete v tématu Přehled azure Resource Manager.


Destination - Typ cíle
string. Povinná hodnota. Povolené hodnoty: AzureBlob (Azure Blob) AzureVMs (virtuální počítače Azure).

Zadejte typ cíle.


storage - Účet úložiště RM
Alias vstupu: StorageAccountRM. string. Povinná hodnota.

Zadejte existující účet úložiště ARM. Jedná se o účet úložiště, který slouží jako zprostředkovatel pro kopírování souborů do virtuálních počítačů Azure.


ContainerName - Název kontejneru
string. Vyžaduje se, když Destination = AzureBlob.

Název kontejneru, do kterého se soubory kopírují. Pokud zadaný kontejner v účtu úložiště neexistuje, vytvoří se.

Pokud chcete v kontejneru vytvořit virtuální adresář, použijte vstup předpony objektu blob. Například pro cílové umístění https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/zadejte název mycontainer kontejneru a předponu objektu blob: vd1/vd2.


BlobPrefix - Předpona objektu blob
string. Nepovinný parametr. Použijte, když Destination = AzureBlob.

Zadejte předponu, která se dá použít k filtrování souborů.

Příklad: Můžete připojit číslo sestavení a filtrovat soubory ze všech objektů blob se stejným číslem sestavení.

Příklad: Pokud zadáte předponu myvd1objektu blob , vytvoří se v kontejneru virtuální adresář. Soubory se zkopírují ze zdroje do https://myaccount.blob.core.windows.net/mycontainer/myvd1/.


resourceGroup - Skupina prostředků
Alias vstupu: EnvironmentNameRM. string. Vyžaduje se, když Destination = AzureVMs.

Zadejte název cílové skupiny prostředků, do které se budou soubory kopírovat.


ResourceFilteringMethod - Vybrat počítače podle
string. Nepovinný parametr. Použijte, když Destination = AzureVMs. Povolené hodnoty: machineNames (názvy počítačů), tags. Výchozí hodnota: machineNames.

Zadejte název nebo značku hostitele virtuálního počítače, která identifikuje podmnožinu virtuálních počítačů ve skupině prostředků. Značky se podporují jenom pro prostředky vytvořené prostřednictvím azure Resource Manager.


MachineNames - Kritéria filtru
string. Nepovinný parametr. Použijte, když Destination = AzureVMs.

Zadejte seznam názvů virtuálních počítačů nebo názvů značek, které identifikují virtuální počítače, na které bude úkol cílit. Mezi platná kritéria filtru patří:

  • Název skupiny prostředků Azure.
  • Výstupní proměnná z předchozího úkolu.
  • Seznam názvů značek nebo názvů virtuálních počítačů oddělených čárkami.
  • Názvy virtuálních počítačů můžete formátovat pomocí seznamu plně kvalifikovaných názvů domén nebo IP adres oddělených čárkami.
  • Formátovat názvy značek pro filtr jako {TagName}:{Value}. Příklad: Role:DB;OS:Win8.1, ffweb, ffdbnebo značky jako Role:DB, Web, , . OS:Win8.1

Poznámka: Mezi platné oddělovače značek patří čárka, :(colon) a ;(semicolon). Při poskytování více značek se úloha spustí jenom na virtuálních počítačích, které obsahují zadané značky. Ve výchozím nastavení se úloha spouští na všech virtuálních počítačích.


vmsAdminUserName - přihlášení Správa
string. Vyžaduje se, když Destination = AzureVMs.

Zadejte uživatelské jméno účtu s oprávněními správce na všech cílových virtuálních počítačích.

  • Mezi podporované formáty patří: username, domain\username, machine-name\usernamea .\username.
  • Formáty hlavního názvu uživatele (UPN), včetně username@domain.com předdefinovaných systémových účtů, jako NT Authority\System jsou , se nepodporují.

vmsAdminPassword - Heslo
string. Vyžaduje se, když Destination = AzureVMs.

Zadejte heslo správce virtuálních počítačů.

Platný vstup zahrnuje proměnné definované v kanálech buildu nebo verze, jako $(passwordVariable)je . Pokud chcete zabezpečit heslo, označte ho jako secret.


TargetPath - Cílová složka
string. Vyžaduje se, když Destination = AzureVMs.

Zadejte cestu ke složce na virtuálních počítačích Azure, do které se budou soubory kopírovat.

Podporují se proměnné prostředí, jako $env:windir jsou a $env:systemroot . Příklady: $env:windir\FabrikamFiber\Web a c:\FabrikamFiber


AdditionalArgumentsForBlobCopy - Volitelné argumenty (pro nahrávání souborů do objektu blob)
string.

Zadejte další argumenty AzCopy.exe , které je možné použít při nahrávání do objektů blob, jako /NC:10je .

Pokud nejsou zadány žádné volitelné argumenty, jsou ve výchozím nastavení přidány následující argumenty.

  • /Y
  • /SetContentType
  • /Z
  • /V
  • /S – Přidáno, pokud název kontejneru není $root.
  • /BlobType:page – Přidáno, pokud je zadaným účtem úložiště účet Premium.
  • /Pattern – Přidáno, pokud je zdrojovou cestou soubor. Součástí všech dalších zadaných volitelných argumentů.

AdditionalArgumentsForVMCopy - Volitelné argumenty (pro stahování souborů do virtuálního počítače)
string. Nepovinný parametr. Použijte, když Destination = AzureVMs.

Zadejte další argumenty AzCopy.exe , které lze použít při stahování do virtuálních počítačů, jako /NC:10je .

Pokud nejsou zadány žádné volitelné argumenty, jsou ve výchozím nastavení přidány následující.

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

enableCopyPrerequisites - Povolení požadovaných součástí kopírování
boolean. Nepovinný parametr. Použijte, když Destination = AzureVMs. Výchozí hodnota: false.

Pokud je tato možnost povolená, používá certifikát podepsaný svým držitelem ke konfiguraci naslouchacího procesu Vzdálené správy systému Windows (WinRM) na portu 5986 místo protokolu HTTPS. Vyžaduje se pro provádění operace kopírování na virtuálních počítačích Azure. Pokud cílové virtuální počítače používají nástroj pro vyrovnávání zatížení, nakonfigurujte příchozí pravidla PŘEKLADU ADRES pro cílový port (5986). Platí jenom pro virtuální počítače ARM. Na cílových virtuálních počítačích přidružených ke skupině zabezpečení sítě (NSG) nakonfigurujte příchozí pravidlo zabezpečení, které povolí přístup na portu 5986.


CopyFilesInParallel - Paralelní kopírování
boolean. Nepovinný parametr. Použijte, když Destination = AzureVMs. Výchozí hodnota: true.

Zadejte true , aby se soubory zkopírovaly paralelně do cílových virtuálních počítačů. Použití této hodnoty může zkrátit celkovou dobu potřebnou k provedení akce.


CleanTargetBeforeCopy - Vyčistit cíl
boolean. Nepovinný parametr. Použijte, když Destination = AzureVMs. Výchozí hodnota: false.

Nastavení této hodnoty na true před provedením akce kopírování vyčistí cílovou složku.


skipCACheck - Test certifikátu
boolean. Nepovinný parametr. Použijte, když Destination = AzureVMs. Výchozí hodnota: true.

Výchozí hodnota neověří, jestli certifikát serveru před připojením přes protokol HTTPS podepsala důvěryhodná certifikační autorita.


outputStorageUri - Identifikátor URI kontejneru úložiště
string.

Zadejte název proměnné použité pro identifikátor URI kontejneru úložiště, do kterého se soubory zkopírovaly. Platí pouze v případech, kdy je vybraným cílem objekt blob Azure.


outputStorageContainerSasToken - Token SAS kontejneru úložiště
string.

Zadejte název proměnné použité pro token SAS kontejneru úložiště, která přistupuje ke zkopírovaným souborům. Tuto proměnnou použijte jako vstup pro následné úlohy. Ve výchozím nastavení platnost tokenu SAS vyprší po 4 hodinách.


sasTokenTimeOutInMinutes - Doba vypršení platnosti tokenu SAS v minutách
string.

Zadejte čas v minutách, po kterém vyprší platnost tokenu SAS. Platí jenom v případech, kdy je vybraným cílem Azure Blob.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacích prvků a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Novinky ve verzi AzureFileCopy@3

  • AzureFileCopy@3 podporuje modul Az a přestal podporovat koncový bod služby Azure Classic.

  • Úloha se používá ke kopírování souborů aplikace a dalších artefaktů potřebných k instalaci aplikace, jako jsou skripty PowerShellu, moduly PowerShell-DSC a další.

  • Pokud jsou cílem virtuální počítače Azure, soubory se nejprve zkopírují do automaticky generovaného kontejneru objektů blob Azure a pak se stáhnou do virtuálních počítačů. Po úspěšném zkopírování souborů do virtuálních počítačů se kontejner odstraní.

  • Úloha používá AzCopy, nástroj příkazového řádku vytvořený pro rychlé kopírování dat z a do účtů úložiště Azure. Úloha verze 3 nebo nižší používá Nástroj AzCopy v7.

  • Pokud chcete dynamicky nasazovat skupiny prostředků Azure, které obsahují virtuální počítače, použijte úlohu Nasazení skupiny prostředků Azure . Tato úloha obsahuje ukázkovou šablonu, která může provést požadované operace k nastavení protokolu WinRM HTTPS na virtuálních počítačích, otevření portu 5986 v bráně firewall a instalaci testovacího certifikátu.

Poznámka

Pokud nasazujete do Azure Static Websites jako kontejner ve službě Blob Storage, použijte verzi 2 nebo vyšší, abyste zachovali název $web kontejneru.

Časté otázky

Jaké jsou Azure PowerShell požadavky pro použití této úlohy?

Úloha vyžaduje, aby na počítači, na kterém běží agent automatizace, byla nainstalovaná Azure PowerShell. Doporučená verze je 1.0.2, ale úloha funguje s verzí 0.9.8 nebo novější. K získání doporučené verze použijte instalační program Azure PowerShell verze 1.0.2.

Jaké jsou požadavky winRM pro tuto úlohu?

Úloha pomocí protokolu WINRM HTTPS zkopíruje soubory z kontejneru objektů blob úložiště do virtuálních počítačů Azure. Na virtuálních počítačích musí být nakonfigurovaná služba WINRM HTTPS a musí být nainstalovaný vhodný certifikát.

Pokud jsou virtuální počítače vytvořené bez otevření portů WINRM HTTPS, postupujte takto:

  1. Nakonfigurujte pravidlo příchozího přístupu, které povolí PROTOKOL HTTPS na portu 5986 každého virtuálního počítače.
  2. Zakažte vzdálená omezení nástroje Řízení uživatelských účtů.
  3. Zadejte přihlašovací údaje pro úlohu pro přístup k virtuálním počítačům pomocí přihlášení na úrovni správce ve formátu uživatelského jména bez odkazu na doménu.
  4. Nainstalujte certifikát na počítač, na kterém běží agent automatizace.
  5. Nastavte parametr Testovací certifikát úlohy pro certifikát podepsaný svým držitelem.

Jaký typ připojení služby mám zvolit?

Následující tabulka uvádí typy účtů úložiště a přidružená připojení služeb. Pokud chcete zjistit, jestli je účet úložiště založený na klasických nebo Resource Manager rozhraní API, přihlaste se k Azure Portal a vyhledejte Účty úložiště (Klasické) nebo Účty úložiště.

Typ účtu úložiště Připojení ke službám Azure v TFS/TS
Resource Manager Připojení služby Azure Resource Manager
Klasický Připojení služby Azure s ověřováním na základě certifikátů nebo přihlašovacích údajů pomocí školního nebo pracovního účtu
  • V případě klasických prostředků Azure použijte typ připojení služby Azure s ověřováním na základě certifikátu nebo přihlašovacích údajů. Pokud používáte ověřování na základě přihlašovacích údajů, ujistěte se, že se jedná o přihlašovací údaje pro školní nebo pracovní účet. Účty Microsoft, jako joe@live.com jsou a joe@hotmail.com , se nepodporují.

  • Pro virtuální počítače Azure Resource Manager použijte typ připojení služby Azure Resource Manager. Další podrobnosti najdete v tématu Automatizace nasazení skupiny prostředků Azure pomocí instančního objektu.

  • Pokud používáte typ připojení služby Azure Resource Manager nebo typ připojení služby Azure s ověřováním na základě certifikátů, úloha automaticky vyfiltruje příslušné klasické účty úložiště, novější účty azure Resource Manager úložiště a další pole. Například skupina prostředků nebo cloudová služba a virtuální počítače.

Poznámka

V současné době typ připojení služby Azure s ověřováním na základě přihlašovacích údajů nefiltruje pole úložiště, skupiny prostředků nebo cloudové služby a virtuálního počítače.

Návody opravit chybu 403: Tento požadavek nemá oprávnění k provedení této operace pomocí tohoto oprávnění?

Když Azure DevOps vytvoří a autorizuje připojení služby k Azure, vytvoří registraci aplikace ve službě Active Directory vašeho předplatného. Tato identita se automaticky přidá s Contributor rolí ke všem prostředkům ve skupině prostředků, kterou jste se rozhodli autorizovat. K nahrání objektů blob do účtu úložiště nestačí být objektem blobContributor. Roli musíte ručně přiřadit Storage Blob Data Contributor identitě registrace aplikace.

Zkopírujte identitu aplikace z existující zděděné položky tak, jak Contributor se zobrazí v podokně IAM, a vyhledejte ji explicitně v uživatelském Add role assignment rozhraní. Identita není v rozevíracím seznamu uvedená, musíte vyhledat její identifikátor.

Co se stane, když moje skupina prostředků obsahuje klasické i Resource Manager virtuální počítače?

Pokud zadaná skupina prostředků obsahuje virtuální počítače Azure Resource Manager i Classic, sada cílových virtuálních počítačů závisí na typu připojení.

  • U připojení založených na certifikátech a připojeních založených na přihlašovacích údajích se operace kopírování provádí pouze na klasických virtuálních počítačích.
  • V případě připojení založených na instančním názvu se operace kopírování provádí pouze na Resource Manager virtuálních počítačích.

Návody vytvořit školní nebo pracovní účet pro použití s tímto úkolem?

Vhodný účet lze snadno vytvořit pro použití v připojení služby:

  1. Pomocí Azure Portal vytvořte nový uživatelský účet v Azure Active Directory.
  2. Přidejte uživatelský účet Azure Active Directory do skupiny spolusprávci ve vašem předplatném Azure.
  3. Přihlaste se k Azure Portal pomocí tohoto uživatelského účtu a změňte heslo.
  4. Použijte nové přihlašovací údaje pro tento účet v připojení služby. Nasazení budou zpracována pomocí tohoto účtu.

Příklady

# 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

Požadavky

Požadavek Popis
Typy kanálů YAML, klasický build, klasická verze
Běží na Agent, DeploymentGroup
Požadavky Agenti v místním prostředí musí mít funkce , které odpovídají následujícím požadavkům na spouštění úloh, které používají tuto úlohu: azureps
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 1.103.0 nebo vyšší
Kategorie úloh Nasazení