Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Copiare file in Archiviazione BLOB di Azure o in macchine virtuali.
Nota
Questa attività non supporta 'autenticazione di Azure Resource Manager con la federazione dell'identità del flusso di lavoro.
Sintassi
# 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.
Ingressi dati
SourcePath
-
origine
string
. Obbligatorio.
Percorso dei file di origine. I valori supportati includono pipeline YAML e supporto versione classica variabili di sistema predefinite come Build.Repository.LocalPath.
le variabili di rilascio sono supportate solo nelle versioni classiche. Il simbolo con caratteri jolly (*) è supportato ovunque nel percorso del file o nel nome file.
azureSubscription
-
sottoscrizione di Azure
Alias di input: ConnectedServiceNameARM
.
string
. Obbligatorio.
Specificare il nome di una connessione al servizio Azure Resource Manager 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 copiare i file nelle macchine virtuali di Azure.
nome contenitore ContainerName
-
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 il percorso di destinazione https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/
, specificare il nome del contenitore mycontainer
e il prefisso BLOB: vd1/vd2
.
BlobPrefix
-
prefisso BLOB
string
. Opzionale. Usare quando Destination = AzureBlob
.
Specificare un prefisso che può essere usato per filtrare i file.
Esempio: è possibile aggiungere un numero di build per filtrare i file da tutti i BLOB con lo stesso numero di build.
Esempio: se si specifica un prefisso BLOB myvd1
, viene creata una directory virtuale all'interno del contenitore. I file vengono copiati dall'origine in https://myaccount.blob.core.windows.net/mycontainer/myvd1/
.
gruppo di risorse resourceGroup
-
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
. Opzionale. Usare quando Destination = AzureVMs
. Valori consentiti: machineNames
(nomi computer), tags
. Valore predefinito: machineNames
Specificare un nome host o un tag di macchina virtuale che identifica un subset di macchine virtuali in un gruppo di risorse. i tag sono supportati solo per le risorse create tramite Azure Resource Manager.
MachineNames
-
criteri di filtro
string
. Opzionale. Usare quando Destination = AzureVMs
.
Specificare un elenco di nomi di vm o nomi di tag che identificano le macchine virtuali di destinazione dell'attività. I criteri di filtro validi includono:
- Nome di un gruppo di risorse di Azure .
- Variabile di output di un'attività precedente.
- Elenco delimitato da virgole di nomi di tag o nomi di vm.
- Formattare i nomi delle macchine virtuali usando un elenco delimitato da virgole di nomi di dominio completi o indirizzi IP.
- Formattare i nomi dei tag per un filtro come
{TagName}:{Value}
Esempio:Role:DB;OS:Win8.1
di accesso amministratore di vmsAdminUserName
-
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
. - I formati UPN, inclusi
username@domain.com
e gli account di sistema predefiniti, ad esempioNT Authority\System
, non sono supportati.
vmsAdminPassword
-
password
string
. Obbligatorio quando Destination = AzureVMs
.
Specificare la password per il parametro Admin Login
.
Per trovare la variabile, individuare il parametro Admin Login
. Selezionare l'icona del lucchetto per una variabile definita nella scheda Variables
per proteggere il valore e inserire qui il nome della variabile.
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.
Sono supportate variabili di ambiente come $env:windir
e $env:systemroot
. Esempi: $env:windir\FabrikamFiber\Web
e c:\FabrikamFiber
AdditionalArgumentsForBlobCopy
-
Argomenti facoltativi (per il caricamento di file nel BLOB)
string
.
Specificare argomenti aggiuntivi per AzCopy.exe
da usare durante il caricamento nel BLOB e il download nelle macchine virtuali. Per informazioni dettagliate, vedere Trasferire i dati con l'utilità AzCopy Command-Line Utility.
Per gli account di archiviazione Premium che supportano solo BLOB di pagine di Azure, usare --blob-type=PageBlob
come argomento aggiuntivo.
Gli argomenti predefiniti includono --log-level=INFO
(impostazione predefinita) e --recursive
(se il nome del contenitore non è $root
).
AdditionalArgumentsForVMCopy
-
argomenti facoltativi (per il download di file nella macchina virtuale)
string
. Opzionale. Usare quando Destination = AzureVMs
.
Specificare argomenti aggiuntivi per AzCopy.exe
che verranno applicati durante il download in macchine virtuali, ad esempio, --check-length=true
.
Se non vengono specificati argomenti facoltativi, per impostazione predefinita vengono aggiunti gli argomenti seguenti:
--log-level=INFO
-
--log-level=DEBUG
(se la pipeline è in esecuzione in modalità di debug impostata) --recursive
sasTokenTimeOutInMinutes
-
periodo di scadenza del token di firma di accesso condiviso in minuti
string
. Opzionale. Usare quando Destination = AzureBlob
. Valore predefinito: 240
Specificare il tempo in minuti dopo il quale scadrà il token di firma di accesso condiviso per il contenitore. Per impostazione predefinita, questo token scade dopo 4 ore.
enableCopyPrerequisites
-
Abilitare i prerequisiti di copia
boolean
. Opzionale. Usare quando Destination = AzureVMs
. Valore predefinito: false
Se abilitata, questa opzione usa un certificato autofirmato per configurare il listener di Gestione remota Windows (WinRM) sul protocollo HTTPS sulla porta 5986. Questa configurazione è necessaria per eseguire operazioni di copia nelle macchine virtuali di Azure.
- Se si accede alle macchine virtuali di destinazione tramite un servizio di bilanciamento del carico, configurare una regola NAT in ingresso per consentire l'accesso sulla porta 5986.
- Se le macchine virtuali di destinazione sono associate a un gruppo di sicurezza di rete (NSG), configurare una regola di sicurezza in ingresso per consentire l'accesso sulla porta 5986.
CopyFilesInParallel
-
copia in parallelo
boolean
. Opzionale. Usare quando Destination = AzureVMs
. Valore predefinito: true
Specificare true
per copiare i file in parallelo alle macchine virtuali di destinazione.
CleanTargetBeforeCopy
-
di destinazione pulita
boolean
. Opzionale. Usare quando Destination = AzureVMs
. Valore predefinito: false
Specificare true
per pulire la cartella di destinazione prima di copiare i file.
skipCACheck
-
certificato di test
boolean
. Opzionale. Usare quando Destination = AzureVMs
. Valore predefinito: true
WinRM richiede un certificato per il trasferimento HTTPS durante la copia di file dal BLOB di archiviazione intermedio nelle macchine virtuali di Azure.
Se si usa un certificato autofirmato, specificare true
per impedire al processo di convalidare il certificato con una CA attendibile.
Opzioni di controllo attività
Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Questa attività definisce le variabili di output seguenti , che è possibile utilizzare nei passaggi downstream, nei processi e nelle fasi.
StorageContainerUri
URI del contenitore in cui sono stati copiati i file. Valido solo quando la destinazione selezionata è un BLOB di Azure.
StorageContainerSasToken
SasToken per il contenitore in cui sono stati copiati i file. Valido solo quando la destinazione selezionata è un BLOB di Azure.
Osservazioni:
AzureFileCopy@4 supporta AzCopy.exe versione 10.8.0.
Nota
Questa attività viene scritta in PowerShell e funziona solo quando viene eseguita sugli agenti Windows. Se le pipeline richiedono agenti Linux e devono copiare i file in un account di archiviazione di Azure, prendere in considerazione l'esecuzione di comandi az storage blob
nell'attività dell'interfaccia della riga di comando di Azure come alternativa.
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 scaricati nelle macchine virtuali. Il contenitore viene eliminato dopo che i file vengono copiati correttamente nelle macchine virtuali.
L'attività usa AzCopy, l'utilità della riga di comando creata per la copia rapida dei dati da e verso gli account di archiviazione di Azure. La versione 4 dell'attività Copia file di Azure usa AzCopy V10.
Copia file di Azure versione 3 e versioni precedenti recupererebbe la chiave di Archiviazione di Azure per fornire l'accesso. Copia file di Azure versione 4 e versioni successive richiedono che Archiviazione di Azure sia autorizzata tramite Microsoft Entra ID o token di firma di accesso condiviso. Sono disponibili l'autenticazione con un'entità servizio e un'identità gestita. Per le identità gestite, è supportata solo l'identità gestita a livello di sistema. Il livello di autorizzazione richiesto viene visualizzato nell'opzione 1: Usare l'ID Microsoft Entra.
Per distribuire in modo dinamico i gruppi di risorse di Azure che contengono macchine virtuali, usare l'attività distribuzione del 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 versione 2 o successiva dell'attività per mantenere il nome del contenitore $web.
L'attività supporta l'autenticazione basata su Azure Active Directory. Sono disponibili l'autenticazione con un'entità servizio e un'identità gestita. Per le identità gestite, è supportata solo l'identità gestita a livello di sistema.
Quali sono i prerequisiti di 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à funzionerà con la versione 0.9.8 e successive. È possibile usare il programma di installazione di Azure PowerShell v1.0.2.
Quali sono i prerequisiti winRM per questa attività?
L'attività usa il protocollo HTTPS gestione remota Windows (WinRM) per copiare i file dal contenitore BLOB di archiviazione alle macchine virtuali di Azure. Ciò richiede che il servizio HTTPS WinRM sia configurato nelle macchine virtuali e che sia installato un certificato appropriato.
Configurare WinRM dopo la creazione della macchina virtuale
Se le macchine virtuali sono state 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 restrizioni remote di Controllo dell'account utente.
- Specificare le credenziali per l'attività per accedere alle macchine virtuali usando un account di accesso a livello di amministratore nel formato semplice nome utente senza alcuna parte di dominio.
- Installare un certificato nel computer che esegue l'agente di automazione.
- Se si usa un certificato autofirmato, impostare il parametro certificato di test dell'attività.
Quale tipo di connessione al servizio è necessario scegliere?
Per gli account di archiviazione di Azure Resource Manager e le macchine virtuali di Azure Resource Manager, usare un tipo di connessione del servizio azure Resource Manager. Vedere Automatizzare la distribuzione del gruppo di risorse di Azure usando un'entità servizio.
Durante l'uso di un tipo di connessione del servizio azure Resource Manager, l'attività filtra automaticamente 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.
Come si crea un account aziendale o dell'istituto di istruzione da usare con questa attività?
È possibile creare un account appropriato 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 al portale di Azure con questo account utente e modificare la password.
- Usare le credenziali di questo account nella connessione al servizio. Le distribuzioni vengono quindi elaborate usando questo account.
Se l'attività ha esito negativo, la copia riprenderà?
Poiché AzCopy V10 non supporta i file journal, l'attività non può riprendere la copia. È necessario eseguire di nuovo l'attività per copiare tutti i file.
I file di log e i file di piano vengono puliti dopo la copia?
I file di log e di piano non vengono eliminati dall'attività. Per pulire in modo esplicito i file, aggiungere un passaggio dell'interfaccia della riga di comando nel flusso di lavoro usando azcopy jobs clean.
Come si usa l'attività di copia file di Azure per copiare un file in una macchina virtuale di Azure che non dispone di un indirizzo IP pubblico?
Assicurarsi di usare la versione 4 dell'attività di copia file di Azure. Se l'attività non riesce, è possibile aggiungere un passaggio di compilazione per eseguire il comando azcopy cp "source-file-path" "destination-file-path"
per sostituire i valori di origine e di destinazione.
Errore non consentito: 'AzCopy.exe chiuso con codice di uscita diverso da zero durante il caricamento di file nell'archiviazione BLOB' durante l'uso dell'attività Copia file di Azure
Gli agenti ospitati vengono assegnati in modo casuale ogni volta che viene attivata una compilazione, gli indirizzi IP dell'agente saranno diversi in ogni esecuzione. Se questi indirizzi IP non sono inclusi nell'elenco di indirizzi IP consentiti, la comunicazione tra Azure DevOps e l'account di archiviazione ha esito negativo. In questi scenari, attenersi alla procedura descritta:
- Aggiungere un passaggio di compilazione usando l'interfaccia della riga di comando di Azure per identificare l'indirizzo IP dell'agente di compilazione ospitato da Microsoft in fase di esecuzione. Aggiungerà l'indirizzo IP alla regola di rete nell'account di archiviazione di Azure.
- Eseguire il passaggio di compilazione per l'account di archiviazione di Azure.
- Aggiungere un altro passaggio di compilazione usando l'interfaccia della riga di comando di Azure per rimuovere l'indirizzo IP dell'agente di compilazione dalla regola di rete dell'account di archiviazione di Azure.
Esempi
- 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)
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Gli agenti self-hosted devono avere funzionalità di che corrispondono alle seguenti richiedono di eseguire processi che usano questa attività: azureps |
funzionalità di |
Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | 1.103.0 o versione successiva |
Categoria attività | Distribuire |