AzureFileCopy@5 – úloha Kopírování souborů Azure v5
Zkopírujte soubory do Azure Blob Storage nebo virtuálních počítačů.
Poznámka
Tato úloha nepodporuje ověřování Azure Resource Manager s federací identit pracovních postupů.
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.
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 cílového virtuálního adresáře v kontejneru Objektů blob Azure. To platí, pokud SourcePath
obsahuje zástupný znak, který může odpovídat více položkám.
Příklad: Můžete připojit číslo sestavení, které před soubory ze všech objektů blob přidá předponu se stejným číslem sestavení.
Příklad: Pokud zadáte předponu myvd1
objektu blob , vytvoří se v kontejneru virtuální adresář. Soubory se zkopírují ze zdroje do https://myaccount.blob.core.windows.net/mycontainer/myvd1/
.
V případě, že SourcePath
je jedna položka bez zástupných znaků, bude tato předpona objektu blob fungovat jako název cílového objektu blob.
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\username
a.\username
. - Formáty hlavního názvu uživatele (UPN), včetně
username@domain.com
předdefinovaných systémových účtů, jakoNT 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=true
jako 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á certifikát podepsaný svým držitelem ke konfiguraci naslouchacího procesu Vzdálená správa systému Windows (WinRM) přes protokol HTTPS na portu 5986. Tato konfigurace se vyžaduje pro provádění operací kopírování na virtuálních počítačích Azure. Platí jenom pro virtuální počítače ARM.
- 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
. 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@5 podporuje AzCopy.exe verze 10.12.2.
Poznámka
Můžete blokovat použití klíčů účtu úložiště a tokenů SAS ve svých účtech úložiště. V těchto situacích není možné použít úlohu AzureFileCopy@5 , která závisí na tokenech SAS.
Úloha AzureFileCopy@6 místo toho pro přístup k úložišti objektů blob používá Azure RBAC. To vyžaduje identitu připojení služby, které má příslušnou roli RBAC, například Přispěvatel dat v objektech blob služby Storage. Viz Přiřazení role Azure pro přístup k datům objektů blob.
Úloha AzureFileCopy@6 také podporuje připojení služeb, která používají federaci identit úloh.
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 5 úlohy Kopírování souborů Azure používá 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 autorizována prostřednictvím tokenu Microsoft Entra ID nebo 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. Úroveň požadované autorizace je uvedená v možnosti 1: Použití Microsoft Entra ID.
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.
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:
- Nakonfigurujte pravidlo příchozího přístupu, které povoluje https na portu 5986 každého virtuálního počítače.
- Zakažte vzdálená omezení řízení uživatelských účtů.
- 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.
- Nainstalujte certifikát na počítač, na kterém běží agent automatizace.
- 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ě:
- Pomocí Azure Portal vytvořte nový uživatelský účet v Azure Active Directory.
- Přidejte uživatelský účet Azure Active Directory do skupiny spolusprávce ve vašem předplatném Azure.
- Přihlaste se k Azure Portal pomocí tohoto uživatelského účtu a změňte heslo.
- 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 5 ú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ů:
- 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.
- Spusťte krok sestavení pro váš účet služby Azure Storage.
- 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
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)
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í |