Condividi tramite


AzureFileCopy@5 - Attività copia file di Azure v5

Copiare file in Archiviazione BLOB di Azure o macchine virtuali.

Sintassi

# Azure file copy v5
# Copy files to Azure Blob Storage or virtual machines.
- task: AzureFileCopy@5
  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. Clean Target. Default: false.
    #skipCACheck: true # boolean. Optional. Use when Destination = AzureVMs. Test Certificate. Default: true.

Input

SourcePath - Fonte
string. Obbligatorio.

Percorso dei file di origine. I valori supportati includono pipeline YAML e versione classica supportano variabili di sistema predefinite come Build.Repository.LocalPath.

Le variabili di versione sono supportate solo nelle versioni classiche. Il simbolo jolly (*) è supportato ovunque nel percorso del file o nel nome del 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 per la directory virtuale di destinazione all'interno del contenitore BLOB di Azure. Ciò si applica quando l'oggetto SourcePath contiene un carattere jolly che può corrispondere a più elementi.

Esempio: è possibile aggiungere un numero di compilazione al prefisso dei file da tutti i BLOB con lo stesso numero di compilazione.

Esempio: se si specifica un prefisso myvd1BLOB , viene creata una directory virtuale all'interno del contenitore. I file vengono copiati dall'origine a https://myaccount.blob.core.windows.net/mycontainer/myvd1/.

Nel caso in cui l'oggetto SourcePath sia un singolo elemento senza caratteri jolly, questo prefisso BLOB funzionerà come nome BLOB di destinazione.


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

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\usernamee .\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 per il Admin Login parametro.

Per trovare la variabile, individuare il Admin Login parametro . Selezionare l'icona del padlock per una variabile definita nella Variables scheda 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.

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 da AzCopy.exe usare durante il caricamento nel BLOB e il download nelle macchine virtuali. Per informazioni dettagliate, vedere Trasferire i dati con AzCopy Command-Line Utility .

Per gli account di archiviazione Premium che supportano solo i BLOB di pagine di Azure usano --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. facoltativo. Usare quando Destination = AzureVMs.

Specificare argomenti aggiuntivi a AzCopy.exe tale scopo durante il download di macchine virtuali, ad esempio , --check-length=true.

Se non vengono specificati argomenti facoltativi, vengono aggiunti per impostazione predefinita:

  • --log-level=INFO
  • --log-level=DEBUG Se la pipeline è in esecuzione nel set di modalità di debug)
  • --recursive

sasTokenTimeOutInMinutes - Periodo di scadenza del token di firma di accesso condiviso in minuti
string. facoltativo. Usare quando Destination = AzureBlob. Valore predefinito: 240.

Specificare l'ora in minuti dopo la scadenza del 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. facoltativo. 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. Applicabile solo per le macchine virtuali ARM.

  • Se le macchine virtuali di destinazione sono accessibili 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 - 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.


CleanTargetBeforeCopy - Destinazione pulita
boolean. Valore predefinito: false.

Specificare per pulire la cartella di destinazione prima di copiare true i file.


skipCACheck - Certificato di test
boolean. facoltativo. 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 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

Questa attività definisce le variabili di output seguenti, che è possibile usare nei passaggi, nei processi e nelle fasi downstream.

StorageContainerUri
Uri del contenitore in cui i file sono stati copiati. Valido solo quando la destinazione selezionata è BLOB di Azure.

StorageContainerSasToken
SasToken per il contenitore in cui i file sono stati copiati. Valido solo quando la destinazione selezionata è BLOB di Azure.

Commenti

AzureFileCopy@5 supporta AzCopy.exe versione 10.12.2.

Nota

È possibile bloccare l'uso delle chiavi dell'account di archiviazione e dei token di firma di accesso condiviso negli account di archiviazione. In queste situazioni l'attività AzureFileCopy@5 , che si basa sui token sas, non può essere usata.

L'attività AzureFileCopy@6 usa invece il controllo degli accessi in base al ruolo di Azure per accedere all'archiviazione BLOB. Ciò richiede l'identità della connessione al servizio usata per avere il ruolo RBAC appropriato, ad esempio Collaboratore dati BLOB di archiviazione. Vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.

L'attività AzureFileCopy@6 supporta anche connessioni di servizio che usano la federazione delle identità del carico di lavoro.

Nota

Questa attività viene scritta in PowerShell e funziona solo quando viene eseguita negli agenti Windows. Se le pipeline richiedono agenti Linux e devono copiare file in un account di archiviazione di Azure, prendere in considerazione l'esecuzione az storage blob di comandi 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 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 la copia rapida dei dati da e verso gli account di archiviazione di Azure. La versione 5 dell'attività Copia file di Azure usa AzCopy V10.

Copia file di Azure versione 3 e inferiore recupera la chiave di Archiviazione di Azure per fornire l'accesso. Copia file di Azure versione 4 e successiva richiedono l'autorizzazione di Archiviazione di Azure tramite Microsoft Entra ID o token di firma di accesso condiviso. L'autenticazione con un'entità servizio e un'identità gestita sono disponibili. Per le identità gestite, è supportata solo l'identità gestita a livello di sistema. Il livello di autorizzazione richiesto viene visualizzato nell'opzione 1: Usare Microsoft Entra ID.

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 dell'attività per mantenere il nome del contenitore $web .

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à funzionerà con la versione 0.9.8 e successiva. È possibile usare il programma di installazione di Azure PowerShell v1.0.2 per ottenere questa operazione.

Quali sono i prerequisiti di WinRM per questa attività?

L'attività usa il protocollo HTTPS di 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, eseguire le operazioni seguenti:

  1. Configurare una regola di accesso in ingresso per consentire HTTPS sulla porta 5986 di ogni macchina virtuale.
  2. Disabilitare le restrizioni remote dell'interfaccia utente.
  3. Specificare le credenziali per l'attività per accedere alle macchine virtuali usando un account di accesso a livello di amministratore nel nome utente del modulo semplice senza alcuna parte di dominio.
  4. Installare un certificato nel computer che esegue l'agente di automazione.
  5. Se si usa un certificato autofirmato, impostare il parametro Certificato di test dell'attività.

Quale tipo di connessione del 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 Resource Manager di Azure. Vedere Automazione della distribuzione del gruppo di risorse di Azure usando un'entità servizio.

  • Durante l'uso di un tipo di connessione del servizio Resource Manager di Azure, l'attività filtra automaticamente gli account di archiviazione più recenti di Azure Resource Manager e altri campi. Ad esempio, il gruppo di risorse o il servizio cloud e le macchine virtuali.

Ricerca per categorie creare 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:

  1. Usare il portale di Azure per creare un nuovo account utente in Azure Active Directory.
  2. Aggiungere l'account utente di Azure Active Directory al gruppo coamministratori nella sottoscrizione di Azure.
  3. Accedere alla portale di Azure con questo account utente e modificare la password.
  4. 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.

Ricerca per categorie usare l'attività di copia file di Azure per copiare un file in una macchina virtuale di Azure che non ha un indirizzo IP pubblico?

Assicurarsi di usare la versione 5 dell'attività di copia file di Azure. Se l'attività ha esito negativo, è 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 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 consentito di indirizzi IP, la comunicazione tra Azure DevOps e l'account di archiviazione non riesce. In questi scenari seguire i passaggi descritti:

  1. Aggiungere un passaggio di compilazione usando l'interfaccia della riga di comando di Azure per identificare l'indirizzo IP dell'agente di Compilazione ospitata Microsoft in fase di esecuzione. Aggiungerà l'indirizzo IP alla regola di rete nell'account di archiviazione di Azure.
  2. Eseguire il passaggio di compilazione per l'account di archiviazione di Azure.
  3. 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.

Esempio

trigger:
- main

pool:
  vmImage: windows-latest

steps:
- task: AzureFileCopy@5
  inputs:
    SourcePath: 'Readme.md'
    azureSubscription: 'MyAzureSubscription'
    Destination: 'AzureBlob'
    storage: 'MyStorage'
    ContainerName: 'MyContainerName'
  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à che soddisfano le richieste seguenti per eseguire 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