Compartilhar via


tarefa AzureFunctionOnKubernetes@1 – Função do Azure no Kubernetes v1

Implantar a função do Azure no cluster do Kubernetes.

Syntax

# Azure Function on Kubernetes v1
# Deploy Azure function to Kubernetes cluster.
- task: AzureFunctionOnKubernetes@1
  inputs:
  # Service Connections
    connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection'. Required. Service connection type. Default: Kubernetes Service Connection.
    dockerRegistryServiceConnection: # string. Required. Docker registry service connection. 
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection. Kubernetes service connection. 
    #azureSubscriptionConnection: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager. Kubernetes cluster. 
  # Commands
    #namespace: # string. Kubernetes namespace. 
    #secretName: # string. Secret Name. 
    #dockerHubNamespace: # string. Docker Hub namespace. 
    appName: # string. Required. Application Name. 
    #functionRootDirectory: # string. Function root directory. 
    #waitForStability: true # boolean. Wait for stability. Default: true.
    #arguments: # string. Arguments.

Entradas

connectionType - Tipo de conexão de serviço
string. Obrigatórios. Valores Permitidos: Azure Resource Manager e Kubernetes Service Connection. Valor padrão: Kubernetes Service Connection.

Selecione um tipo de conexão de serviço do Kubernetes.

  • Kubernetes Service Connection – Permite que você forneça um arquivo KubeConfig, especifique uma Conta de Serviço ou importe uma instância do AKS com a opção Assinatura do Azure . Importar uma instância do AKS com a opção Assinatura do Azure requer acesso ao cluster do Kubernetes no momento da configuração da Conexão de Serviço.
  • Azure Resource Manager - Permite selecionar uma instância do AKS. Não acessa o cluster do Kubernetes no momento da configuração da Conexão de Serviço.

Para obter mais informações, consulte Comentários.


dockerRegistryServiceConnection - Conexão de serviço do Registro do Docker
string. Obrigatórios.

Selecione uma conexão de serviço do Registro do Docker.


kubernetesServiceConnection - Conexão de serviço do Kubernetes
Alias de entrada: kubernetesServiceEndpoint. string. Obrigatório quando connectionType = Kubernetes Service Connection.

Selecione uma conexão de serviço do Kubernetes.


azureSubscriptionConnection - Assinatura do Azure
Alias de entrada: azureSubscriptionEndpoint. string. Obrigatório quando connectionType = Azure Resource Manager.

Selecione a assinatura Resource Manager do Azure, que contém Registro de Contêiner do Azure. Observação: para configurar a nova conexão de serviço, selecione a assinatura do Azure na lista e clique em 'Autorizar'. Se a sua assinatura não estiver listada ou se você quiser usar uma Entidade de Serviço existente, você poderá configurar uma conexão de serviço do Azure usando o botão "Adicionar" ou "Gerenciar".


azureResourceGroup - Grupo de recursos
string. Obrigatório quando connectionType = Azure Resource Manager.

Selecione um grupo de recursos do Azure.


kubernetesCluster - Cluster do Kubernetes
string. Obrigatório quando connectionType = Azure Resource Manager.

Selecione um cluster gerenciado do Azure.


namespace - Namespace do Kubernetes
string.

Namespace do Kubernetes.


secretName - Nome do Segredo
string.

Segredo do Kubernetes que contém dados de configuração de função (por exemplo, AzureWebJobsStorage: Azure storage connection string).


dockerHubNamespace - namespace Docker Hub
string.

Docker Hub namespace. Necessário para o repositório de Docker Hub privado.


appName - Nome do Aplicativo
string. Obrigatórios.

Nome do Aplicativo. Os objetos kubernetes criados usam esse nome. Isso deve seguir as convenções de nomenclatura do Kubernetes para nomes de recursos.


functionRootDirectory - Diretório raiz da função
string.

Diretório raiz da função. Deve conter host.json. O build e o push do Docker são executados a partir desse diretório.


waitForStability - Aguardar estabilidade
boolean. Valor padrão: true.

Aguarde até que os objetos kubernetes atinjam o estado desejado.


arguments - Argumentos
string.

Passe argumentos para o comando . Por exemplo:
--no-docker --service-type NodePort.


Opções de controle da 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

Nenhum.

Comentários

Considerações sobre a Conexão de Serviço do Kubernetes ao acessar o AKS

Você pode criar uma conexão de serviço do Kubernetes com qualquer uma das opções a seguir.

  • KubeConfig
  • Conta de serviço
  • Assinatura do Azure

Captura de tela da escolha de um método de autenticação de conexão de serviço do Kubernetes.

Ao selecionar a opção Assinatura do Azure , o Kubernetes precisa estar acessível ao Azure DevOps no momento da configuração da conexão de serviço. Pode haver vários motivos pelos quais uma conexão de serviço não pode ser criada, por exemplo, você criou um cluster privado ou o cluster tem contas locais desabilitadas. Nesses casos, o Azure DevOps não pode se conectar ao cluster no momento da configuração da conexão de serviço e você verá uma tela carregando namespaces paralisada.

Captura de tela da escolha de uma caixa de diálogo de autenticação de conexão de serviço do Kubernetes paralisada no carregamento de namespaces.

A partir do Kubernetes 1.24, os tokens de longa duração não são mais criados por padrão. O Kubernetes recomenda não usar tokens de longa duração. Como resultado, as tarefas que usam uma conexão de serviço do Kubernetes criada com a opção Assinatura do Azure não têm acesso ao token permanente necessário para autenticar e não podem acessar o cluster do Kubernetes. Isso também resulta na caixa de diálogo Carregar namespaces congelados .

Usar a Conexão de Serviço Resource Manager do Azure para acessar o AKS

Para clientes do AKS, o tipo de conexão de serviço Resource Manager do Azure fornece o melhor método para se conectar a um cluster privado ou um cluster que tem contas locais desabilitadas. Esse método não depende da conectividade do cluster no momento em que você cria uma conexão de serviço. O acesso ao AKS é adiado para o runtime do pipeline, que tem as seguintes vantagens:

  • O acesso a um cluster AKS (privado) pode ser executado de um agente auto-hospedado ou de conjunto de dimensionamento com linha de visão para o cluster.
  • Um token é criado para cada tarefa que usa uma conexão de serviço Resource Manager do Azure. Isso garante que você esteja se conectando ao Kubernetes com um token de curta duração, que é a recomendação do Kubernetes.
  • O AKS pode ser acessado mesmo quando as contas locais são desabilitadas.

Perguntas frequentes sobre a conexão de serviço

Recebo a seguinte mensagem de erro: Não foi possível encontrar nenhum segredo associado à conta de serviço. O que está acontecendo?

Você está usando a conexão do serviço Kubernetes com a opção Assinatura do Azure. Estamos atualizando esse método para criar tokens de longa duração. Espera-se que isso esteja disponível em meados de maio. No entanto, é recomendável começar a usar o tipo de conexão de serviço do Azure e não usar tokens de longa duração de acordo com as diretrizes do Kubernetes.

Estou usando o AKS e não quero alterar nada, posso continuar a usar tarefas com a conexão de serviço do Kubernetes?

Estamos atualizando esse método para criar tokens de longa duração. Espera-se que isso esteja disponível em meados de maio. No entanto, lembre-se de que essa abordagem é contra as diretrizes do Kubernetes.

Estou usando as tarefas do Kubernetes e a conexão de serviço do Kubernetes, mas não o AKS. Devo me preocupar?

As tarefas continuarão funcionando como antes.

O tipo de conexão do serviço Kubernetes será removido?

Nossas tarefas do Kubernetes funcionam com qualquer cluster do Kubernetes, independentemente de onde estejam em execução. A conexão de serviço do Kubernetes continuará a existir.

Sou um cliente do AKS e tudo está funcionando bem, devo agir?

Não há necessidade de mudar nada. Se você estiver usando a conexão de serviço kubernetes e tiver selecionado a Assinatura do Azure durante a criação, deverá estar ciente das diretrizes do Kubernetes sobre como usar tokens de longa duração.

Estou criando um Ambiente kubernetes e não tenho nenhuma opção para usar conexões de serviço

Caso não seja possível acessar o AKS durante o tempo de criação do ambiente, você pode usar um ambiente vazio e definir a connectionType entrada para uma conexão de serviço do Azure Resource Manager.

Tenho o AKS configurado com o RBAC do Azure Active Directory e meu pipeline não funciona. Essas atualizações resolve isso?

Acessar o Kubernetes quando o RBAC do AAD está habilitado não está relacionado à criação do token. Para evitar um prompt interativo, daremos suporte ao kubelogin em uma atualização futura.

Requisitos

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