AzureFunctionOnKubernetes@1 - Tarefa da Função do Azure no Kubernetes v1
Implementar 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 ligação de serviço
string
. Obrigatório. Valores permitidos: Azure Resource Manager
, Kubernetes Service Connection
. Valor predefinido: Kubernetes Service Connection
.
Selecione um tipo de ligação do serviço Kubernetes.
Kubernetes Service Connection
- Permite-lhe fornecer um ficheiro do KubeConfig, especificar uma Conta de Serviço ou importar uma instância do AKS com a opção Subscrição do Azure . Importar uma instância do AKS com a opção Subscrição do Azure requer acesso ao cluster do Kubernetes no tempo de configuração da Ligação de Serviço.Azure Resource Manager
- Permite-lhe selecionar uma instância do AKS. Não acede ao cluster do Kubernetes na hora de configuração da Ligação de Serviço.
Para obter mais informações, consulte Observações.
dockerRegistryServiceConnection
- Ligação do serviço de registo do Docker
string
. Obrigatório.
Selecione uma ligação do serviço de registo do Docker.
kubernetesServiceConnection
- Ligação do serviço Kubernetes
Alias de entrada: kubernetesServiceEndpoint
. string
. Necessário quando connectionType = Kubernetes Service Connection
.
Selecione uma ligação de serviço do Kubernetes.
azureSubscriptionConnection
- Subscrição do Azure
Alias de entrada: azureSubscriptionEndpoint
. string
. Necessário quando connectionType = Azure Resource Manager
.
Selecione a subscrição do Azure Resource Manager, que contém Azure Container Registry. Nota: para configurar uma nova ligação de serviço, selecione a subscrição do Azure na lista e clique em "Autorizar". Se a sua subscrição não estiver listada ou se quiser utilizar um Principal de Serviço existente, pode configurar uma ligação de serviço do Azure com o botão "Adicionar" ou "Gerir".
azureResourceGroup
- Grupo de recursos
string
. Necessário quando connectionType = Azure Resource Manager
.
Selecione um grupo de recursos do Azure.
kubernetesCluster
- Cluster do Kubernetes
string
. Necessário quando connectionType = Azure Resource Manager
.
Selecione um cluster gerido do Azure.
namespace
- Espaço de nomes do Kubernetes
string
.
Espaço de nomes 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
- Docker Hub espaço de nomes
string
.
Docker Hub espaço de nomes. Necessário para o repositório de Docker Hub privado.
appName
- Nome da Aplicação
string
. Obrigatório.
Nome da Aplicação. Os objetos do Kubernetes criados utilizam este nome. Isto deve seguir as convenções de nomenclatura do Kubernetes para nomes de recursos.
functionRootDirectory
- Diretório de raiz da função
string
.
Diretório de raiz de função. Deve conter host.json. A compilação e a empção do Docker são executadas a partir deste diretório.
waitForStability
- Aguarde pela estabilidade
boolean
. Valor predefinido: true
.
Aguarde que os objetos do Kubernetes atinjam o estado pretendido.
arguments
- Argumentos
string
.
Transmitir argumentos ao comando. Ex.:
--no-docker --service-type NodePort.
Opções de controlo de tarefas
Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
Considerações sobre a Ligação do Serviço Kubernetes ao aceder ao AKS
Pode criar uma ligação de serviço do Kubernetes com qualquer uma das seguintes opções.
- KubeConfig
- Conta de Serviço
- Subscrição do Azure
Ao selecionar a opção Subscrição do Azure , o Kubernetes tem de estar acessível ao Azure DevOps no momento da configuração da ligação de serviço. Podem existir vários motivos pelos quais não é possível criar uma ligação de serviço, por exemplo , criou um cluster privado ou o cluster tem contas locais desativadas. Nestes casos, o Azure DevOps não consegue ligar ao cluster no momento da configuração da ligação de serviço e verá um ecrã a carregar espaços de nomes bloqueado.
A partir do Kubernetes 1.24, os tokens de longa duração já não são criados por predefinição. O Kubernetes recomenda que não utilize tokens de longa duração. Como resultado, as tarefas que utilizam uma ligação de serviço do Kubernetes criada com a opção Subscrição do Azure não têm acesso ao token permanente necessário para autenticar e não podem aceder ao cluster do Kubernetes. Isto também resulta na caixa de diálogo Carregar espaços de nomes congelados .
Utilizar a Ligação do Serviço do Azure Resource Manager para aceder ao AKS
Para os clientes do AKS, o tipo de ligação de serviço do Azure Resource Manager fornece o melhor método para ligar a um cluster privado ou a um cluster com contas locais desativadas. Este método não depende da conectividade do cluster no momento em que criar uma ligação de serviço. O acesso ao AKS é diferido para o runtime do pipeline, que tem as seguintes vantagens:
- O acesso a um cluster do AKS (privado) pode ser efetuado a partir de um agente autoalojado ou de um conjunto de dimensionamento com linha de visão para o cluster.
- É criado um token para cada tarefa que utiliza uma ligação de serviço do Azure Resource Manager. Isto garante que está a ligar ao Kubernetes com um token de curta duração, que é a recomendação do Kubernetes.
- O AKS pode ser acedido mesmo quando as contas locais são desativadas.
FAQ da ligação de serviço
Recebo a seguinte mensagem de erro: Não foi possível localizar nenhum segredo associado à conta de serviço. O que está a acontecer?
Está a utilizar a ligação do serviço Kubernetes com a opção Subscrição do Azure. Estamos a atualizar este método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, é recomendado começar a utilizar o tipo de ligação de serviço do Azure e não utilizar tokens de longa duração de acordo com as orientações do Kubernetes.
Estou a utilizar o AKS e não quero alterar nada. Posso continuar a utilizar tarefas com a ligação do serviço Kubernetes?
Estamos a atualizar este método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, tenha em atenção que esta abordagem é contra as orientações do Kubernetes.
Estou a utilizar as tarefas do Kubernetes e a ligação do serviço Kubernetes, mas não o AKS. Devo preocupar-me?
As tarefas continuarão a funcionar como anteriormente.
O tipo de ligação do serviço Kubernetes será removido?
As nossas tarefas do Kubernetes funcionam com qualquer cluster do Kubernetes, independentemente do local onde estão a ser executadas. A ligação do serviço Kubernetes continuará a existir.
Sou um cliente do AKS e está tudo a correr bem, devo agir?
Não há necessidade de mudar nada. Se estiver a utilizar a ligação do serviço Kubernetes e tiver selecionado a Subscrição do Azure durante a criação, deve estar ciente da documentação de orientação do Kubernetes sobre a utilização de tokens de longa duração.
Estou a criar um Ambiente do Kubernetes e não tenho opção de utilizar ligações de serviço
Caso não consiga aceder ao AKS durante a hora de criação do ambiente, pode utilizar um ambiente vazio e definir a connectionType
entrada para uma ligação de serviço do Azure Resource Manager.
Configurei o AKS com o RBAC do Azure Active Directory e o meu pipeline não funciona. Estas atualizações irão resolver este problema?
Aceder ao Kubernetes quando o RBAC do AAD está ativado não está relacionado com a criação de tokens. Para impedir um pedido interativo, iremos suportar o kubelogin numa atualização futura.
Requisitos
Requisito | Description |
---|---|
Tipos de pipeline | YAML, Compilação clássica, Versão clássica |
É executado em | Agente, DeploymentGroup |
Exigências | Nenhuma |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa. |
Restrições de comandos | Qualquer |
Variáveis de tabelas definidas | Qualquer |
Versão do agente | Todas as versões de agente suportadas. |
Categoria da tarefa | Implementação |