Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Déployez une fonction Azure sur un cluster Kubernetes.
Syntaxe
# 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.
Données d'entrée
connectionType
-
type de connexion de service
string. Obligatoire. Valeurs autorisées : Azure Resource Manager, Kubernetes Service Connection. Valeur par défaut : Kubernetes Service Connection.
Sélectionnez un type de connexion au service Kubernetes.
-
Kubernetes Service Connection: vous permet de fournir un fichier KubeConfig, de spécifier un compte de service ou d’importer une instance AKS avec l’option abonnement Azure. L’importation d’une instance AKS avec l’option abonnement Azure nécessite l’accès au cluster Kubernetes au moment de la configuration de la connexion de service. -
Azure Resource Manager: vous permet de sélectionner une instance AKS. N’accède pas au cluster Kubernetes au moment de la configuration de la connexion de service.
Pour plus d’informations, consultez Remarques.
dockerRegistryServiceConnection
-
connexion au service de Registre Docker
string. Obligatoire.
Sélectionnez une connexion de service de Registre Docker.
kubernetesServiceConnection
-
de connexion de service Kubernetes
Alias d’entrée : kubernetesServiceEndpoint.
string. Obligatoire lorsque connectionType = Kubernetes Service Connection.
Sélectionnez une connexion de service Kubernetes.
azureSubscriptionConnection
-
abonnement Azure
Alias d’entrée : azureSubscriptionEndpoint.
string. Obligatoire lorsque connectionType = Azure Resource Manager.
Sélectionnez l’abonnement Azure Resource Manager, qui contient Azure Container Registry.Remarque : Pour configurer une nouvelle connexion de service, sélectionnez l’abonnement Azure dans la liste et cliquez sur « Autoriser ». Si votre abonnement n’est pas répertorié ou si vous souhaitez utiliser un principal de service existant, vous pouvez configurer une connexion au service Azure à l’aide du bouton « Ajouter » ou « Gérer ».
azureResourceGroup
-
groupe de ressources
string. Obligatoire lorsque connectionType = Azure Resource Manager.
Sélectionnez un groupe de ressources Azure.
kubernetesCluster
-
de cluster Kubernetes
string. Obligatoire lorsque connectionType = Azure Resource Manager.
Sélectionnez un cluster managé Azure.
namespace
-
espace de noms Kubernetes
string.
Espace de noms Kubernetes.
nom de secret secretName -
string.
Secret Kubernetes contenant des données de configuration de fonction (par exemple, AzureWebJobsStorage : Azure storage connection string).
dockerHubNamespace
-
espace de noms Docker Hub
string.
Espace de noms Docker Hub. Requis pour le référentiel Docker Hub privé.
appName
-
nom de l’application
string. Obligatoire.
Nom de l’application. Les objets Kubernetes créés utilisent ce nom. Cela doit suivre les conventions d’affectation de noms Kubernetes pour les noms de ressources.
functionRootDirectory
-
répertoire racine de la fonction
string.
Répertoire racine de fonction. Doit contenir host.json. La génération et l’envoi (push) Docker sont effectuées à partir de ce répertoire.
waitForStability
-
Attendre la stabilité
boolean. Valeur par défaut : true.
Attendez que les objets Kubernetes atteignent l’état souhaité.
arguments
-
arguments
string.
Passez des arguments à la commande. Exemple :
--no-docker --service-type NodePort.
Options de contrôle de tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Remarques
Considérations relatives à la connexion Kubernetes Service lors de l’accès à AKS
Vous pouvez créer une connexion de service Kubernetes avec l’une des options suivantes.
- KubeConfig
- Compte de service
- Abonnement Azure
Lorsque vous sélectionnez l’option abonnement Azure, Kubernetes doit être accessible à Azure DevOps au moment de la configuration de la connexion au service. Il peut y avoir différentes raisons pour lesquelles une connexion de service ne peut pas être créée, par exemple, vous créé un cluster privé ou le cluster a comptes locaux désactivés. Dans ce cas, Azure DevOps ne peut pas se connecter à votre cluster au moment de la configuration de la connexion de service et vous verrez un bloqué charger des espaces de noms écran.
À compter de Kubernetes 1.24, les jetons de longue durée ne sont plus créés par défaut. Kubernetes recommande de ne pas utiliser de jetons de longue durée. Par conséquent, les tâches utilisant une connexion de service Kubernetes créée avec l’option abonnement Azure n’ont pas accès au jeton permanent requis pour s’authentifier et ne peuvent pas accéder à votre cluster Kubernetes. Cela entraîne également le gel boîte de dialogue Chargement des espaces de noms.
Utiliser la connexion de service Azure Resource Manager pour accéder à AKS
Pour les clients AKS, le type de connexion de service Azure Resource Manager fournit la meilleure méthode pour se connecter à un cluster privé ou un cluster dont les comptes locaux sont désactivés. Cette méthode ne dépend pas de la connectivité du cluster au moment où vous créez une connexion de service. L’accès à AKS est différé au runtime de pipeline, ce qui présente les avantages suivants :
- L’accès à un cluster AKS (privé) peut être effectué à partir d’un agent auto-hébergé ou de groupe identique en ligne de vue sur le cluster.
- Un jeton est créé pour chaque tâche qui utilise une connexion de service Azure Resource Manager. Cela garantit que vous vous connectez à Kubernetes avec un jeton de courte durée, qui est la recommandation Kubernetes.
- AKS est accessible même lorsque les comptes locaux sont désactivés.
FAQ sur la connexion de service
Je reçois le message d’erreur suivant : Impossible de trouver un secret associé au compte de service. Que se passe-t-il?
Vous utilisez la connexion de service Kubernetes avec l’option Abonnement Azure. Nous mettons à jour cette méthode pour créer des jetons de longue durée. Cela devrait être disponible mi-mai. Toutefois, il est recommandé de commencer à utiliser le type de connexion de service Azure et de ne pas utiliser de jetons de longue durée conformément aux instructions de Kubernetes .
J’utilise AKS et ne souhaite rien changer, puis-je continuer à utiliser des tâches avec la connexion du service Kubernetes ?
Nous mettons à jour cette méthode pour créer des jetons de longue durée. Cela devrait être disponible mi-mai. Toutefois, sachez que cette approche est contre conseils Kubernetes.
J’utilise les tâches Kubernetes et la connexion de service Kubernetes, mais pas AKS. Dois-je m’inquiéter ?
Vous continuerez à travailler comme avant.
Le type de connexion du service Kubernetes sera-t-il supprimé ?
Nos tâches Kubernetes fonctionnent avec n’importe quel cluster Kubernetes, quel que soit leur emplacement d’exécution. La connexion du service Kubernetes continuera d’exister.
Je suis un client AKS et tout fonctionne correctement, dois-je agir ?
Il n’est pas nécessaire de changer quoi que ce soit. Si vous utilisez la connexion de service Kubernetes et que vous avez sélectionné l’abonnement Azure lors de la création, vous devez connaître les conseils Kubernetes sur l’utilisation de jetons de longue durée.
Je crée un environnement Kubernetes et n’ai pas la possibilité d’utiliser des connexions de service
Si vous ne pouvez pas accéder à votre AKS pendant la création de l’environnement, vous pouvez utiliser un environnement vide et définir l’entrée connectionType sur une connexion de service Azure Resource Manager.
J’ai configuré AKS avec Azure Active Directory RBAC et mon pipeline ne fonctionne pas. Ces mises à jour seront-elles résolues ?
L’accès à Kubernetes quand AAD RBAC est activé n’est pas lié à la création de jetons. Pour empêcher une invite interactive, nous allons prendre en charge kubelogin dans une prochaine mise à jour.
Spécifications
| Besoin | Descriptif |
|---|---|
| Types de pipelines | YAML, Build Classique, Version Classique |
| Exécutions sur | Agent, DeploymentGroup |
| demandes | Aucun |
| Capacités | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
| restrictions de commande | N'importe lequel |
| variables settables | N'importe lequel |
| Version de l’agent | Toutes les versions de l’agent prises en charge. |
| Catégorie de tâche | Déployer |