AzureFunctionOnKubernetes@1 - Funzione di Azure nell'attività Kubernetes v1

Distribuire la funzione di Azure nel cluster Kubernetes.

Sintassi

# 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.

Input

connectionType - Tipo di connessione del servizio
string. Obbligatorio. Valori consentiti: Azure Resource Manager, Kubernetes Service Connection. Valore predefinito: Kubernetes Service Connection.

Selezionare un tipo di connessione del servizio Kubernetes.

  • Kubernetes Service Connection - Consente di fornire un file KubeConfig, specificare un account del servizio o importare un'istanza del servizio Azure Kubernetes con l'opzione Sottoscrizione di Azure . L'importazione di un'istanza del servizio Azure Kubernetes con l'opzione Sottoscrizione di Azure richiede l'accesso al cluster Kubernetes in fase di configurazione della connessione del servizio.
  • Azure Resource Manager - Consente di selezionare un'istanza del servizio Azure Kubernetes. Non accede al cluster Kubernetes in fase di configurazione della connessione del servizio.

Per altre informazioni, vedere Osservazioni.


dockerRegistryServiceConnection - Connessione del servizio del Registro di sistema Docker
string. Obbligatorio.

Selezionare una connessione al servizio del Registro di sistema Docker.


kubernetesServiceConnection - Connessione al servizio Kubernetes
Alias di input: kubernetesServiceEndpoint. string. Obbligatorio quando connectionType = Kubernetes Service Connection.

Selezionare una connessione al servizio Kubernetes.


azureSubscriptionConnection - Sottoscrizione di Azure
Alias di input: azureSubscriptionEndpoint. string. Obbligatorio quando connectionType = Azure Resource Manager.

Selezionare la sottoscrizione di Azure Resource Manager che contiene Registro Azure Container. Nota: per configurare una nuova connessione al servizio, selezionare la sottoscrizione di Azure dall'elenco e fare clic su "Autorizza". Se la sottoscrizione non è elencata o se si vuole usare un'entità servizio esistente, è possibile configurare una connessione al servizio di Azure usando il pulsante "Aggiungi" o "Gestisci".


azureResourceGroup - Gruppo di risorse
string. Obbligatorio quando connectionType = Azure Resource Manager.

Selezionare un gruppo di risorse di Azure.


kubernetesCluster - Cluster Kubernetes
string. Obbligatorio quando connectionType = Azure Resource Manager.

Selezionare un cluster gestito di Azure.


namespace - Spazio dei nomi Kubernetes
string.

Spazio dei nomi Kubernetes.


secretName - Nome segreto
string.

Segreto Kubernetes contenente i dati di configurazione delle funzioni ( ad esempio AzureWebJobsStorage: Azure storage connection string).


dockerHubNamespace - spazio dei nomi Docker Hub
string.

Docker Hub spazio dei nomi. Obbligatorio per il repository di Docker Hub privato.


appName - Nome applicazione
string. Obbligatorio.

Nome applicazione. Gli oggetti Kubernetes creati usano questo nome. Questa operazione deve seguire le convenzioni di denominazione kubernetes per i nomi delle risorse.


functionRootDirectory - Directory radice della funzione
string.

Directory radice della funzione. Deve contenere host.json. La compilazione e il push di Docker vengono eseguiti da questa directory.


waitForStability - Attendere la stabilità
boolean. Valore predefinito: true.

Attendere che gli oggetti Kubernetes raggiungano lo stato desiderato.


arguments - Argomenti
string.

Passare argomenti al comando. ad esempio
--no-docker --service-type NodePort.


Opzioni di controllo delle attività

Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

Considerazioni sulla connessione al servizio Kubernetes durante l'accesso al servizio Azure Kubernetes

È possibile creare una connessione al servizio Kubernetes con una delle opzioni seguenti.

  • KubeConfig
  • Account del servizio
  • Sottoscrizione di Azure

Screenshot della scelta di un metodo di autenticazione della connessione al servizio Kubernetes.

Quando si seleziona l'opzione Sottoscrizione di Azure , Kubernetes deve essere accessibile ad Azure DevOps in fase di configurazione della connessione al servizio. È possibile che non sia possibile creare una connessione al servizio, ad esempio è stato creato un cluster privato o che il cluster ha account locali disabilitati. In questi casi Azure DevOps non può connettersi al cluster in fase di configurazione della connessione al servizio e verrà visualizzata una schermata di caricamento bloccata degli spazi dei nomi .

Screenshot della scelta di una finestra di dialogo di autenticazione della connessione al servizio Kubernetes bloccata durante il caricamento degli spazi dei nomi.

A partire da Kubernetes 1.24, i token di lunga durata non vengono più creati per impostazione predefinita. Kubernetes consiglia di non usare token di lunga durata. Di conseguenza, le attività che usano una connessione al servizio Kubernetes creata con l'opzione Sottoscrizione di Azure non hanno accesso al token permanente necessario per l'autenticazione e non possono accedere al cluster Kubernetes. Ciò comporta anche la finestra di dialogo Carica spazi dei nomi bloccati.

Usare la connessione al servizio azure Resource Manager per accedere al servizio Azure Kubernetes

Per i clienti del servizio Azure Kubernetes, il tipo di connessione del servizio Resource Manager di Azure offre il metodo migliore per connettersi a un cluster privato o a un cluster con account locali disabilitati. Questo metodo non dipende dalla connettività del cluster al momento della creazione di una connessione al servizio. L'accesso al servizio Azure Kubernetes viene posticipato al runtime della pipeline, con i vantaggi seguenti:

  • L'accesso a un cluster del servizio Azure Kubernetes (privato) può essere eseguito da un agente del set di scalabilità o self-hosted con vista linea al cluster.
  • Viene creato un token per ogni attività che usa una connessione al servizio di Resource Manager di Azure. Ciò garantisce la connessione a Kubernetes con un token di breve durata, ovvero la raccomandazione Kubernetes.
  • È possibile accedere al servizio Azure Kubernetes anche quando gli account locali sono disabilitati.

Domande frequenti sulla connessione al servizio

Viene visualizzato il messaggio di errore seguente: impossibile trovare alcun segreto associato all'account del servizio. Cosa sta succedendo?

Si usa la connessione al servizio Kubernetes con l'opzione Sottoscrizione di Azure. Questo metodo viene aggiornato per creare token di lunga durata. Questa operazione dovrebbe essere disponibile a metà maggio. È tuttavia consigliabile iniziare a usare il tipo di connessione del servizio di Azure e non usare token di lunga durata in base alle indicazioni di Kubernetes.

Si usa il servizio Azure Kubernetes e non si vuole modificare nulla, è possibile continuare a usare le attività con la connessione al servizio Kubernetes?

Questo metodo viene aggiornato per creare token di lunga durata. Questa operazione dovrebbe essere disponibile a metà maggio. Tuttavia, tenere presente che questo approccio è contro le indicazioni di Kubernetes.

Si usano le attività Kubernetes e la connessione al servizio Kubernetes, ma non il servizio Azure Kubernetes. Dovrei essere preoccupato?

Le attività continueranno a funzionare come prima.

Il tipo di connessione del servizio Kubernetes verrà rimosso?

Le attività Kubernetes funzionano con qualsiasi cluster Kubernetes, indipendentemente dalla posizione in cui sono in esecuzione. La connessione al servizio Kubernetes continuerà a esistere.

Sono un cliente del servizio Azure Kubernetes e tutto funziona correttamente, devo agire?

Non è necessario modificare nulla. Se si usa la connessione al servizio Kubernetes e la sottoscrizione di Azure selezionata durante la creazione, è necessario tenere presente le indicazioni su Kubernetes sull'uso di token di lunga durata.

Si sta creando un ambiente Kubernetes e non è possibile usare le connessioni al servizio

Se non è possibile accedere al servizio Azure Kubernetes durante la creazione dell'ambiente, è possibile usare un ambiente vuoto e impostare l'input connectionType su una connessione al servizio azure Resource Manager.

Il servizio Azure Kubernetes è configurato con il controllo degli accessi in base al ruolo di Azure Active Directory e la pipeline non funziona. Questi aggiornamenti verranno risolti?

L'accesso a Kubernetes quando il controllo degli accessi in base al ruolo di AAD è abilitato non è correlato alla creazione di token. Per evitare un prompt interattivo, kubelogin verrà supportato in un aggiornamento futuro.

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente Tutte le versioni dell'agente supportate.
Categoria attività Distribuire