AzureFunctionAppContainer@1 – Azure Functions para a tarefa do contêiner v1

Atualizar um aplicativo de funções com um contêiner do Docker.

Atualize os Aplicativos de Funções com contêineres do Docker.

Syntax

# Azure Functions for container v1
# Update a function app with a Docker container.
- task: AzureFunctionAppContainer@1
  inputs:
    azureSubscription: # string. Required. Azure subscription. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    imageName: # string. Required. Image name. 
    #containerCommand: # string. Startup command. 
  # Application and Configuration Settings
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings.
# Azure Function for container v1
# Update Function Apps with Docker containers.
- task: AzureFunctionAppContainer@1
  inputs:
    azureSubscription: # string. Required. Azure subscription. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    imageName: # string. Required. Image name. 
    #containerCommand: # string. Startup command. 
  # Application and Configuration Settings
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings.

Entradas

azureSubscription - Assinatura do Azure
string. Obrigatórios.

Seleciona a assinatura Resource Manager do Azure para a implantação.


appName - Nome do aplicativo
string. Obrigatórios.

O nome do Aplicativo de Funções para Contêineres.


deployToSlotOrASE - Implantar no slot ou no Ambiente do Serviço de Aplicativo
boolean. Valor padrão: false.

Defina essa entrada como true para implantar em um slot de implantação existente ou Serviço de Aplicativo do Azure Ambiente. A tarefa precisa de um nome de Grupo de Recursos para ambos os destinos. Para a opção de slot de implantação, o padrão é implantado no slot de produção ou você pode especificar qualquer outro nome de slot existente. Se o destino de implantação for um Ambiente Serviço de Aplicativo do Azure, deixe o nome do slot como produção e especifique o nome do Grupo de Recursos.


resourceGroupName - Grupo de recursos
string. Obrigatório quando deployToSlotOrASE = true.

O nome do Grupo de Recursos que contém o Aplicativo de Funções para Contêineres.


slotName - Slot
string. Obrigatório quando deployToSlotOrASE = true. Valor padrão: production.

Insere ou seleciona um slot existente, excluindo o slot de produção .


imageName - Nome da imagem
string. Obrigatórios.

Um nome de domínio de nível superior global exclusivo para seu registro ou namespace específico.

Nota: Um nome de imagem totalmente qualificado será do formato: <registry or namespace> <repository> <tag>. Por exemplo, myregistry.azurecr.io/nginx:latest.


containerCommand - Comando de inicialização
string.

O comando de inicialização que é executado após a implantação. Por exemplo, dotnet rundotnet filename.dll.


appSettings - Configurações do aplicativo
string.

Insira as configurações do aplicativo usando a sintaxe -key value (por exemplo:-RequestTimeout 5000-Port 5000-WEBSITE_TIME_ZONE ). Coloque os valores que contêm espaços entre aspas duplas (por exemplo: "Eastern Standard Time").


configurationStrings - Definições de configuração
string.

Insira as cadeias de caracteres de configuração usando a sintaxe -key value (por exemplo: -phpVersion 5.6-linuxFxVersion: node|6.11). Coloque os valores que contêm espaços entre aspas duplas.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Essa tarefa define as variáveis de saída a seguir, que você pode consumir em etapas downstream, trabalhos e estágios.

AppServiceApplicationUrl
A URL do aplicativo do Serviço de Aplicativo selecionado.

Comentários

Use essa tarefa para implantar uma Função do Azure no Linux usando uma imagem personalizada.

Erro: não foi possível buscar o token de acesso para o Azure. Verifique se a Entidade de Serviço usada é válida e não expirou.

A tarefa usa a entidade de serviço na conexão de serviço para autenticar com o Azure. Se a entidade de serviço tiver expirado ou não tiver permissões para o Serviço de Aplicativo, a tarefa falhará com esse erro. Verifique a validade da entidade de serviço usada e se ela está presente no registro do aplicativo. Para obter mais informações, confira Usar o controle de acesso baseado em função para gerenciar o acesso aos recursos da sua assinatura do Azure. Esta postagem de blog também contém mais informações sobre como usar a autenticação da entidade de serviço.

Erro de SSL

Se você quiser usar um certificado no Serviço de Aplicativo, o certificado deverá ser assinado por uma autoridade de certificação confiável. Se o seu aplicativo Web retorna erros de validação de certificado, você provavelmente está usando um certificado autoassinado. Defina uma variável chamada VSTS_ARM_REST_IGNORE_SSL_ERRORS para o valor true no pipeline de build ou lançamento para resolve o erro.

Uma versão fica parada por muito tempo e depois falha

Esse problema pode ser resultado de capacidade insuficiente em seu plano de Serviço de Aplicativo. Para resolve esse problema, você pode escalar verticalmente a instância Serviço de Aplicativo para aumentar a CPU, a RAM e o espaço em disco disponíveis ou tentar um plano de Serviço de Aplicativo diferente.

Códigos de erro 5xx

Se você estiver vendo um erro 5xx, marcar o status do serviço do Azure.

A Função do Azure parou de funcionar repentinamente

Azure Functions poderá parar de funcionar repentinamente se mais de um ano tiver passado desde a última implantação. Se você implantar com "RunFromPackage" em "deploymentMethod", uma SAS com uma data de validade de 1 ano será gerada e definida como o valor de "WEBSITE_RUN_FROM_PACKAGE" na configuração do aplicativo. Azure Functions usa essa SAS para fazer referência ao arquivo de pacote para execução de função, portanto, se a SAS tiver expirado, a função não será executada. Para resolve esse problema, implante novamente para gerar uma SAS com uma data de validade de um ano.

Como devo configurar minha conexão de serviço?

Essa tarefa requer uma conexão de serviço Resource Manager do Azure.

Como configurar a implantação de trabalho Web com o Application Insights?

Ao implantar em um Serviço de Aplicativo, se você tiver o Application Insights configurado e tiver habilitado Remove additional files at destinationo , também precisará habilitar Exclude files from the App_Data foldero . Habilitar essa opção mantém a extensão do Application Insights em um estado seguro. Essa etapa é necessária porque o WebJob contínuo do Application Insights está instalado na pasta App_Data.

Como devo configurar meu agente se ele estiver atrás de um proxy enquanto estou implantando no Serviço de Aplicativo?

Se o agente auto-hospedado exigir um proxy Web, você poderá informar o agente sobre o proxy durante a configuração. Isso permite que seu agente se conecte ao Azure Pipelines ou Azure DevOps Server por meio do proxy. Saiba mais sobre como executar um agente auto-hospedado por trás de um proxy Web.

Exemplos

Este exemplo implanta Azure Functions no Linux usando contêineres:


variables:
  imageName: contoso.azurecr.io/azurefunctions-containers:$(build.buildId)
  azureSubscription: Contoso
  # To ignore SSL error uncomment the following variable
  # VSTS_ARM_REST_IGNORE_SSL_ERRORS: true

steps:
- task: AzureFunctionAppContainer@1
  displayName: Azure Function App on Container deploy
  inputs:
    azureSubscription: $(azureSubscription)
    appName: functionappcontainers
    imageName: $(imageName)

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Executa em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 2.104.1 ou superior
Categoria da tarefa Implantar