Sdílet prostřednictvím


AzureFileCopy@4 – úloha Kopírování souborů Azure v4

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

Syntax

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

Vstupy

SourcePath - Zdroj
string. Povinná hodnota.

Umístění zdrojových souborů. Mezi podporované hodnoty patří kanály YAML a verze Classic podporují předdefinované systémové proměnné , jako je Build.Repository.LocalPath.

Proměnné vydané verze jsou podporovány pouze v klasických verzích. Zástupný symbol (*) se podporuje kdekoli v cestě k souboru nebo v názvu 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

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 pro Admin Login parametr .

Proměnnou najdete tak, že vyhledáte Admin Login parametr . Výběrem ikony zámku pro proměnnou definovanou na Variables kartě zachráníte hodnotu a sem vložte název proměnné.


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 pro použití při nahrávání do objektu blob a stahování do virtuálních počítačů. Podrobnosti najdete v tématu Přenos dat pomocí nástroje AzCopy Command-Line.

Pro účty Premium Storage, které podporují pouze objekty blob stránky Azure, použijte --blob-type=PageBlob jako další argument.

Mezi výchozí argumenty patří --log-level=INFO (výchozí) a --recursive (pokud název kontejneru není $root).


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é se použijí při stahování do virtuálních počítačů, --check-length=truejako je .

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

  • --log-level=INFO
  • --log-level=DEBUG (Pokud kanál běží v nastaveném režimu ladění)
  • --recursive

sasTokenTimeOutInMinutes - Doba vypršení platnosti tokenu SAS v minutách
string. Nepovinný parametr. Použijte, když Destination = AzureBlob. Výchozí hodnota: 240.

Zadejte čas v minutách, po kterém vyprší platnost tokenu SAS pro kontejner. Ve výchozím nastavení platnost tohoto tokenu vyprší po 4 hodinách.


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á tato možnost certifikát podepsaný svým držitelem ke konfiguraci naslouchacího procesu Vzdálené správy systému Windows (WinRM) přes protokol HTTPS na portu 5986. Tato konfigurace se vyžaduje k provádění operací kopírování na virtuálních počítačích Azure.

  • Pokud se k cílovým virtuálním počítačům přistupuje přes nástroj pro vyrovnávání zatížení, nakonfigurujte příchozí pravidlo NAT tak, aby umožňovalo přístup na portu 5986.
  • Pokud jsou cílové virtuální počítače přidružené ke skupině zabezpečení sítě (NSG), nakonfigurujte příchozí pravidlo zabezpečení tak, aby umožňovalo 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 paralelně zkopírovaly do cílových virtuálních počítačů.


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

Před kopírováním souborů zadejte true , aby se cílová složka vyčistila.


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

WinRM vyžaduje certifikát pro přenos HTTPS při kopírování souborů z zprostředkujícího objektu blob úložiště do virtuálních počítačů Azure.

Pokud používáte certifikát podepsaný svým držitelem, zadejte true , aby proces nemohl ověřovat certifikát u důvěryhodné certifikační autority.


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ího prvku a běžné vlastnosti úlohy.

Výstupní proměnné

Tato úloha definuje následující výstupní proměnné, které můžete využívat v podřízených krocích, úlohách a fázích.

StorageContainerUri
Identifikátor URI kontejneru, do kterého byly soubory zkopírovány. Platí jenom v případech, kdy je vybraným cílem objekt blob Azure.

StorageContainerSasToken
SasToken pro kontejner, do kterého byly soubory zkopírovány. Platí jenom v případech, kdy je vybraným cílem objekt blob Azure.

Poznámky

AzureFileCopy@4 podporuje AzCopy.exe verze 10.8.0.

Poznámka

Tato úloha je napsaná v PowerShellu a funguje jenom při spuštění na agentech windows. Pokud vaše kanály vyžadují agenty Linuxu a potřebují kopírovat soubory do účtu služby Azure Storage, zvažte jako alternativu spuštění az storage blob příkazů v úloze Azure CLI .

Úloha se používá ke kopírování souborů aplikace a dalších artefaktů, které jsou potřeba 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čů. Kontejner se odstraní po úspěšném zkopírování souborů do virtuálních počítačů.

Ú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. Verze 4 úlohy Kopírování souborů Azure používá Nástroj AzCopy V10.

Služba Azure File Copy verze 3 a nižší by načetla klíč služby Azure Storage, aby poskytla přístup. Služba Azure File Copy verze 4 a vyšší vyžaduje, aby služba Azure Storage byla autorizovaná prostřednictvím id Microsoft Entra nebo tokenu SAS. K dispozici je ověřování pomocí instančního objektu a spravované identity. U spravovaných identit se podporuje pouze spravovaná identita v rámci celého systému. Požadovaná úroveň autorizace je uvedená v možnosti 1: Použití ID Microsoft Entra.

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 má ukázkovou šablonu, která může provést požadované operace k nastavení protokolu HTTPS WinRM 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 služby Azure Static Websites jako kontejner ve službě Blob Storage, použijte k zachování názvu $web kontejneru verzi 2 nebo vyšší úlohu.

Úloha podporuje ověřování založené na Azure Active Directory. K dispozici je ověřování pomocí instančního objektu a spravované identity. U spravovaných identit se podporuje pouze spravovaná identita v rámci celého systému.

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 bude fungovat s verzí 0.9.8 a vyšší. Můžete to získat pomocí instalačního programu Azure PowerShell verze 1.0.2.

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

Úloha pomocí protokolu HTTPS vzdálené správy Windows (WinRM) zkopíruje soubory z kontejneru objektů blob úložiště do virtuálních počítačů Azure. To vyžaduje, aby byla na virtuálních počítačích nakonfigurovaná služba HTTPS WinRM a nainstalovaný vhodný certifikát.

Konfigurace WinRM po vytvoření virtuálního počítače

Pokud se virtuální počítače vytvořily bez otevření portů HTTPS WinRM, proveďte následující kroky:

  1. Nakonfigurujte pravidlo příchozího přístupu, které povoluje https na portu 5986 každého virtuálního počítače.
  2. Zakažte vzdálená omezení ří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 v jednoduchém formuláři uživatelské jméno bez jakékoli části domény.
  4. Nainstalujte certifikát na počítač, na kterém běží agent automatizace.
  5. Pokud používáte certifikát podepsaný svým držitelem, nastavte parametr Test Certificate úlohy.

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

  • Pro účty Azure Resource Manager Storage a virtuální počítače Azure Resource Manager použijte typ připojení služby Azure Resource Manager. Viz Automatizace nasazení skupiny prostředků Azure pomocí instančního objektu.

  • Při použití typu připojení služby Azure Resource Manager úloha automaticky vyfiltruje odpovídající novější účty úložiště Azure Resource Manager a další pole. Například skupina prostředků nebo cloudová služba a virtuální počítače.

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

Je možné vytvořit vhodný účet pro použití v připojení ke službě:

  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ávce 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. V připojení ke službě použijte přihlašovací údaje tohoto účtu. Nasazení se pak zpracovávají pomocí tohoto účtu.

Pokud úloha selže, bude kopírování pokračovat?

Vzhledem k tomu, že nástroj AzCopy v10 nepodporuje soubory deníků, úloha nemůže pokračovat v kopírování. Pokud chcete zkopírovat všechny soubory, musíte úlohu spustit znovu.

Jsou soubory protokolu a soubory plánů po kopírování vyčištěny?

Úloha neodstraňuje soubory protokolů a plánů. Pokud chcete soubory explicitně vyčistit, přidejte do pracovního postupu krok rozhraní příkazového řádku pomocí příkazu azcopy jobs clean.

Návody pomocí úlohy kopírování souborů Azure zkopírovat soubor do virtuálního počítače Azure, který nemá veřejnou IP adresu?

Ujistěte se, že používáte verzi 4 úlohy kopírování souborů Azure. Pokud úloha selže, můžete přidat krok sestavení, který spustí příkaz azcopy cp "source-file-path" "destination-file-path" , který nahradí zdrojovou a cílovou hodnotu.

Chyba Zakázáno: Při použití úlohy Kopírování souborů Azure se při nahrávání souborů do úložiště objektů blob ukončil AzCopy.exe s nenulovým ukončovacím kódem.

Hostovaní agenti se přiřazují náhodně při každém spuštění sestavení, IP adresy agentů se při každém spuštění budou lišit. Pokud tyto IP adresy nejsou v seznamu povolených IP adres, komunikace mezi Azure DevOps a účtem úložiště selže. V takových scénářích postupujte podle uvedených kroků:

  1. Přidejte krok sestavení pomocí Azure CLI k identifikaci IP adresy agenta microsoftu hostovaného sestavení za běhu. Přidá IP adresu do pravidla sítě v účtu služby Azure Storage.
  2. Spusťte krok sestavení pro váš účet služby Azure Storage.
  3. Přidejte další krok sestavení pomocí Azure CLI a odeberte IP adresu agenta sestavení z pravidla sítě účtu služby Azure Storage.

Příklady

- 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)

Požadavky

Požadavek Popis
Typy kanálů YAML, classic build, verze Classic
Spustí se 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í