AzureFileCopy@3 – Azure-filkopiering v3-uppgift
Kopiera filer till Azure Blob Storage eller virtuella datorer.
Denna uppgift är inaktuell eftersom denna version av AzureFileCopy-uppgiften använder en utfasad version av AzCopy. Använd den senaste versionen av AzureFileCopy-aktiviteten. Se migreringsguiden för AzCopy för v8 till v10.
Anmärkning
Den här uppgiften stöder inte Azure Resource Manager-autentisering med arbetsflödesidentitetsfederation.
Kopiera filer till Azure Blob Storage eller virtuella datorer.
Anmärkning
Den här uppgiften stöder inte Azure Resource Manager-autentisering med arbetsflödesidentitetsfederation.
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.
Ingångar
SourcePath
-
Källa
string
. Obligatoriskt.
Ange den absoluta sökvägen till 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
. Obligatoriskt.
Ange namnet på en Azure Resource Manager-tjänstanslutning konfigurerad för prenumerationen där mål-Azure-tjänsten, den virtuella datorn eller lagringskontot finns. Mer information finns i Översikt över Azure Resource Manager.
Destination
-
måltyp
string
. Obligatoriskt. Tillåtna värden: AzureBlob
(Azure Blob), AzureVMs
(virtuella Azure-datorer).
Ange måltyp.
storage
-
RM Storage-konto
Indataalias: StorageAccountRM
.
string
. Obligatoriskt.
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 containernamnet mycontainer
och blobprefixet: 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 versionsnummer för att filtrera 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/
.
resourceGroup
-
resursgrupp
Indataalias: EnvironmentNameRM
.
string
. Krävs när Destination = AzureVMs
.
Ange namnet på den målresursgrupp 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 den virtuella datorn 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 rikta in sig på. 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 eller IP-adresser.
- Formatera taggnamn för ett filter som
{TagName}:{Value}
. Exempel:Role:DB;OS:Win8.1
,ffweb
,ffdb
eller taggar somRole:DB
,Web
,OS:Win8.1
.
Obs! Giltiga avgränsare för taggar inkluderar ,(komma), :(kolon) och ;(semikolon). När du anger 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
-
administratörsinloggning
string
. Krävs när Destination = AzureVMs
.
Ange användarnamnet för ett konto med administrativ behörighet på alla virtuella måldatorer.
- Format som stöds är:
username
,domain\username
,machine-name\username
och.\username
. - UPN-format som
username@domain.com
och inbyggda systemkonton somNT Authority\System
stöds inte.
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ålmapp
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 för AzCopy.exe
som kan användas vid uppladdning till blobar, till exempel /NC:10
.
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 är$root
. -
/BlobType:page
-Added 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 för AzCopy.exe
som kan användas vid nedladdning till virtuella datorer, till 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ärden 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 regel för inkommande säkerhet 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
för att kopiera filer parallellt med 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
-
Storage Container URI
string
.
Ange namnet på variabeln som används för lagringscontainerns URI som filerna kopierades till. Endast giltigt 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 sas-token för lagringscontainern som kommer åt filerna som kopierades. Använd den här variabeln som indata för efterföljande aktiviteter. 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 upphör att gälla. Gäller endast 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
Ingen.
Anmärkningar
Nyheter i version AzureFileCopy@3
AzureFileCopy@3 stöder Az Module 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 Azure Resource Group Deployment. 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.
Anmärkning
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 förhandskraven för Azure PowerShell för att kunna använda den här uppgiften?
Uppgiften kräver att Azure PowerShell är installerat på datorn 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 WinRM-kraven för den här uppgiften?
Uppgiften använder WinRM HTTPS-protokollet för att kopiera filerna från lagringsblobcontainern till de virtuella Azure-datorerna. WinRM HTTPS-tjänsten måste konfigureras på de virtuella datorerna och ett lämpligt certifikat installeras.
Om de virtuella datorerna skapas utan att winRM HTTPS-portarna öppnas följer du dessa steg:
- 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å formaterad som användarnamn utan någon domänreferens.
- Installera ett certifikat på datorn som kör automationsagenten.
- 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-portalen och söker efter Storage-konton (klassisk) eller Storage-konton.
Storage account type | Azure-tjänstanslutningar i TFS/TS |
---|---|
Resurshanterare | Azure Resource Manager-tjänstanslutning |
Klassisk | Azure-tjänstanslutning med certifikatbaserad eller autentiseringsuppgifter med hjälp av ett skol- eller arbetskonto |
För klassiska Azure-resurser använder du en Azure tjänstanslutningstyp med certifikat- eller autentiseringsuppgifterbaserad autentisering. Om du använder autentiseringsuppgifter som baseras på autentiseringsuppgifter kontrollerar du att autentiseringsuppgifterna gäller för ett skol- eller arbetskonto. Microsoft-konton som
joe@live.com
ochjoe@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 ett tjänsthuvudnamn.
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.
Anmärkning
För närvarande filtrerar en Azure tjänstanslutningstyp med autentiseringsuppgifter inte fälten lagring, resursgrupp eller molntjänst och virtuella datorer.
Hur åtgärdar jag felet "403: Den här 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 skapar den en appregistrering i din prenumerations Active Directory. Den här identiteten läggs automatiskt till med en Contributor
roll för alla resurser i resursgruppen som du valde att auktorisera. För att kunna ladda upp blobar till ett lagringskonto är Contributor
inte tillräckligt. Du måste tilldela Storage Blob Data Contributor
rollen manuellt till appregistreringsidentiteten.
Kopiera appidentiteten från den befintliga ärvda posten som Contributor
som du ser i IAM-fönstret och sök uttryckligen efter den i Add role assignment
användargränssnittet. 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 virtuella Resource Manager-datorer?
Om den angivna resursgruppen innehåller både Azure Resource Manager och klassiska virtuella datorer beror den uppsättning virtuella datorer som är mål på anslutningstypen.
- För certifikatbaserade anslutningar och autentiseringsuppgifter-baserade anslutningar utförs kopieringsåtgärden endast på klassiska virtuella datorer.
- För namnbaserade anslutningar för tjänstens huvudnamn utförs kopieringsåtgärden endast på virtuella Resource Manager-datorer.
Hur skapar jag 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:
- Använd Azure-portalen 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-portalen med det här användarkontot och ändra lösenordet.
- 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 |
kräver | Lokalt installerade agenter måste ha funktioner som matchar följande kräver att köra jobb som använder den här uppgiften: azureps |
funktioner | Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Vilken som helst |
variabler som kan | Vilken som helst |
Agentversion | 1.103.0 eller senare |
Aktivitetskategori | Gruppera |