AzureFileCopy@3 - Attività copia file di Azure v3
Copiare file in Archiviazione BLOB di Azure o macchine virtuali.
Nota
Questa attività non supporta l'autenticazione di Azure Resource Manager con la federazione delle identità del flusso di lavoro.
Sintassi
# 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.
Input
SourcePath
- Fonte
string
. Obbligatorio.
Specificare il percorso assoluto della cartella di origine o del file nel computer locale o una condivisione UNC. È possibile usare variabili di sistema predefinite, $(Build.Repository.LocalPath)
ad esempio . I nomi contenenti caratteri jolly, *.zip
ad esempio non sono supportati. Il valore o l'espressione specificata devono restituire una singola cartella o un nome file.
azureSubscription
- Sottoscrizione di Azure
Alias di input: ConnectedServiceNameARM
. string
. Obbligatorio.
Specificare il nome di una connessione al servizio di Resource Manager di Azure configurata per la sottoscrizione in cui si trova il servizio di Azure di destinazione, la macchina virtuale o l'account di archiviazione. Per altre informazioni, vedere Panoramica di Azure Resource Manager.
Destination
- Tipo di destinazione
string
. Obbligatorio. Valori consentiti: AzureBlob
(BLOB di Azure), AzureVMs
(macchine virtuali di Azure).
Specificare il tipo di destinazione.
storage
- Account di archiviazione RM
Alias di input: StorageAccountRM
. string
. Obbligatorio.
Specificare un account di archiviazione ARM preesistente. Si tratta dell'account di archiviazione usato come intermediario per la copia di file in macchine virtuali di Azure.
ContainerName
- Nome contenitore
string
. Obbligatorio quando Destination = AzureBlob
.
Nome del contenitore in cui vengono copiati i file. Se il contenitore specificato non esiste nell'account di archiviazione, verrà creato.
Per creare una directory virtuale all'interno del contenitore, usare l'input del prefisso BLOB. Ad esempio, per la posizione https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/
di destinazione, specificare il nome mycontainer
del contenitore e il prefisso BLOB: vd1/vd2
.
BlobPrefix
- Prefisso BLOB
string
. facoltativo. Usare quando Destination = AzureBlob
.
Specificare un prefisso che può essere usato per filtrare i file.
Esempio: è possibile aggiungere un numero di compilazione per filtrare i file da tutti i BLOB con lo stesso numero di compilazione.
Esempio: se si specifica un prefisso myvd1
BLOB , viene creata una directory virtuale all'interno del contenitore. I file vengono copiati dall'origine a https://myaccount.blob.core.windows.net/mycontainer/myvd1/
.
resourceGroup
- Gruppo di risorse
Alias di input: EnvironmentNameRM
. string
. Obbligatorio quando Destination = AzureVMs
.
Specificare il nome del gruppo di risorse di destinazione in cui verranno copiati i file.
ResourceFilteringMethod
- Selezionare Computer per
string
. facoltativo. Usare quando Destination = AzureVMs
. Valori consentiti: machineNames
(Nomi computer), tags
. Valore predefinito: machineNames
.
Specificare un nome host della macchina virtuale o un tag che identifica un subset di macchine virtuali in un gruppo di risorse. I tag sono supportati solo per le risorse create tramite il Resource Manager di Azure.
MachineNames
- Criteri di filtro
string
. facoltativo. Usare quando Destination = AzureVMs
.
Specificare un elenco di nomi di macchine virtuali o nomi di tag che identificano le macchine virtuali di destinazione. I criteri di filtro validi includono:
- Nome di un gruppo di risorse di Azure.
- Variabile di output da un'attività precedente.
- Elenco delimitato da virgole di nomi di tag o nomi di macchine virtuali.
- Formattare i nomi delle macchine virtuali usando un elenco delimitato da virgole di indirizzi FQDN o IP.
- Formattare i nomi dei tag per un filtro come
{TagName}:{Value}
. Esempio:Role:DB;OS:Win8.1
,ffweb
,ffdb
o tag comeRole:DB
,Web
,OS:Win8.1
.
Nota: i delimitatori validi per i tag includono ,(virgola), :(colon) e ;(semicolon. Quando si specificano più tag, l'attività verrà eseguita solo nelle macchine virtuali che contengono i tag specificati. Per impostazione predefinita, l'attività viene eseguita in tutte le macchine virtuali.
vmsAdminUserName
- Amministrazione account di accesso
string
. Obbligatorio quando Destination = AzureVMs
.
Specificare il nome utente di un account con autorizzazioni amministrative per tutte le macchine virtuali di destinazione.
- I formati supportati includono:
username
,domain\username
,machine-name\username
e.\username
. - Formati UPN inclusi
username@domain.com
e account di sistema predefiniti,NT Authority\System
ad esempio non sono supportati.
vmsAdminPassword
- Password
string
. Obbligatorio quando Destination = AzureVMs
.
Specificare la password di amministratore delle macchine virtuali.
L'input valido include variabili definite nelle pipeline di compilazione o versione, $(passwordVariable)
ad esempio . Per proteggere una password, contrassegnarla come secret
.
TargetPath
- Cartella di destinazione
string
. Obbligatorio quando Destination = AzureVMs
.
Specificare il percorso della cartella nelle macchine virtuali di Azure in cui verranno copiati i file.
Variabili di ambiente come $env:windir
e $env:systemroot
supportate. Esempi: $env:windir\FabrikamFiber\Web
e c:\FabrikamFiber
AdditionalArgumentsForBlobCopy
- Argomenti facoltativi (per il caricamento di file nel BLOB)
string
.
Specificare argomenti aggiuntivi a AzCopy.exe
che possono essere applicati durante il caricamento in BLOB, /NC:10
ad esempio .
Se non vengono specificati argomenti facoltativi, gli argomenti seguenti vengono aggiunti per impostazione predefinita.
/Y
/SetContentType
/Z
/V
/S
- Aggiunta quando il nome del contenitore non$root
è ./BlobType:page
-Aggiunto quando l'account di archiviazione specificato è un account Premium./Pattern
- Aggiunto quando il percorso di origine è un file. Incluso con qualsiasi altro argomento facoltativo specificato.
AdditionalArgumentsForVMCopy
- Argomenti facoltativi (per il download di file nella macchina virtuale)
string
. facoltativo. Usare quando Destination = AzureVMs
.
Specificare argomenti aggiuntivi a AzCopy.exe
che possono essere applicati durante il download di macchine virtuali, /NC:10
ad esempio .
Se non vengono specificati argomenti facoltativi, i seguenti vengono aggiunti per impostazione predefinita.
/Y
/S
/Z
/V
enableCopyPrerequisites
- Abilitare i prerequisiti di copia
boolean
. facoltativo. Usare quando Destination = AzureVMs
. Valore predefinito: false
.
Se abilitato, usa un certificato autofirmato per configurare un listener di Gestione remota Windows (WinRM) sulla porta 5986 anziché sul protocollo HTTPS. Obbligatorio per eseguire l'operazione di copia nelle macchine virtuali di Azure. Se le macchine virtuali di destinazione usano un servizio di bilanciamento del carico, configurare le regole NAT in ingresso per la porta di destinazione (5986). Si applica solo per le macchine virtuali ARM. Nelle macchine virtuali di destinazione associate a un gruppo di sicurezza di rete (NSG), configurare una regola di sicurezza in ingresso per consentire l'accesso sulla porta 5986.
CopyFilesInParallel
- Copiare in parallelo
boolean
. facoltativo. Usare quando Destination = AzureVMs
. Valore predefinito: true
.
Specificare per copiare true
i file in parallelo alle macchine virtuali di destinazione. L'uso di questo valore può ridurre il tempo complessivo impiegato per eseguire l'azione.
CleanTargetBeforeCopy
- Destinazione pulita
boolean
. facoltativo. Usare quando Destination = AzureVMs
. Valore predefinito: false
.
Impostando questo valore per true
pulire la cartella di destinazione prima di eseguire l'azione di copia.
skipCACheck
- Certificato di test
boolean
. facoltativo. Usare quando Destination = AzureVMs
. Valore predefinito: true
.
Il valore predefinito non convalida se il certificato del server è stato firmato da una CA attendibile prima di connettersi tramite HTTPS.
outputStorageUri
- URI contenitore di archiviazione
string
.
Specificare il nome della variabile utilizzata per l'URI del contenitore di archiviazione in cui sono stati copiati i file. Valido solo quando la destinazione selezionata è un BLOB di Azure.
outputStorageContainerSasToken
- Token sas del contenitore di archiviazione
string
.
Specificare il nome della variabile usata per il token sas del contenitore di archiviazione che accede ai file copiati. Usare questa variabile come input per le attività successive. Per impostazione predefinita, il token di firma di accesso condiviso scade dopo 4 ore.
sasTokenTimeOutInMinutes
- Periodo di scadenza del token di firma di accesso condiviso in minuti
string
.
Specificare l'ora in minuti dopo la scadenza del token di firma di accesso condiviso. Valido solo quando la destinazione selezionata è BLOB di Azure.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Nessuno.
Osservazioni
Novità della versione AzureFileCopy@3
AzureFileCopy@3 supporta Az Module e ha arrestato il supporto dell'endpoint di servizio di Azure classico.
L'attività viene usata per copiare i file dell'applicazione e altri artefatti necessari per installare l'app, ad esempio script di PowerShell, moduli PowerShell-DSC e altro ancora.
Quando la destinazione è macchine virtuali di Azure, i file vengono prima copiati in un contenitore BLOB di Azure generato automaticamente e quindi scaricato nelle macchine virtuali. Il contenitore viene eliminato dopo che i file vengono copiati correttamente nelle macchine virtuali.
L'attività usa AzCopy, l'utilità da riga di comando compilata per copiare rapidamente i dati da e negli account di archiviazione di Azure. L'attività versione 3 o successiva usa AzCopy V7.
Per distribuire dinamicamente gruppi di risorse di Azure che contengono macchine virtuali, usare l'attività Distribuzione gruppo di risorse di Azure . Questa attività include un modello di esempio che può eseguire le operazioni necessarie per configurare il protocollo HTTPS WinRM nelle macchine virtuali, aprire la porta 5986 nel firewall e installare il certificato di test.
Nota
Se si esegue la distribuzione in Siti Web statici di Azure come contenitore nell'archiviazione BLOB, usare la versione 2 o successiva per mantenere il nome del contenitore $web .
Domande frequenti
Quali sono i prerequisiti Azure PowerShell per l'uso di questa attività?
L'attività richiede che Azure PowerShell sia installato nel computer che esegue l'agente di automazione. La versione consigliata è 1.0.2, ma l'attività funziona con la versione 0.9.8 e successiva. Usare Azure PowerShell Installer v1.0.2 per ottenere la versione consigliata.
Quali sono i prerequisiti di WinRM per questa attività?
L'attività usa il protocollo HTTPS WinRM per copiare i file dal contenitore BLOB di archiviazione alle macchine virtuali di Azure. Il servizio HTTPS WinRM deve essere configurato nelle macchine virtuali e un certificato appropriato installato.
Se le macchine virtuali vengono create senza aprire le porte HTTPS winRM, seguire questa procedura:
- Configurare una regola di accesso in ingresso per consentire HTTPS sulla porta 5986 di ogni macchina virtuale.
- Disabilitare le restrizioni remote dell'interfaccia utente.
- Specificare le credenziali per l'attività per accedere alle macchine virtuali usando un account di accesso a livello di amministratore formattato come nome utente senza alcun riferimento al dominio.
- Installare un certificato nel computer che esegue l'agente di automazione.
- Impostare il parametro Certificato di test dell'attività per un certificato autofirmato.
Quale tipo di connessione del servizio è necessario scegliere?
Nella tabella seguente sono elencati i tipi di account di archiviazione e le connessioni del servizio associate. Per identificare se un account di archiviazione si basa sulle API classiche o sulle API di Resource Manager, accedere alla portale di Azure e cercare account di archiviazione (versione classica) o account di archiviazione.
Tipo di account di archiviazione | Connessioni al servizio di Azure in TFS/TS |
---|---|
Gestione risorse | Connessione al servizio Azure Resource Manager |
Classic | Connessione del servizio di Azure con l'autenticazione basata su certificati o credenziali usando un account dell'istituto di istruzione o del lavoro |
Per le risorse classiche di Azure, usare un tipo di connessione del servizio di Azure con l'autenticazione basata su certificati o credenziali. Se si usa l'autenticazione basata sulle credenziali, assicurarsi che le credenziali siano per un account aziendale o dell'istituto di istruzione. Gli account Microsoft,
joe@live.com
ad esempio ejoe@hotmail.com
non sono supportati.Per le macchine virtuali di Azure Resource Manager, usare un tipo di connessione di servizio di Azure Resource Manager. Per altre informazioni, vedere Automazione della distribuzione del gruppo di risorse di Azure usando un'entità servizio.
Se si usa un tipo di connessione del servizio Resource Manager azure o un tipo di connessione del servizio di Azure con l'autenticazione basata su certificati, l'attività filtra automaticamente gli account di archiviazione classici appropriati, gli account di archiviazione di Azure Resource Manager più recenti e altri campi. Ad esempio, il gruppo di risorse o il servizio cloud e le macchine virtuali.
Nota
Attualmente un tipo di connessione del servizio di Azure con l'autenticazione basata sulle credenziali non filtra i campi archiviazione, Gruppo di risorse o servizio cloud e macchine virtuali.
Ricerca per categorie correzione dell'errore '403: questa richiesta non è autorizzata a eseguire questa operazione usando questa autorizzazione'?
Quando Azure DevOps crea e autorizza la connessione al servizio ad Azure, crea una registrazione app nella sottoscrizione di Active Directory. Questa identità viene aggiunta automaticamente con un Contributor
ruolo a tutte le risorse nel gruppo di risorse scelto per autorizzare. Per caricare BLOB in un account di archiviazione, non Contributor
è sufficiente. È necessario assegnare manualmente il Storage Blob Data Contributor
ruolo all'identità di registrazione dell'app.
Copiare l'identità dell'app dalla voce ereditata esistente in quanto Contributor
verrà visualizzata nel riquadro IAM e cercare in modo esplicito nell'interfaccia Add role assignment
utente. L'identità non è elencata nell'elenco a discesa, è necessario cercare l'identificatore.
Cosa accade se il gruppo di risorse contiene sia macchine virtuali classiche che Resource Manager?
Se il gruppo di risorse specificato contiene sia macchine virtuali di Azure Resource Manager che classiche, il set di macchine virtuali destinate dipende dal tipo di connessione.
- Per le connessioni basate su certificati e le connessioni basate sulle credenziali, l'operazione di copia viene eseguita solo nelle macchine virtuali classiche.
- Per le connessioni basate sul nome dell'entità servizio, l'operazione di copia viene eseguita solo sulle macchine virtuali Resource Manager.
Ricerca per categorie creare un account aziendale o dell'istituto di istruzione da usare con questa attività?
Un account adatto può essere facilmente creato per l'uso in una connessione al servizio:
- Usare il portale di Azure per creare un nuovo account utente in Azure Active Directory.
- Aggiungere l'account utente di Azure Active Directory al gruppo coamministratori nella sottoscrizione di Azure.
- Accedere alla portale di Azure con questo account utente e modificare la password.
- Usare le nuove credenziali per questo account nella connessione al servizio. Le distribuzioni verranno elaborate usando questo account.
Esempio
# 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
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Esecuzione in | Agente, DeploymentGroup |
Richieste | Gli agenti self-hosted devono avere funzionalità che corrispondono alle richieste seguenti per l'esecuzione di processi che usano questa attività: azureps |
Capabilities | Questa attività non soddisfa le richieste per le attività successive nel processo. |
Restrizioni dei comandi | Qualsiasi |
Variabili impostabili | Qualsiasi |
Versione agente | 1.103.0 o versione successiva |
Categoria attività | Distribuire |