Share via


AzureFileCopy@3 – Azure-filkopiering v3-uppgift

Kopiera filer till Azure Blob Storage eller virtuella datorer.

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.

Indata

SourcePath - Källkod
string. Krävs.

Ange den absoluta sökvägen för källmappen eller filen på den lokala datorn eller en UNC-resurs. Du kan använda fördefinierade systemvariabler som $(Build.Repository.LocalPath). Namn som innehåller jokertecken som *.zip stöds inte. Värdet eller uttrycket som du anger ska returnera en enskild mapp eller ett filnamn.


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, ffweb, ffdb, eller taggar som Role:DB, Web, OS:Win8.1.

Obs! Giltiga avgränsare för taggar inkluderar ,(kommatecken), :(kolon) och ;(semikolon). När du tillhandahåller flera taggar körs uppgiften endast på de virtuella datorer som innehåller de angivna taggarna. Som standard körs aktiviteten på alla virtuella datorer.


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 administratörslösenordet för de virtuella datorerna.

Giltiga indata innehåller variabler som definierats i bygg- eller versionspipelines, till exempel $(passwordVariable). Om du vill skydda ett lösenord markerar du det som secret.


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 kan användas vid uppladdning till blobar, /NC:10till AzCopy.exe exempel .

Om inga valfria argument anges läggs följande argument till som standard.

  • /Y
  • /SetContentType
  • /Z
  • /V
  • /S – Läggs till när containernamnet inte $rootär .
  • /BlobType:page -Läggs till när det angivna lagringskontot är ett Premium-konto.
  • /Pattern – Läggs till när källsökvägen är en fil. Ingår i andra angivna valfria argument.

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 kan användas när du laddar ned till virtuella datorer, till AzCopy.exe exempel /NC:10.

Om inga valfria argument anges läggs följande till som standard.

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

enableCopyPrerequisites - Aktivera krav för kopiering
boolean. Valfritt. Använd när Destination = AzureVMs. Standardvärde: false.

När det är aktiverat använder du ett självsignerat certifikat för att konfigurera en WinRM-lyssnare (Windows Remote Management) på port 5986 i stället för HTTPS-protokollet. Krävs för att utföra kopieringsåtgärd på virtuella Azure-datorer. Om de virtuella måldatorerna använder en lastbalanserare konfigurerar du inkommande NAT-regler för målporten (5986). Gäller endast för virtuella ARM-datorer. På virtuella måldatorer som ä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. Om du använder det här värdet kan du minska den totala tid det tar att utföra åtgärden.


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

Om du anger det här värdet till true rensas målmappen innan kopieringsåtgärden utförs.


skipCACheck - Testcertifikat
boolean. Valfritt. Använd när Destination = AzureVMs. Standardvärde: true.

Standardvärdet verifierar inte om servercertifikatet signerades av en betrodd certifikatutfärdare innan du ansluter via HTTPS.


outputStorageUri - URI för lagringscontainer
string.

Ange namnet på variabeln som används för lagringscontainerns URI som filerna kopierades till. Endast giltig när det valda målet är en Azure-blob.


outputStorageContainerSasToken - SAS-token för lagringscontainer
string.

Ange namnet på variabeln som används för lagringscontainerns SAS-token som har åtkomst till de filer som kopierades. Använd den här variabeln som indata för efterföljande uppgifter. Som standard upphör SAS-token att gälla efter 4 timmar.


sasTokenTimeOutInMinutes - Förfalloperiod för SAS-token i minuter
string.

Ange den tid i minuter efter vilken SAS-token ska upphöra att gälla. Endast giltig när det valda målet är Azure Blob.


Kontrollalternativ för aktivitet

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Inga.

Kommentarer

Nyheter i version AzureFileCopy@3

  • AzureFileCopy@3 stöder Az-modulen och har slutat stödja den klassiska Azure-tjänstslutpunkten.

  • 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 Blob-container 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 att snabbt kopiera data från och till Azure Storage-konton. Uppgiftsversion 3 eller senare använder AzCopy V7.

  • 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å virtuella datorer, ö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 för att bevara $web containernamn.

Vanliga frågor

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. Använd Azure PowerShell Installer v1.0.2 för att hämta den rekommenderade versionen.

Vilka är kraven för WinRM för den här uppgiften?

Uppgiften använder WinRM HTTPS-protokollet för att kopiera filerna från blobcontainern för lagring till de virtuella Azure-datorerna. WinRM HTTPS-tjänsten måste konfigureras på de virtuella datorerna och ett lämpligt certifikat måste vara installerat.

Om de virtuella datorerna skapas utan att WinRM HTTPS-portarna öppnas följer du dessa steg:

  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å formaterad som användarnamn utan någon domänreferens.
  4. Installera ett certifikat på den dator som kör automationsagenten.
  5. Ange parametern Testcertifikat för uppgiften för ett självsignerat certifikat.

Vilken typ av tjänstanslutning ska jag välja?

I följande tabell visas lagringskontotyper och associerade tjänstanslutningar. Om du vill ta reda på om ett lagringskonto baseras på de klassiska API:erna eller Resource Manager-API:erna loggar du in på Azure Portal och söker efter lagringskonton (klassiska) eller lagringskonton.

Typ av lagringskonto Azure-tjänstanslutningar i TFS/TS
Resource Manager Azure Resource Manager-tjänstanslutning
Klassisk Azure-tjänstanslutning med certifikatbaserad eller autentiseringsuppgifter-baserad autentisering med hjälp av ett skol- eller arbetskonto
  • För klassiska Azure-resurser använder du en anslutningstyp för Azure-tjänsten med certifikat- eller autentiseringsuppgifterbaserad autentisering. Om du använder autentiseringsuppgifter för autentisering kontrollerar du att autentiseringsuppgifterna gäller för ett skol- eller arbetskonto. Microsoft-konton som joe@live.com och joe@hotmail.com stöds inte.

  • För virtuella Azure Resource Manager-datorer använder du en Azure Resource Manager-tjänstanslutningstyp. Mer information finns i Automatisera distribution av Azure-resursgrupper med hjälp av tjänstens huvudnamn.

  • Om du använder en Azure Resource Manager-tjänstanslutningstyp eller en Azure-tjänstanslutningstyp med certifikatbaserad autentisering filtrerar uppgiften automatiskt lämpliga klassiska lagringskonton, nyare Azure-Resource Manager lagringskonton och andra fält. Till exempel resursgruppen eller molntjänsten och de virtuella datorerna.

Anteckning

För närvarande filtrerar inte en anslutningstyp för Azure-tjänsten med autentiseringsuppgifter lagrings-, resursgrupps- eller molntjänstfält eller virtuella datorfält.

Hur gör jag för att åtgärda felet "403: Denna begäran har inte behörighet att utföra den här åtgärden med den här behörigheten"?

När Azure DevOps skapar och auktoriserar tjänstanslutningen till Azure skapas en appregistrering i din prenumerations Active Directory. Den här identiteten läggs automatiskt till med en Contributor roll för alla resurser i den resursgrupp som du valde att auktorisera. För att ladda upp blobar till ett lagringskonto räcker det inte att vara ettContributor. Du måste tilldela Storage Blob Data Contributor rollen manuellt till appregistreringsidentiteten.

Kopiera appidentiteten från den befintliga ärvda posten som Contributor du ser i IAM-fönstret och sök uttryckligen efter den i användargränssnittet Add role assignment . Identiteten visas inte i listrutan. Du måste söka efter dess identifierare.

Vad händer om min resursgrupp innehåller både klassiska och Resource Manager virtuella datorer?

Om den angivna resursgruppen innehåller både Azure Resource Manager och klassiska virtuella datorer beror uppsättningen virtuella datorer som är mål på anslutningstypen.

  • För certifikatbaserade anslutningar och autentiseringsuppgifter utförs kopieringsåtgärden endast på klassiska virtuella datorer.
  • För anslutningar baserade på tjänstens huvudnamn utförs kopieringsåtgärden endast på Resource Manager virtuella datorer.

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 enkelt 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 de nya autentiseringsuppgifterna för det här kontot i tjänstanslutningen. Distributioner bearbetas med det här kontot.

Exempel

# 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

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