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.
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 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.
Insumos
SourcePath
-
de origem
string
. Obrigatório.
O local dos arquivos de origem. Os valores suportados incluem YAML Pipelines e suporte Classic Release variáveis de sistema predefinidas como Build.Repository.LocalPath.
As variáveis de versão são suportadas apenas em versões clássicas. O símbolo curinga (*) é suportado em qualquer lugar no caminho ou nome do 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
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\username
e.\username
. - Os formatos UPN, incluindo
username@domain.com
e 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 para o parâmetro Admin Login
.
Para localizar a variável, localize o parâmetro Admin Login
. Selecione o ícone de cadeado para uma variável definida na guia Variables
para proteger o valor e insira o nome da variável aqui.
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 aos AzCopy.exe
para uso ao carregar para o Blob e fazer o download para as VMs. Consulte Transferir dados com o AzCopy Command-Line Utility para obter detalhes.
Para contas de armazenamento Premium que suportam apenas Blobs de página do Azure, use --blob-type=PageBlob
como um argumento adicional.
Os argumentos padrão incluem --log-level=INFO
(padrão) e --recursive
(se o nome do contêiner não for $root
).
AdditionalArgumentsForVMCopy
-
Argumentos opcionais (para baixar arquivos para VM)
string
. Opcional. Use quando Destination = AzureVMs
.
Forneça argumentos adicionais para AzCopy.exe
que serão aplicados ao fazer o download para VMs, como --check-length=true
.
Se nenhum argumento opcional for especificado, o seguinte será adicionado por padrão:
--log-level=INFO
-
--log-level=DEBUG
(Se o pipeline estiver sendo executado no modo de depuração definido) --recursive
sasTokenTimeOutInMinutes
-
Período de expiração do token SAS em minutos
string
. Opcional. Use quando Destination = AzureBlob
. Valor padrão: 240
.
Especifique o tempo, em minutos, após o qual o token SAS do contêiner expirará. Por padrão, esse token expira após 4 horas.
enableCopyPrerequisites
-
Ativar pré-requisitos de cópia
boolean
. Opcional. Use quando Destination = AzureVMs
. Valor padrão: false
.
Quando habilitada, essa opção usa um certificado autoassinado para configurar o ouvinte do Gerenciamento Remoto do Windows (WinRM) pelo protocolo HTTPS na porta 5986. Essa configuração é necessária para executar operações de cópia em VMs do Azure.
- Se as VMs de destino forem acessadas por meio de um balanceador de carga, configure uma regra NAT de entrada para permitir o acesso na porta 5986.
- Se as VMs de destino estiverem 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.
CleanTargetBeforeCopy
-
Alvo Limpo
boolean
. Opcional. Use quando Destination = AzureVMs
. Valor padrão: false
.
Especifique true
limpar a pasta de destino antes de copiar arquivos.
skipCACheck
-
Certificado de Teste
boolean
. Opcional. Use quando Destination = AzureVMs
. Valor padrão: true
.
O WinRM requer um certificado para a transferência HTTPS ao copiar arquivos do Blob de armazenamento intermediário para as VMs do Azure.
Se você usar um certificado autoassinado, especifique true
para impedir que o processo valide o certificado com uma autoridade de certificação confiável.
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
Esta tarefa define as seguintes variáveis de saída , que você pode consumir em etapas, trabalhos e estágios downstream.
StorageContainerUri
URI do contêiner para o qual os arquivos foram copiados. Válido somente quando o destino selecionado for um Blob do Azure.
StorageContainerSasToken
SasToken para o contêiner para o qual os arquivos foram copiados. Válido somente quando o destino selecionado for um Blob do Azure.
Observações
AzureFileCopy@4 suporta AzCopy.exe versão 10.8.0.
Observação
Essa tarefa é escrita no PowerShell e funciona apenas quando executada em agentes do Windows. Se seus pipelines exigirem agentes Linux e precisarem copiar arquivos para uma Conta de Armazenamento do Azure, considere executar comandos az storage blob
na tarefa da CLI do Azure como alternativa.
A tarefa é usada para copiar arquivos de aplicativo e outros artefatos necessários para instalar o aplicativo; como scripts do PowerShell, módulos 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 dados rapidamente de e para contas de armazenamento do Azure. A versão 4 da tarefa Cópia de Arquivo do Azure usa AzCopy V10.
A Cópia de Arquivo do Azure versão 3 e inferior recuperaria a chave de Armazenamento do Azure para fornecer acesso. A Cópia de Arquivo do Azure versão 4 e superior exigir que o Armazenamento do Azure seja autorizado por meio da ID do Microsoft Entra ou do token SAS. A autenticação usando uma entidade de serviço e uma identidade gerenciada estão disponíveis. Para identidades gerenciadas, apenas a identidade gerenciada em todo o sistema é suportada. O nível de autorização necessário é mostrado em Opção 1: Usar o Microsoft Entra ID.
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 nas 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 da tarefa para preservar o nome do contêiner $web.
A tarefa dá suporte à autenticação baseada no Azure Ative Directory. A autenticação usando uma entidade de serviço e uma identidade gerenciada estão disponíveis. Para identidades gerenciadas, apenas a identidade gerenciada em todo o sistema é suportada.
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 funcionará com a versão 0.9.8 e superior. Você pode usar o Azure PowerShell Installer v1.0.2 para obter isso.
Quais são os pré-requisitos do WinRM para esta tarefa?
A tarefa usa o protocolo HTTPS de Gerenciamento Remoto do Windows (WinRM) para copiar os arquivos do contêiner de Blob de armazenamento para as VMs do Azure. Isso requer que o serviço HTTPS do WinRM esteja configurado nas VMs e um certificado adequado esteja instalado.
Configurar o WinRM após a criação da máquina virtual
Se as VMs foram criadas sem abrir as portas HTTPS do WinRM, execute o seguinte:
- 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 na forma simples nome de usuário sem qualquer parte do domínio.
- Instale um certificado na máquina que executa o agente de automação.
- Se você estiver usando um certificado autoassinado, defina o Certificado de Teste parâmetro da tarefa.
Que tipo de conexão de serviço devo escolher?
Para contas de armazenamento do Azure Resource Manager e VMs do Azure Resource Manager, use um tipo de conexão de serviço do Azure Resource Manager. Consulte Automatizando a implantação do Grupo de Recursos do Azure usando uma entidade de serviço.
Ao usar um tipo de conexão de serviço do Azure Resource Manager, a tarefa filtra automaticamente as contas de armazenamento mais recentes apropriadas do Azure Resource Manager e outros campos. Por exemplo, o Grupo de Recursos ou serviço de nuvem e as VMs.
Como posso criar uma conta escolar ou profissional para utilizar com esta tarefa?
Uma conta adequada pode ser 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 credenciais dessa conta na conexão de serviço. As implantações são processadas usando essa conta.
Se a tarefa falhar, a cópia será retomada?
Uma vez que o AzCopy V10 não suporta ficheiros de diário, a tarefa não poderá retomar a cópia. Você deve executar a tarefa novamente para copiar todos os arquivos.
Os arquivos de log e os arquivos de plano são limpos após a cópia?
Os ficheiros de registo e de plano não são eliminados pela tarefa. Para limpar explicitamente os arquivos, adicione uma etapa da CLI no fluxo de trabalho usando azcopy jobs clean.
Como posso utilizar a tarefa de cópia de ficheiros do Azure para copiar um ficheiro para uma máquina virtual do Azure que não tenha um endereço IP público?
Certifique-se de que está a utilizar a versão 4 da tarefa de cópia de ficheiros do Azure. Se a tarefa falhar, você poderá adicionar uma etapa de compilação para executar o comando azcopy cp "source-file-path" "destination-file-path"
substituir os valores de origem e destino.
Erro proibido: 'AzCopy.exe saído com código de saída diferente de zero ao carregar arquivos para o armazenamento de blob' ao usar a tarefa Cópia de Arquivo do Azure
Os agentes hospedados são atribuídos aleatoriamente sempre que uma compilação é acionada, os endereços IP do agente serão diferentes em cada execução. Se esses endereços IP não estiverem na sua lista de IPs permitidos, a comunicação entre o Azure DevOps e a conta de armazenamento falhará. Nesses cenários, siga as etapas descritas:
- Adicione uma etapa de compilação usando a CLI do Azure para identificar o endereço IP do agente do Microsoft Hosted Build em tempo de execução. Ele adicionará o endereço IP à regra de Rede na Conta de Armazenamento do Azure.
- Execute a etapa de compilação para sua Conta de Armazenamento do Azure.
- Adicione outra etapa de compilação usando a CLI do Azure para remover o endereço IP do agente de compilação da regra de rede da Conta de Armazenamento do Azure.
Exemplos
- 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)
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 |