Delen via


AzureFileCopy@3 - Azure-bestandskopie v3-taak

Kopieer bestanden naar Azure Blob Storage of virtuele machines.

Deze taak is afgeschaft omdat deze versie van de AzureFileCopy-taak gebruikmaakt van een buiten gebruik gestelde versie van AzCopy. Gebruik de nieuwste versie van de AzureFileCopy-taak. Zie AzCopy-migratiehandleiding voor v8 naar v10.

Notitie

Deze taak biedt geen ondersteuning voor Azure Resource Manager-verificatie metvoor werkstroomidentiteitsfederatie.

Kopieer bestanden naar Azure Blob Storage of virtuele machines.

Notitie

Deze taak biedt geen ondersteuning voor Azure Resource Manager-verificatie metvoor werkstroomidentiteitsfederatie.

Syntaxis

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

Invoer

SourcePath - bron
string. Verplicht.

Geef het absolute pad van de bronmap of het bestand op de lokale computer of een UNC-share op. U kunt vooraf gedefinieerde systeemvariabelen zoals $(Build.Repository.LocalPath)gebruiken. Namen met jokertekens, zoals *.zip, worden niet ondersteund. De waarde of expressie die u opgeeft, moet één map of bestandsnaam retourneren.


azureSubscription - Azure-abonnement
Invoeralias: ConnectedServiceNameARM. string. Verplicht.

Geef de naam op van een Azure Resource Manager-serviceverbinding geconfigureerd voor het abonnement waarin de Azure-doelservice, de virtuele machine of het opslagaccount zich bevindt. Zie Overzicht van Azure Resource Manager voor meer informatie.


Destination - doeltype
string. Verplicht. Toegestane waarden: AzureBlob (Azure Blob), AzureVMs (Azure-VM's).

Geef het doeltype op.


storage - RM-opslagaccount
Invoeralias: StorageAccountRM. string. Verplicht.

Geef een bestaand ARM-opslagaccount op. Dit is het opslagaccount dat wordt gebruikt als intermediair voor het kopiëren van bestanden naar Azure-VM's.


ContainerName - containernaam
string. Vereist wanneer Destination = AzureBlob.

De naam van de container waarin bestanden worden gekopieerd. Als de opgegeven container niet bestaat in het opslagaccount, wordt deze gemaakt.

Als u een virtuele map in de container wilt maken, gebruikt u de invoer voor het blobvoorvoegsel. Geef bijvoorbeeld voor de doellocatie https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/de containernaam mycontainer en het blobvoorvoegsel op: vd1/vd2.


BlobPrefix - blobvoorvoegsel
string. Facultatief. Gebruiken wanneer Destination = AzureBlob.

Geef een voorvoegsel op dat kan worden gebruikt om bestanden te filteren.

Voorbeeld: U kunt een buildnummer toevoegen om de bestanden van alle blobs met hetzelfde buildnummer te filteren.

Voorbeeld: Als u een blobvoorvoegsel opgeeft myvd1, wordt er een virtuele map gemaakt in de container. Bestanden worden gekopieerd van de bron naar https://myaccount.blob.core.windows.net/mycontainer/myvd1/.


resourceGroup - resourcegroep
Invoeralias: EnvironmentNameRM. string. Vereist wanneer Destination = AzureVMs.

Geef de naam op van de doelresourcegroep waarin bestanden worden gekopieerd.


ResourceFilteringMethod - Machines selecteren op
string. Facultatief. Gebruiken wanneer Destination = AzureVMs. Toegestane waarden: machineNames (machinenamen), tags. Standaardwaarde: machineNames.

Geef een vm-hostnaam of -tag op die een subset van VM's in een resourcegroep identificeert. Tags worden alleen ondersteund voor resources die zijn gemaakt via Azure Resource Manager.


MachineNames - filtercriteria
string. Facultatief. Gebruiken wanneer Destination = AzureVMs.

Geef een lijst op met VM-namen of tagnamen die de VM's identificeren waarop de taak is gericht. Geldige filtercriteria omvatten:

  • De naam van een Azure-resourcegroep.
  • Een uitvoervariabele van een vorige taak.
  • Een door komma's gescheiden lijst met tagnamen of VM-namen.
  • Vm-namen opmaken met behulp van een door komma's gescheiden lijst met FQDN's of IP-adressen.
  • Tagnamen opmaken voor een filter als {TagName}:{Value}. Voorbeeld: Role:DB;OS:Win8.1, ffweb, ffdbof tags zoals Role:DB, Web, OS:Win8.1.

Opmerking: Geldige scheidingstekens voor tags zijn onder andere (komma), :(komma) en ;(semicolon). Wanneer u meerdere tags opgeeft, wordt de taak alleen uitgevoerd op de VM's die de opgegeven tags bevatten. De taak wordt standaard uitgevoerd op alle VM's.


vmsAdminUserName - aanmeldgegevens van beheerders
string. Vereist wanneer Destination = AzureVMs.

Geef de gebruikersnaam van een account op met beheerdersmachtigingen voor alle doel-VM's.

  • Ondersteunde indelingen zijn: username, domain\username, machine-name\usernameen .\username.
  • UPN-indelingen, waaronder username@domain.com en ingebouwde systeemaccounts zoals NT Authority\System, worden niet ondersteund.

vmsAdminPassword - wachtwoord
string. Vereist wanneer Destination = AzureVMs.

Geef het beheerderswachtwoord van de VM's op.

Geldige invoer bevat variabelen die zijn gedefinieerd in build- of release-pijplijnen, zoals $(passwordVariable). Als u een wachtwoord wilt beveiligen, markeert u het als secret.


TargetPath - doelmap
string. Vereist wanneer Destination = AzureVMs.

Geef het pad op naar de map in de Virtuele Azure-machines waarin bestanden worden gekopieerd.

Omgevingsvariabelen zoals $env:windir en $env:systemroot worden ondersteund. Voorbeelden: $env:windir\FabrikamFiber\Web en c:\FabrikamFiber


AdditionalArgumentsForBlobCopy - Optionele argumenten (voor het uploaden van bestanden naar blob)
string.

Geef aanvullende argumenten op voor AzCopy.exe die kunnen worden toegepast bij het uploaden naar blobs, zoals /NC:10.

Als er geen optionele argumenten zijn opgegeven, worden de volgende argumenten standaard toegevoegd.

  • /Y
  • /SetContentType
  • /Z
  • /V
  • /S - Toegevoegd wanneer de containernaam niet is $root.
  • /BlobType:page -Added wanneer het opgegeven opslagaccount een Premium-account is.
  • /Pattern - Toegevoegd wanneer het bronpad een bestand is. Opgenomen in andere opgegeven optionele argumenten.

AdditionalArgumentsForVMCopy - optionele argumenten (voor het downloaden van bestanden naar VM)
string. Facultatief. Gebruiken wanneer Destination = AzureVMs.

Geef aanvullende argumenten op voor AzCopy.exe die kunnen worden toegepast bij het downloaden naar VM's, zoals /NC:10.

Als er geen optionele argumenten zijn opgegeven, worden de volgende standaard toegevoegd.

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

enableCopyPrerequisites - vereisten voor kopiëren inschakelen
boolean. Facultatief. Gebruiken wanneer Destination = AzureVMs. Standaardwaarde: false.

Als dit is ingeschakeld, gebruikt u een zelfondertekend certificaat om een WinRM-listener (Windows Remote Management) te configureren op poort 5986 in plaats van het HTTPS-protocol. Vereist voor het uitvoeren van kopieerbewerkingen op Azure-VM's. Als de doel-VM's een load balancer gebruiken, configureert u binnenkomende NAT-regels voor de doelpoort (5986). Is alleen van toepassing op ARM-VM's. Configureer op doel-VM's die zijn gekoppeld aan een netwerkbeveiligingsgroep (NSG) een inkomende beveiligingsregel om toegang op poort 5986 toe te staan.


CopyFilesInParallel - kopiëren in parallelle
boolean. Facultatief. Gebruiken wanneer Destination = AzureVMs. Standaardwaarde: true.

Geef true op om bestanden parallel te kopiëren naar de doel-VM's. Door deze waarde te gebruiken, kan de totale tijd die nodig is om de actie uit te voeren, verkorten.


CleanTargetBeforeCopy - doel opschonen
boolean. Facultatief. Gebruiken wanneer Destination = AzureVMs. Standaardwaarde: false.

Als u deze waarde instelt op true wordt de doelmap opgeschoond voordat u de kopieeractie uitvoert.


skipCACheck - certificaat testen
boolean. Facultatief. Gebruiken wanneer Destination = AzureVMs. Standaardwaarde: true.

De standaardwaarde valideert niet of het servercertificaat is ondertekend door een vertrouwde CERTIFICERINGsinstantie voordat u verbinding maakt via HTTPS.


outputStorageUri - Storage Container URI-
string.

Geef de naam op van de variabele die wordt gebruikt voor de opslagcontainer-URI waarnaar bestanden zijn gekopieerd. Alleen geldig wanneer de geselecteerde bestemming een Azure Blob is.


outputStorageContainerSasToken - SAS-token voor opslagcontainers
string.

Geef de naam op van de variabele die wordt gebruikt voor het SAS-token van de opslagcontainer dat toegang heeft tot de bestanden die zijn gekopieerd. Gebruik deze variabele als invoer voor volgende taken. Standaard verloopt het SAS-token na 4 uur.


sasTokenTimeOutInMinutes - verloopperiode van SAS-token in minuten
string.

Geef de tijd in minuten op waarna het SAS-token verloopt. Alleen geldig wanneer de geselecteerde bestemming Azure Blob is.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Wat is er nieuw in versie AzureFileCopy@3

  • AzureFileCopy@3 ondersteunt Az Module en ondersteunt het klassieke Azure-service-eindpunt niet meer.

  • De taak wordt gebruikt om toepassingsbestanden en andere artefacten te kopiëren die nodig zijn om de app te installeren, zoals PowerShell-scripts, PowerShell-DSC modules en meer.

  • Wanneer het doel Azure-VM's is, worden de bestanden eerst gekopieerd naar een automatisch gegenereerde Azure Blob-container en vervolgens gedownload naar de VM's. De container wordt verwijderd nadat de bestanden zijn gekopieerd naar de VM's.

  • De taak maakt gebruik van AzCopy, het opdrachtregelprogramma dat is gebouwd om snel gegevens van en naar Azure-opslagaccounts te kopiëren. Voor de taakversie 3 of lager wordt AzCopy V7 gebruikt.

  • Als u Azure-resourcegroepen met virtuele machines dynamisch wilt implementeren, gebruikt u de azure-resourcegroepimplementatie taak. Deze taak heeft een voorbeeldsjabloon waarmee de vereiste bewerkingen kunnen worden uitgevoerd om het WinRM HTTPS-protocol op VM's in te stellen, poort 5986 in de firewall te openen en het testcertificaat te installeren.

Notitie

Als u implementeert in Azure Static Websites als een container in Blob Storage, gebruikt u versie 2 of hoger om de naam van de $web container te behouden.

Veelgestelde vragen

Wat zijn de Azure PowerShell-vereisten voor het gebruik van deze taak?

Voor de taak moet Azure PowerShell zijn geïnstalleerd op de computer waarop de automatiseringsagent wordt uitgevoerd. De aanbevolen versie is 1.0.2, maar de taak werkt met versie 0.9.8 en hoger. Gebruik Azure PowerShell Installer v1.0.2 om de aanbevolen versie op te halen.

Wat zijn de WinRM-vereisten voor deze taak?

De taak maakt gebruik van het WinRM HTTPS-protocol om de bestanden van de opslagblobcontainer naar de Virtuele Azure-machines te kopiëren. De WinRM HTTPS-service moet worden geconfigureerd op de VM's en er moet een geschikt certificaat zijn geïnstalleerd.

Als de VIRTUELE machines worden gemaakt zonder de WinRM HTTPS-poorten te openen, voert u de volgende stappen uit:

  1. Configureer een regel voor binnenkomende toegang om HTTPS toe te staan op poort 5986 van elke VIRTUELE machine.
  2. Schakel externe beperkingen voor UAC uit.
  3. Geef de referenties voor de taak op om toegang te krijgen tot de VM's met behulp van een aanmelding op beheerdersniveau die is opgemaakt als gebruikersnaam zonder domeinverwijzing.
  4. Installeer een certificaat op de computer waarop de automatiseringsagent wordt uitgevoerd.
  5. Stel de parameter Test Certificate van de taak in voor een zelfondertekend certificaat.

Welk type serviceverbinding moet ik kiezen?

De volgende tabel bevat opslagaccounttypen en de bijbehorende serviceverbindingen. Als u wilt bepalen of een opslagaccount is gebaseerd op de klassieke API's of de Resource Manager-API's, meldt u zich aan bij de Azure Portal en zoekt u naar Storage-accounts (klassiek) of Storage-accounts.

Storage account type Azure-serviceverbindingen in TFS/TS
Resource Manager Azure Resource Manager-serviceverbinding
Klassiek Azure-serviceverbinding met verificatie op basis van certificaten of referenties met behulp van een school- of werkaccount
  • Gebruik voor klassieke Azure-resources een Azure-serviceverbindingstype met verificatie op basis van certificaten of referenties. Als u verificatie op basis van referenties gebruikt, moet u ervoor zorgen dat de referenties voor een school- of werkaccount zijn. Microsoft-accounts zoals joe@live.com en joe@hotmail.com worden niet ondersteund.

  • Gebruik voor Azure Resource Manager-VM's een Azure Resource Manager serviceverbindingstype. Zie Azure Resource Group-implementatie automatiseren met behulp van een service-principalvoor meer informatie.

  • Als u een Azure Resource Manager serviceverbindingstype of een Azure-serviceverbindingstype gebruikt met verificatie op basis van certificaten, filtert de taak automatisch de juiste klassieke opslagaccounts, nieuwere Azure Resource Manager-opslagaccounts en andere velden. Bijvoorbeeld de resourcegroep of cloudservice en de virtuele machines.

Notitie

Momenteel filtert een Azure-serviceverbindingstype met verificatie op basis van referenties de opslag-, resourcegroep- of cloudservice- en virtuele-machinevelden niet.

Hoe kan ik de fout '403 oplossen: deze aanvraag is niet gemachtigd om deze bewerking uit te voeren met behulp van deze machtiging'?

Wanneer Azure DevOps de serviceverbinding met Azure maakt en autoriseert, wordt er een app-registratie gemaakt in de Active Directory van uw abonnement. Deze identiteit wordt automatisch toegevoegd met een Contributor rol aan alle resources in de resourcegroep die u hebt gekozen om te autoriseren. Als u Blobs wilt uploaden naar een opslagaccount, is het Contributor niet voldoende. U moet de Storage Blob Data Contributor rol handmatig toewijzen aan de app-registratie-id.

Kopieer de app-identiteit van de bestaande overgenomen vermelding als Contributor die u in het deelvenster IAM ziet en zoek er expliciet naar in de Add role assignment UI. De identiteit wordt niet vermeld in de vervolgkeuzelijst. U moet zoeken naar de id.

Wat gebeurt er als mijn resourcegroep zowel klassieke als Resource Manager-VM's bevat?

Als de opgegeven resourcegroep zowel Azure Resource Manager als klassieke VM's bevat, is de set vm's waarop het doel is, afhankelijk van het verbindingstype.

  • Voor verbindingen op basis van certificaten en verbindingen op basis van referenties wordt de kopieerbewerking alleen uitgevoerd op klassieke VM's.
  • Voor verbindingen op basis van Service Principal Name wordt de kopieerbewerking alleen uitgevoerd op Resource Manager-VM's.

Hoe maak ik een school- of werkaccount voor gebruik met deze taak?

Een geschikt account kan eenvoudig worden gemaakt voor gebruik in een serviceverbinding:

  1. Gebruik Azure Portal om een nieuw gebruikersaccount te maken in Azure Active Directory.
  2. Voeg het Azure Active Directory-gebruikersaccount toe aan de groep medebeheerders in uw Azure-abonnement.
  3. Meld u aan bij Azure Portal met dit gebruikersaccount en wijzig het wachtwoord.
  4. Gebruik de nieuwe referenties voor dit account in de serviceverbinding. Implementaties worden verwerkt met dit account.

Voorbeelden

# 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

Vereisten

Voorwaarde Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
eisen Zelf-hostende agents moeten mogelijkheden hebben die overeenkomen met de volgende eisen om taken uit te voeren die gebruikmaken van deze taak: azureps:
mogelijkheden Deze taak voldoet niet aan de vereisten voor volgende taken in de taak.
opdrachtbeperkingen Welk dan ook
variabelen instellen Welk dan ook
Agentversie 1.103.0 of hoger
Taakcategorie Implementeren