AzureFileCopy@4 – Azure-filkopiering v4-uppgift

Kopiera filer till Azure Blob Storage eller virtuella datorer.

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.

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.


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 som kan användas för att filtrera filer.

Exempel: Du kan lägga till ett byggnummer för att filtrera filerna från alla blobar med samma versionsnummer.

Exempel: Om du anger ett blobprefix myvd1skapas en virtuell katalog i containern. Filer kopieras från källan till https://myaccount.blob.core.windows.net/mycontainer/myvd1/.


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\usernameoch .\username.
  • UPN-format inklusive username@domain.com och inbyggda systemkonton som NT 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=truetill 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

sasTokenTimeOutInMinutes - Förfalloperiod för SAS-token i minuter
string. Valfritt. Använd när Destination = AzureBlob. Standardvärde: 240.

Ange den tid i minuter efter vilken SAS-token för containern ska upphöra att gälla. Som standard upphör den här token att gälla efter 4 timmar.


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.

  • 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 med de virtuella måldatorerna.


CleanTargetBeforeCopy - Rensa mål
boolean. Valfritt. Använd när Destination = AzureVMs. Standardvärde: false.

Ange true att målmappen ska rensas innan filer kopieras.


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 certifikatet verifieras 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 uppgiften definierar följande utdatavariabler, som du kan använda i underordnade steg, jobb och steg.

StorageContainerUri
URI för containern som filerna kopierades till. Endast giltigt när det valda målet är en Azure Blob.

StorageContainerSasToken
SasToken för containern som filerna kopierades till. Endast giltigt när det valda målet är en Azure Blob.

Kommentarer

AzureFileCopy@4 stöder AzCopy.exe version 10.8.0.

Anteckning

Den här uppgiften skrivs i PowerShell och fungerar endast 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 4 av Azure File Copy-aktiviteten använder AzCopy V10.

Azure File Copy version 3 och lägre skulle hämta Azure Storage-nyckeln för att ge åtkomst. Azure File Copy version 4 och senare kräver att Azure Storage auktoriseras via Microsoft Entra-ID eller SAS-token. Autentisering med tjänstens huvudnamn och hanterade identitet är tillgängliga. 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 azure-resursgruppsdistributionsaktiviteten . 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.

Uppgiften stöder autentisering baserat på Azure Active Directory. Autentisering med tjänstens huvudnamn och hanterade identitet är tillgängliga. För hanterade identiteter stöds endast systemomfattande hanterad identitet.

Vilka är de Azure PowerShell förutsättningarna för att använda den här uppgiften?

Uppgiften kräver att Azure PowerShell är installerad 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 WinRM-kraven för den här uppgiften?

Uppgiften använder HTTPS-protokollet Windows Remote Management (WinRM) för att kopiera filerna från lagringsblobcontainern till de virtuella Azure-datorerna. Detta kräver att WinRM HTTPS-tjänsten är konfigurerad på de virtuella datorerna och att ett lämpligt certifikat installeras.

Konfigurera WinRM efter att den virtuella datorn har skapats

Om de virtuella datorerna skapades utan att WinRM HTTPS-portarna öppnades utför du följande:

  1. Konfigurera en regel för inkommande åtkomst för att tillåta HTTPS på port 5986 för varje virtuell dator.
  2. Inaktivera UAC-fjärrbegränsningar.
  3. 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.
  4. Installera ett certifikat på datorn som kör automationsagenten.
  5. 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 Azure Resource Manager-tjänstanslutningstyp. 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:

  1. Använd Azure Portal för att skapa ett nytt användarkonto i Azure Active Directory.
  2. Lägg till Azure Active Directory-användarkontot i gruppen medadministratörer i din Azure-prenumeration.
  3. Logga in på Azure Portal med det här användarkontot och ändra lösenordet.
  4. Använd autentiseringsuppgifterna för det här kontot i tjänstanslutningen. Distributioner bearbetas sedan med det här kontot.

Kommer kopiningen att återupptas om uppgiften misslyckas?

Eftersom AzCopy v10 inte stöder journalfiler kan inte aktiviteten återuppta kopieringen. Du måste köra uppgiften 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 4 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 bloblagring" när du använder Azure File Copy-uppgiften

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:

  1. 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.
  2. Kör byggsteget för ditt Azure Storage-konto.
  3. 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.

Exempel

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

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