Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Copie arquivos para o Armazenamento de Blobs do Azure ou máquinas virtuais.
Esta tarefa foi preterida, pois esta versão da tarefa AzureFileCopy utiliza uma versão desativada do AzCopy. Use a versão mais recente da tarefa AzureFileCopy. Consulte Guia de Migração do AzCopy para v8 a v10.
Observação
Esta tarefa não suporta autenticação do Azure Resource Manager com federação de identidade de fluxo de trabalho.
Copie arquivos para o Armazenamento de Blobs do Azure ou máquinas virtuais.
Observação
Esta tarefa não suporta autenticação do Azure Resource Manager com federação de identidade de fluxo de trabalho.
Sintaxe
# 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.
Insumos
SourcePath
-
de origem
string. Obrigatório.
Especifique o caminho absoluto da pasta de origem ou arquivo na máquina local ou um compartilhamento UNC. Você pode usar variáveis de sistema predefinidas, como $(Build.Repository.LocalPath). Não há suporte para nomes que contenham curingas, como *.zip. O valor ou expressão especificado deve retornar uma única pasta ou um nome de arquivo.
azureSubscription
-
Subscrição do Azure
Alias de entrada: ConnectedServiceNameARM.
string. Obrigatório.
Especifique o nome de uma conexão de serviço do Azure Resource Manager configurada para a assinatura onde o serviço do Azure, a máquina virtual ou a conta de armazenamento de destino está localizado. Consulte de visão geral do Azure Resource Manager para obter mais detalhes.
Destination
-
Tipo de destino
string. Obrigatório. Valores permitidos: AzureBlob (Blob do Azure), AzureVMs (VMs do Azure).
Especifique o tipo de destino.
storage
-
de Conta de Armazenamento RM
Alias de entrada: StorageAccountRM.
string. Obrigatório.
Especifique uma conta de armazenamento ARM pré-existente. Esta é a conta de armazenamento usada como intermediário para copiar arquivos para VMs do Azure.
ContainerName
-
nome do contêiner
string. Necessário quando Destination = AzureBlob.
O nome do contêiner para o qual os arquivos são copiados. Se o contêiner especificado não existir na conta de armazenamento, ele será criado.
Para criar um diretório virtual dentro do contêiner, use a entrada do prefixo blob. Por exemplo, para o local de destino https://myaccount.blob.core.windows.net/mycontainer/vd1/vd2/, especifique o nome do contêiner mycontainer e o prefixo do blob: vd1/vd2.
BlobPrefix
-
Prefixo de Blob
string. Opcional. Use quando Destination = AzureBlob.
Especifique um prefixo que possa ser usado para filtrar arquivos.
Exemplo: Você pode acrescentar um número de compilação para filtrar os arquivos de todos os blobs com o mesmo número de compilação.
Exemplo: Se você especificar um prefixo de blob myvd1, um diretório virtual será criado dentro do contêiner. Os arquivos são copiados da fonte para https://myaccount.blob.core.windows.net/mycontainer/myvd1/.
resourceGroup
-
Grupo de Recursos
Alias de entrada: EnvironmentNameRM.
string. Necessário quando Destination = AzureVMs.
Especifique o nome do Grupo de Recursos de destino para o qual os arquivos serão copiados.
ResourceFilteringMethod
-
Selecionar máquinas por
string. Opcional. Use quando Destination = AzureVMs. Valores permitidos: machineNames (Nomes de máquinas), tags. Valor padrão: machineNames.
Especifique um nome de host ou marca de VM que identifique um subconjunto de VMs em um grupo de recursos. Tags são suportadas apenas para recursos criados por meio do Azure Resource Manager.
MachineNames
-
Critérios de Filtro
string. Opcional. Use quando Destination = AzureVMs.
Forneça uma lista de nomes de VM ou nomes de marcas que identifiquem as VMs que a tarefa terá como destino. Os critérios de filtro válidos incluem:
- O nome de um Grupo de Recursos do Azure.
- Uma variável de saída de uma tarefa anterior.
- Uma lista delimitada por vírgulas de nomes de tags ou nomes de VMs.
- Formate nomes de VM usando uma lista separada por vírgulas de FQDNs ou endereços IP.
- Formatar nomes de tags para um filtro como
{TagName}:{Value}. Exemplo:Role:DB;OS:Win8.1,ffweb,ffdbou tags comoRole:DB,Web,OS:Win8.1.
Nota: Os delimitadores válidos para tags incluem ,(vírgula), :(dois-pontos) e ;(ponto-e-vírgula). Ao fornecer várias tags, a tarefa será executada somente nas VMs que contêm as tags especificadas. Por padrão, a tarefa é executada em todas as VMs.
vmsAdminUserName
-
de login de administrador
string. Necessário quando Destination = AzureVMs.
Forneça o nome de usuário de uma conta com permissões administrativas em todas as VMs de destino.
- Os formatos suportados incluem:
username,domain\username,machine-name\usernamee.\username. - Os formatos UPN, incluindo
username@domain.come contas de sistema incorporadas, comoNT Authority\System, não são suportados.
vmsAdminPassword
-
Palavra-passe
string. Necessário quando Destination = AzureVMs.
Forneça a senha de administrador das VMs.
A entrada válida inclui variáveis definidas em pipelines de compilação ou liberação, como $(passwordVariable). Para proteger uma palavra-passe, marque-a como secret.
TargetPath
-
pasta de destino
string. Necessário quando Destination = AzureVMs.
Especifique o caminho para a pasta nas VMs do Azure para a qual os arquivos serão copiados.
Há suporte para variáveis de ambiente, como $env:windir e $env:systemroot. Exemplos: $env:windir\FabrikamFiber\Web e c:\FabrikamFiber
AdditionalArgumentsForBlobCopy
-
Argumentos opcionais (para carregar arquivos para blob)
string.
Forneça argumentos adicionais para AzCopy.exe que podem ser aplicados ao carregar para Blobs, como /NC:10.
Se nenhum argumento opcional for especificado, os argumentos a seguir serão adicionados por padrão.
/Y/SetContentType/Z/V-
/S- Adicionado quando o nome do contêiner não é$root. -
/BlobType:page-Added quando a conta de armazenamento especificada é uma conta premium. -
/Pattern- Adicionado quando o caminho de origem é um arquivo. Incluído com quaisquer outros argumentos opcionais especificados.
AdditionalArgumentsForVMCopy
-
Argumentos opcionais (para baixar arquivos para VM)
string. Opcional. Use quando Destination = AzureVMs.
Forneça argumentos adicionais para AzCopy.exe que podem ser aplicados ao fazer o download para VMs, como /NC:10.
Se nenhum argumento opcional for especificado, os seguintes itens serão adicionados por padrão.
/Y/S/Z/V
enableCopyPrerequisites
-
Ativar pré-requisitos de cópia
boolean. Opcional. Use quando Destination = AzureVMs. Valor padrão: false.
Quando habilitado, usa um certificado autoassinado para configurar um ouvinte de Gerenciamento Remoto do Windows (WinRM) na porta 5986 em vez do protocolo HTTPS. Necessário para executar a operação de cópia em VMs do Azure. Se as VMs de destino usarem um balanceador de carga, configure as regras NAT de entrada para a porta de destino (5986). Aplica-se apenas a VMs ARM. Em VMs de destino associadas a um NSG (Grupo de Segurança de Rede), configure uma regra de segurança de entrada para permitir o acesso na porta 5986.
CopyFilesInParallel
-
Cópia em paralelo
boolean. Opcional. Use quando Destination = AzureVMs. Valor padrão: true.
Especifique true copiar arquivos em paralelo com as VMs de destino. O uso desse valor pode reduzir o tempo total necessário para executar a ação.
CleanTargetBeforeCopy
-
Alvo Limpo
boolean. Opcional. Use quando Destination = AzureVMs. Valor padrão: false.
Definir esse valor como true limpa a pasta de destino antes de executar a ação de cópia.
skipCACheck
-
Certificado de Teste
boolean. Opcional. Use quando Destination = AzureVMs. Valor padrão: true.
O valor padrão não será validado se o certificado do servidor tiver sido assinado por uma autoridade de certificação confiável antes de se conectar por HTTPS.
URI do contêiner de armazenamento outputStorageUri -
string.
Especifique o nome da variável usada para o URI do contêiner de armazenamento para o qual os arquivos foram copiados. Válido somente quando o destino selecionado for um Blob do Azure.
de token SAS do contêiner de armazenamento outputStorageContainerSasToken -
string.
Especifique o nome da variável usada para o token SAS do contêiner de armazenamento que acessa os arquivos que foram copiados. Use essa variável como uma entrada para tarefas subsequentes. Por padrão, o token SAS expira após 4 horas.
sasTokenTimeOutInMinutes
-
Período de expiração do token SAS em minutos
string.
Especifique o tempo, em minutos, após o qual o token SAS expirará. Válido apenas quando o destino selecionado for o Blob do Azure.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
O que há de novo na versão AzureFileCopy@3
AzureFileCopy@3 dá suporte ao Módulo Az e parou de oferecer suporte ao ponto de extremidade de serviço clássico do Azure.
A tarefa é usada para copiar arquivos de aplicativo e outros artefatos necessários para instalar o aplicativo, como scripts do PowerShell, módulos de PowerShell-DSC e muito mais.
Quando o destino é VMs do Azure, os arquivos são primeiro copiados para um contêiner de Blob do Azure gerado automaticamente e, em seguida, baixados para as VMs. O contêiner é excluído depois que os arquivos são copiados com êxito para as VMs.
A tarefa usa AzCopy, o utilitário de linha de comando criado para copiar rapidamente dados de e para contas de armazenamento do Azure. A tarefa versão 3 ou inferior usa AzCopy V7.
Para implantar dinamicamente os Grupos de Recursos do Azure que contêm máquinas virtuais, use a tarefa de Implantação do Grupo de Recursos do Azure. Esta tarefa tem um modelo de exemplo que pode executar as operações necessárias para configurar o protocolo HTTPS do WinRM em VMs, abrir a porta 5986 no firewall e instalar o certificado de teste.
Observação
Se você estiver implantando em Sites Estáticos do Azure como um contêiner no armazenamento de Blob, use Versão 2 ou superior para preservar o nome do contêiner $web.
Perguntas Frequentes
Quais são os pré-requisitos do Azure PowerShell para usar essa tarefa?
A tarefa requer que o Azure PowerShell esteja instalado na máquina que executa o agente de automação. A versão recomendada é 1.0.2, mas a tarefa funciona com a versão 0.9.8 e superior. Use do Azure PowerShell Installer v1.0.2 para obter a versão recomendada.
Quais são os pré-requisitos do WinRM para esta tarefa?
A tarefa usa o protocolo HTTPS do WinRM para copiar os arquivos do contêiner de Blob de armazenamento para as VMs do Azure. O serviço HTTPS do WinRM deve ser configurado nas VMs e um certificado adequado deve ser instalado.
Se as VMs forem criadas sem abrir as portas HTTPS do WinRM, siga estas etapas:
- Configure uma regra de acesso de entrada para permitir HTTPS na porta 5986 de cada VM.
- Desative restrições remotas do UAC.
- Especifique as credenciais para a tarefa acessar as VMs usando um logon de nível de administrador formatado como nome de usuário sem qualquer referência de domínio.
- Instale um certificado na máquina que executa o agente de automação.
- Defina o Certificado de Teste parâmetro da tarefa para um certificado autoassinado.
Que tipo de conexão de serviço devo escolher?
A tabela a seguir lista os tipos de conta de armazenamento e as conexões de serviço associadas. Para identificar se uma conta de armazenamento se baseia nas APIs clássicas ou nas APIs do Resource Manager, inicie sessão no do portal do Azure e procure contas de Armazenamento (Clássico) ou contas de Armazenamento .
| Tipo de conta de armazenamento | Conexões de Serviço do Azure no TFS/TS |
|---|---|
| Gestor de Recursos | Ligação de serviço do Azure Resource Manager |
| Clássico | Conexão de serviço do Azure com autenticação baseada em certificado ou credenciais usando uma conta escolar ou profissional |
Para recursos clássicos do Azure, use um tipo de conexão de serviço do do Azure com autenticação baseada em certificado ou credenciais. Se estiver a utilizar a autenticação baseada em credenciais, certifique-se de que as credenciais se destinam a uma conta escolar ou profissional. Não há suporte para contas da Microsoft, como
joe@live.comejoe@hotmail.com.Para VMs do Azure Resource Manager, use um tipo de conexão de serviço do Azure Resource Manager. Para obter mais detalhes, consulte Automatizando a implantação do Grupo de Recursos do Azure usando uma entidade de serviço.
Se estiver usando um tipo de conexão de serviço do Azure Resource Manager ou um tipo de conexão de serviço do Azure com autenticação baseada em certificado, a tarefa filtrará automaticamente as contas de armazenamento clássicas apropriadas, as contas de armazenamento mais recentes do Azure Resource Manager e outros campos. Por exemplo, o Grupo de Recursos ou serviço de nuvem e as máquinas virtuais.
Observação
Atualmente, um tipo de conexão de serviço do Azure com autenticação baseada em credenciais não filtra os campos armazenamento, Grupo de Recursos ou serviço de nuvem e máquina virtual.
Como faço para corrigir a falha '403: Esta solicitação não está autorizada a executar esta operação usando esta permissão'?
Quando o Azure DevOps cria e autoriza a conexão de serviço com o Azure, ele cria um Registro de Aplicativo no Ative Directory da sua assinatura. Essa identidade é adicionada automaticamente com uma função Contributor a todos os recursos no Grupo de Recursos que você escolheu autorizar. Para carregar Blobs para uma conta de armazenamento, ser um Contributornão é suficiente. Você deve atribuir manualmente a função Storage Blob Data Contributor à identidade de registro do aplicativo.
Copie a identidade do aplicativo da entrada herdada existente como Contributor que você verá no painel do IAM e pesquise-a explicitamente na interface do usuário do Add role assignment. A identidade não está listada na lista suspensa, você deve procurar por seu identificador.
O que acontece se meu Grupo de Recursos contiver VMs Clássicas e do Gerenciador de Recursos?
Se o Grupo de Recursos especificado contiver o Gerenciador de Recursos do Azure e VMs Clássicas, o conjunto de VMs de destino dependerá do tipo de conexão.
- Para conexões baseadas em certificado e conexões baseadas em credenciais, a operação de cópia só é executada em VMs clássicas.
- Para conexões baseadas no Nome da Entidade de Serviço, a operação de cópia é executada somente em VMs do Gerenciador de Recursos.
Como posso criar uma conta escolar ou profissional para utilizar com esta tarefa?
Uma conta adequada pode ser facilmente criada para uso em uma conexão de serviço:
- Use o portal do Azure para criar uma nova conta de usuário no Azure Ative Directory.
- Adicione a conta de usuário do Azure Ative Directory ao grupo de coadministradores em sua assinatura do Azure.
- Entre no portal do Azure com essa conta de usuário e altere a senha.
- Use as novas credenciais para essa conta na conexão de serviço. As implantações serão processadas usando essa conta.
Exemplos
# 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
Requerimentos
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Exigências | Os agentes auto-hospedados devem ter recursos que correspondam às seguintes demandas executar trabalhos que usam essa tarefa: azureps |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
| Restrições de comando | Qualquer |
| Variáveis configuráveis | Qualquer |
| Versão do agente | 1.103.0 ou superior |
| Categoria de tarefa | Desplegar |