AzureFileCopy@6 – Azure-filkopiering v6-uppgift
Kopiera filer till Azure Blob Storage eller virtuella datorer.
Den här versionen av uppgiften stöder arbetsbelastningsidentitetsfederation och använder Azure RBAC för att få åtkomst till Azure Storage. Som ett resultat av att vi använder Azure RBAC används inte längre SAS-token. Mer information finns i avsnittet Kommentarer .
Syntax
# Azure file copy v6
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@6
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. Clean Target. Default: false.
#skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.
Indata
SourcePath
- Källkod
string
. Krävs.
Platsen för källfiler. Värden som stöds är YAML-pipelines och klassisk version som stöder fördefinierade systemvariabler som Build.Repository.LocalPath.
Versionsvariabler stöds endast i klassiska versioner. Jokertecknet (*) stöds var som helst i filsökvägen eller filnamnet.
Uttrycket ska returnera en enskild mapp eller en fil.
azureSubscription
- Azure-prenumeration
Indataalias: ConnectedServiceNameARM
. string
. Krävs.
Ange namnet på en Azure Resource Manager-tjänstanslutning som konfigurerats för prenumerationen där azure-måltjänsten, den virtuella datorn eller lagringskontot finns. Mer information finns i Översikt över Azure Resource Manager.
Destination
- Måltyp
string
. Krävs. Tillåtna värden: AzureBlob
(Azure Blob), AzureVMs
(virtuella Azure-datorer).
Ange måltyp.
storage
- RM Storage-konto
Indataalias: StorageAccountRM
. string
. Krävs.
Ange ett befintligt ARM-lagringskonto. Det här är lagringskontot som används som mellanhand för att kopiera filer till virtuella Azure-datorer.
ContainerName
- Containernamn
string
. Krävs när Destination = AzureBlob
.
Namnet på containern som filerna kopieras till. Om den angivna containern inte finns i lagringskontot skapas den.
Om du vill skapa en virtuell katalog i containern använder du blobprefixindata. För målplatsen https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/
anger du till exempel containernamn mycontainer
och blobprefix: vd1/vd2
.
BlobPrefix
- Blobprefix
string
. Valfritt. Använd när Destination = AzureBlob
.
Ange ett prefix för den virtuella målkatalogen i Azure Blob-containern. Detta gäller när SourcePath
innehåller ett jokertecken som kan matcha flera objekt.
Exempel: Du kan lägga till ett byggnummer för att prefixa filerna från alla blobar med samma versionsnummer.
Exempel: Om du anger ett blobprefix myvd1
skapas en virtuell katalog i containern. Filer kopieras från källan till https://myaccount.blob.core.windows.net/mycontainer/myvd1/
.
Om SourcePath
är ett enskilt objekt utan jokertecken fungerar det här blobprefixet som målblobnamn.
resourceGroup
- Resursgrupp
Indataalias: EnvironmentNameRM
. string
. Krävs när Destination = AzureVMs
.
Ange namnet på målresursgruppen som filerna ska kopieras till.
ResourceFilteringMethod
- Välj Datorer efter
string
. Valfritt. Använd när Destination = AzureVMs
. Tillåtna värden: machineNames
(Datornamn), tags
. Standardvärde: machineNames
.
Ange ett värdnamn eller tagg för virtuell dator som identifierar en delmängd av virtuella datorer i en resursgrupp. Taggar stöds endast för resurser som skapats via Azure Resource Manager.
MachineNames
- Filtervillkor
string
. Valfritt. Använd när Destination = AzureVMs
.
Ange en lista över namn på virtuella datorer eller taggnamn som identifierar de virtuella datorer som uppgiften ska riktas mot. Giltiga filtervillkor omfattar:
- Namnet på en Azure-resursgrupp.
- En utdatavariabel från en tidigare aktivitet.
- En kommaavgränsad lista över taggnamn eller VM-namn.
- Formatera VM-namn med hjälp av en kommaavgränsad lista över FQDN:er eller IP-adresser.
- Formatera taggnamn för ett filter som
{TagName}:{Value}
exempel:Role:DB;OS:Win8.1
vmsAdminUserName
- Admin inloggning
string
. Krävs när Destination = AzureVMs
.
Ange användarnamnet för ett konto med administratörsbehörighet för alla virtuella måldatorer.
- Format som stöds är:
username
,domain\username
,machine-name\username
och.\username
. - UPN-format inklusive
username@domain.com
och inbyggda systemkonton somNT Authority\System
inte stöds.
vmsAdminPassword
- Lösenord
string
. Krävs när Destination = AzureVMs
.
Ange lösenordet för parametern Admin Login
.
Leta reda på parametern för att hitta variabeln Admin Login
. Välj hänglåsikonen för en variabel som definierats på Variables
fliken för att skydda värdet och infoga variabelnamnet här.
TargetPath
- Målmappen
string
. Krävs när Destination = AzureVMs
.
Ange sökvägen till mappen på de virtuella Azure-datorer som filerna ska kopieras till.
Miljövariabler som $env:windir
och $env:systemroot
stöds. Exempel: $env:windir\FabrikamFiber\Web
och c:\FabrikamFiber
AdditionalArgumentsForBlobCopy
- Valfria argument (för att ladda upp filer till blob)
string
.
Ange ytterligare argument som ska AzCopy.exe
användas när du laddar upp till bloben och laddar ned till de virtuella datorerna. Mer information finns i Överföra data med Verktyget AzCopy Command-Line .
För Premium-lagringskonton som endast stöder Azure-sidblobar används --blob-type=PageBlob
som ytterligare ett argument.
Standardargument inkluderar --log-level=INFO
(standard) och --recursive
(om containernamnet inte $root
är ).
AdditionalArgumentsForVMCopy
- Valfria argument (för att ladda ned filer till en virtuell dator)
string
. Valfritt. Använd när Destination = AzureVMs
.
Ange ytterligare argument som AzCopy.exe
ska användas vid nedladdning till virtuella datorer, --check-length=true
till exempel .
Om inga valfria argument anges läggs följande till som standard:
--log-level=INFO
--log-level=DEBUG
(Om pipelinen körs i felsökningsläge inställd)--recursive
enableCopyPrerequisites
- Aktivera krav för kopiering
boolean
. Valfritt. Använd när Destination = AzureVMs
. Standardvärde: false
.
När det här alternativet är aktiverat använder det här alternativet ett självsignerat certifikat för att konfigurera WinRM-lyssnaren (Windows Remote Management) via HTTPS-protokollet på port 5986. Den här konfigurationen krävs för att utföra kopieringsåtgärder på virtuella Azure-datorer. Gäller endast för virtuella ARM-datorer.
- Om de virtuella måldatorerna nås via en lastbalanserare konfigurerar du en inkommande NAT-regel för att tillåta åtkomst på port 5986.
- Om de virtuella måldatorerna är associerade med en nätverkssäkerhetsgrupp (NSG) konfigurerar du en inkommande säkerhetsregel för att tillåta åtkomst på port 5986.
CopyFilesInParallel
- Kopiera parallellt
boolean
. Valfritt. Använd när Destination = AzureVMs
. Standardvärde: true
.
Ange true
att filer ska kopieras parallellt till de virtuella måldatorerna.
CleanTargetBeforeCopy
- Rensa mål
boolean
. Standardvärde: false
.
Ange true
för att rensa målmappen innan du kopierar filer.
skipCACheck
- Testcertifikat
boolean
. Valfritt. Använd när Destination = AzureVMs
. Standardvärde: true
.
WinRM kräver ett certifikat för HTTPS-överföringen när filer kopieras från den mellanliggande lagringsbloben till de virtuella Azure-datorerna.
Om du använder ett självsignerat certifikat anger du true
för att förhindra att processen verifierar certifikatet med en betrodd certifikatutfärdare.
Kontrollalternativ för aktivitet
Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Den här aktiviteten definierar följande utdatavariabler, som du kan använda i underordnade steg, jobb och faser.
StorageContainerUri
URI för containern där filerna kopierades till. Endast giltig när det valda målet är Azure Blob.
Kommentarer
AzureFileCopy@6
stöder arbetsbelastningsidentitetsfederation och använder Azure RBAC för att få åtkomst till Azure Storage.
När du använder Azure RBAC används inte längre SAS-token och aktivitetsindata sasTokenTimeOutInMinutes
tas bort.
Du kan blockera användningen av lagringskontonycklar och SAS-token på dina lagringskonton. I dessa situationer kan inte AzureFileCopy@5 uppgift, som förlitar sig på SAS-token, användas.
Uppgiften AzureFileCopy@6
använder Azure RBAC för att få åtkomst till bloblagring i stället. Detta kräver identiteten för tjänstanslutningen som används för att ha rätt RBAC-roll, t.ex. Storage Blob Data-deltagare. Se Tilldela en Azure-roll för åtkomst till blobbdata.
Uppgiften AzureFileCopy@6 stöder även tjänstanslutningar som använder arbetsbelastningsidentitetsfederation.
Anteckning
Den här uppgiften är skriven i PowerShell och fungerar bara när den körs på Windows-agenter. Om dina pipelines kräver Linux-agenter och behöver kopiera filer till ett Azure Storage-konto bör du överväga att köra az storage blob
kommandon i Azure CLI-uppgiften som ett alternativ.
Uppgiften används för att kopiera programfiler och andra artefakter som krävs för att installera appen. till exempel PowerShell-skript, PowerShell-DSC-moduler med mera.
När målet är virtuella Azure-datorer kopieras filerna först till en automatiskt genererad Azure-blobcontainer och laddas sedan ned till de virtuella datorerna. Containern tas bort när filerna har kopierats till de virtuella datorerna.
Uppgiften använder AzCopy, kommandoradsverktyget som skapats för snabb kopiering av data från och till Azure Storage-konton. Version 6 av Azure File Copy-aktiviteten använder AzCopy V10.
Azure File Copy version 6 kräver att Azure Storage auktoriseras via Microsoft Entra ID. Autentisering med tjänstens huvudnamn och hanterade identitet är tillgängligt. För hanterade identiteter stöds endast systemomfattande hanterad identitet. Auktoriseringsnivån som krävs visas i Alternativ 1: Använd Microsoft Entra ID.
Om du vill distribuera Azure-resursgrupper dynamiskt som innehåller virtuella datorer använder du uppgiften Distribution av Azure-resursgrupp . Den här uppgiften har en exempelmall som kan utföra de åtgärder som krävs för att konfigurera WinRM HTTPS-protokollet på de virtuella datorerna, öppna port 5986 i brandväggen och installera testcertifikatet.
Anteckning
Om du distribuerar till Azure Static Websites som en container i Blob Storage använder du version 2 eller senare av uppgiften för att bevara $web containernamn.
Vilka är de Azure PowerShell förutsättningarna för att använda den här uppgiften?
Uppgiften kräver att Azure PowerShell är installerat på den dator som kör automationsagenten. Den rekommenderade versionen är 1.0.2, men uppgiften fungerar med version 0.9.8 och senare. Du kan använda Azure PowerShell Installer v1.0.2 för att hämta detta.
Vilka är kraven för WinRM för den här uppgiften?
Uppgiften använder HTTPS-protokollet Windows Remote Management (WinRM) för att kopiera filerna från blobcontainern för lagring till de virtuella Azure-datorerna. Detta kräver att WinRM HTTPS-tjänsten har konfigurerats på de virtuella datorerna och att ett lämpligt certifikat installeras.
Konfigurera WinRM när den virtuella datorn har skapats
Om de virtuella datorerna skapades utan att WinRM HTTPS-portarna öppnades utför du följande:
- Konfigurera en regel för inkommande åtkomst för att tillåta HTTPS på port 5986 för varje virtuell dator.
- Inaktivera UAC-fjärrbegränsningar.
- Ange autentiseringsuppgifterna för uppgiften för att få åtkomst till de virtuella datorerna med en inloggning på administratörsnivå i det enkla formulärets användarnamn utan någon domändel.
- Installera ett certifikat på den dator som kör automationsagenten.
- Om du använder ett självsignerat certifikat anger du parametern Testcertifikat för uppgiften.
Vilken typ av tjänstanslutning ska jag välja?
För Azure Resource Manager-lagringskonton och virtuella Azure Resource Manager-datorer använder du en anslutningstyp för Azure Resource Manager-tjänsten. Se Automatisera distribution av Azure-resursgrupper med hjälp av tjänstens huvudnamn.
När du använder en Azure Resource Manager-tjänstanslutningstyp filtrerar uppgiften automatiskt lämpliga nyare Azure-Resource Manager lagringskonton och andra fält. Till exempel resursgruppen eller molntjänsten och de virtuella datorerna.
Hur gör jag för att skapa ett skol- eller arbetskonto för användning med den här uppgiften?
Ett lämpligt konto kan skapas för användning i en tjänstanslutning:
- Använd Azure Portal för att skapa ett nytt användarkonto i Azure Active Directory.
- Lägg till Azure Active Directory-användarkontot i gruppen medadministratörer i din Azure-prenumeration.
- Logga in på Azure Portal med det här användarkontot och ändra lösenordet.
- Använd autentiseringsuppgifterna för det här kontot i tjänstanslutningen. Distributioner bearbetas sedan med det här kontot.
Om uppgiften misslyckas, kommer kopian att återupptas?
Eftersom AzCopy v10 inte stöder journalfiler kan inte aktiviteten återuppta kopieringen. Du måste köra aktiviteten igen för att kopiera alla filer.
Rensas loggfilerna och planfilerna efter kopian?
Loggfilerna och planfilerna tas inte bort av aktiviteten. Om du vill rensa filerna explicit lägger du till ett CLI-steg i arbetsflödet med azcopy jobs clean.
Hur gör jag för att använda Azure-filkopieringsaktiviteten för att kopiera en fil till en virtuell Azure-dator som inte har någon offentlig IP-adress?
Kontrollera att du använder version 5 av Azure-filkopieringsaktiviteten. Om uppgiften misslyckas kan du lägga till ett byggsteg för att köra kommandot azcopy cp "source-file-path" "destination-file-path"
för att ersätta käll- och målvärdena.
Förbjudet fel: "AzCopy.exe avslutades med slutkod som inte är noll när filer laddas upp till Blob Storage" när azure-filkopieringsaktiviteten används
De värdbaserade agenterna tilldelas slumpmässigt varje gång en version utlöses, agentens IP-adresser skiljer sig åt vid varje körning. Om dessa IP-adresser inte finns med i listan över tillåtna IP-adresser misslyckas kommunikationen mellan Azure DevOps och lagringskontot. I sådana scenarier följer du stegen som beskrivs:
- Lägg till ett byggsteg med Azure CLI för att identifiera IP-adressen för Microsoft Hosted Build-agenten vid körning. Ip-adressen läggs till i nätverksregeln för Azure Storage-kontot.
- Kör byggsteget för ditt Azure Storage-konto.
- Lägg till ytterligare ett byggsteg med Azure CLI för att ta bort IP-adressen för byggagenten från nätverksregeln för Azure Storage-kontot.
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version, klassisk version |
Körs på | Agent, DeploymentGroup |
Krav | Lokalt installerade agenter måste ha funktioner som matchar följande krav för att köra jobb som använder den här uppgiften: azureps |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | 1.103.0 eller senare |
Uppgiftskategori | Distribuera |