Dela via


AzureFunctionOnKubernetes@1 – Azure-funktion på Kubernetes v1-uppgift

Distribuera Azure-funktionen till Kubernetes-kluster.

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.

Indata

connectionType - Tjänstanslutningstyp
string. Krävs. Tillåtna värden: Azure Resource Manager, Kubernetes Service Connection. Standardvärde: Kubernetes Service Connection.

Välj en Kubernetes-tjänstanslutningstyp.

  • Kubernetes Service Connection – Gör att du kan ange en KubeConfig-fil, ange ett tjänstkonto eller importera en AKS-instans med alternativet Azure-prenumeration . Om du importerar en AKS-instans med alternativet Azure-prenumeration krävs Kubernetes-klusteråtkomst vid konfigurationstiden för tjänstanslutning.
  • Azure Resource Manager – Låter dig välja en AKS-instans. Har inte åtkomst till Kubernetes-kluster vid konfigurationstiden för tjänstanslutning.

Mer information finns i Kommentarer.


dockerRegistryServiceConnection - Docker-registertjänstanslutning
string. Krävs.

Välj en Docker-registertjänstanslutning.


kubernetesServiceConnection - Kubernetes-tjänstanslutning
Indataalias: kubernetesServiceEndpoint. string. Krävs när connectionType = Kubernetes Service Connection.

Välj en Kubernetes-tjänstanslutning.


azureSubscriptionConnection - Azure-prenumeration
Indataalias: azureSubscriptionEndpoint. string. Krävs när connectionType = Azure Resource Manager.

Välj Azure Resource Manager-prenumerationen som innehåller Azure Container Registry. Obs! Om du vill konfigurera en ny tjänstanslutning väljer du Azure-prenumerationen i listan och klickar på Auktorisera. Om din prenumeration inte visas eller om du vill använda ett befintligt tjänsthuvudnamn kan du konfigurera en Azure-tjänstanslutning med knappen Lägg till eller Hantera.


azureResourceGroup - Resursgrupp
string. Krävs när connectionType = Azure Resource Manager.

Välj en Azure-resursgrupp.


kubernetesCluster - Kubernetes-kluster
string. Krävs när connectionType = Azure Resource Manager.

Välj ett Hanterat Azure-kluster.


namespace - Kubernetes-namnområde
string.

Kubernetes-namnområde.


secretName - Hemligt namn
string.

Kubernetes-hemlighet som innehåller funktionskonfigurationsdata (till exempel AzureWebJobsStorage: Azure storage connection string).


dockerHubNamespace - Docker Hub namnområde
string.

Docker Hub namnområde. Krävs för privat Docker Hub lagringsplats.


appName - Programnamn
string. Krävs.

Programnamn. Kubernetes-objekten som skapats använder det här namnet. Detta bör följa Kubernetes namngivningskonventioner för resursnamn.


functionRootDirectory - Funktionsrotkatalog
string.

Funktionsrotkatalog. Ska innehålla host.json. Docker build and push utförs från den här katalogen.


waitForStability - Vänta på stabilitet
boolean. Standardvärde: true.

Vänta tills Kubernetes-objekten når önskat tillstånd.


arguments - Argument
string.

Skicka argument till kommandot. Exempel:
--no-docker --service-type NodePort.


Kontrollalternativ för aktivitet

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Inga.

Kommentarer

Överväganden för Kubernetes-tjänstanslutning vid åtkomst till AKS

Du kan skapa en Kubernetes-tjänstanslutning med något av följande alternativ.

  • KubeConfig
  • Tjänstkonto
  • Azure Subscription (Azure-prenumeration)

Skärmbild av att välja en Kubernetes-tjänstanslutningsautentiseringsmetod.

När du väljer alternativet Azure-prenumeration måste Kubernetes vara tillgängligt för Azure DevOps vid konfigurationstiden för tjänstanslutning. Det kan finnas olika orsaker till att det inte går att skapa en tjänstanslutning, till exempel att du har skapat ett privat kluster eller att klustret har inaktiverat lokala konton. I dessa fall kan Azure DevOps inte ansluta till klustret vid konfigurationstiden för tjänstanslutning och du ser en skärm för att läsa in namnrymder som fastnat.

Skärmbild av att välja en dialogruta för Kubernetes-tjänstanslutningsautentisering som fastnat vid inläsning av namnområden.

Från och med Kubernetes 1.24 skapas inte längre långlivade token som standard. Kubernetes rekommenderar att du inte använder långlivade token. Därför har uppgifter som använder en Kubernetes-tjänstanslutning som skapats med alternativet Azure-prenumeration inte åtkomst till den permanenta token som krävs för att autentisera och kan inte komma åt kubernetes-klustret. Detta resulterar också i dialogrutan låsta inläsningsnamnområden .

Använda Azure Resource Manager-tjänstanslutningen för att få åtkomst till AKS

För AKS-kunder är Azure Resource Manager-tjänstanslutningstypen den bästa metoden för att ansluta till ett privat kluster eller ett kluster som har lokala konton inaktiverade. Den här metoden är inte beroende av klusteranslutningen när du skapar en tjänstanslutning. Åtkomsten till AKS skjuts upp till pipeline-körning, vilket har följande fördelar:

  • Åtkomst till ett (privat) AKS-kluster kan utföras från en lokalt installerad agent eller skalningsuppsättningsagent med siktlinje till klustret.
  • En token skapas för varje uppgift som använder en Azure Resource Manager-tjänstanslutning. Detta säkerställer att du ansluter till Kubernetes med en kortlivad token, vilket är Kubernetes-rekommendationen.
  • AKS kan nås även när lokala konton är inaktiverade.

Vanliga frågor och svar om tjänstanslutning

Jag får följande felmeddelande: Det gick inte att hitta någon hemlighet som är associerad med tjänstkontot. Vad händer?

Du använder kubernetes-tjänstanslutningen med azure-prenumerationsalternativet. Vi uppdaterar den här metoden för att skapa långlivade token. Detta förväntas vara tillgängligt i mitten av maj. Vi rekommenderar dock att du börjar använda Azure-tjänstanslutningstypen och inte använda långlivade token enligt Kubernetes-vägledningen.

Jag använder AKS och vill inte ändra något, kan jag fortsätta att använda uppgifter med Kubernetes-tjänstanslutningen?

Vi uppdaterar den här metoden för att skapa långlivade token. Detta förväntas vara tillgängligt i mitten av maj. Tänk dock på att den här metoden är emot Kubernetes-vägledningen.

Jag använder Kubernetes-uppgifter och Kubernetes-tjänstanslutning men inte AKS. Ska jag oroa mig?

Aktiviteterna fortsätter att fungera som tidigare.

Kommer Kubernetes-tjänstanslutningstypen att tas bort?

Våra Kubernetes-uppgifter fungerar med alla Kubernetes-kluster, oavsett var de körs. Kubernetes-tjänstanslutningen fortsätter att finnas.

Jag är AKS-kund och allt fungerar bra, ska jag agera?

Det finns inget behov av att ändra någonting. Om du använder Kubernetes-tjänstanslutningen och valde Azure-prenumeration när du skapade den bör du känna till Kubernetes-vägledningen om hur du använder långlivade token.

Jag skapar en Kubernetes-miljö och har inget alternativ för att använda tjänstanslutningar

Om du inte kan komma åt din AKS när miljön skapas kan du använda en tom miljö och ange connectionType indata till en Azure Resource Manager-tjänstanslutning.

Jag har konfigurerat AKS med Azure Active Directory RBAC och min pipeline fungerar inte. Kommer de här uppdateringarna att lösa det?

Åtkomst till Kubernetes när AAD RBAC är aktiverat är inte relaterat till att skapa token. För att förhindra en interaktiv uppmaning stöder vi kubelogin i en framtida uppdatering.

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Funktioner Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet.
Kommandobegränsningar Valfri
Inställningsbara variabler Valfri
Agentversion Alla agentversioner som stöds.
Uppgiftskategori Distribuera