事件
AzureFunctionOnKubernetes@1 - Kubernetes v1 上的 Azure 函式工作
將 Azure 函式部署至 Kubernetes 叢集。
# 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.
connectionType
-
服務連線類型
string
. 必要。 允許值:Azure Resource Manager
和 Kubernetes Service Connection
。 預設值:Kubernetes Service Connection
。
選取 Kubernetes 服務連線類型。
-
Kubernetes Service Connection
- 可讓您提供 KubeConfig 檔案、指定服務帳戶,或使用 Azure 訂 用帳戶選項匯入 AKS 實例。 使用 Azure 訂 用帳戶選項匯入 AKS 實例需要在服務連線設定時間存取 Kubernetes 叢集。 -
Azure Resource Manager
- 可讓您選取 AKS 實例。 無法在服務連線設定時間存取 Kubernetes 叢集。
dockerRegistryServiceConnection
-
Docker 登錄服務連線
string
. 必要。
選取 Docker 登錄服務連線。
kubernetesServiceConnection
-
Kubernetes 服務連線
輸入別名: kubernetesServiceEndpoint
。
string
. 當 connectionType = Kubernetes Service Connection
時為必要。
選取 Kubernetes 服務連線。
azureSubscriptionConnection
-
Azure 訂用帳戶
輸入別名: azureSubscriptionEndpoint
。
string
. 當 connectionType = Azure Resource Manager
時為必要。
選取包含Azure Container Registry的 Azure Resource Manager 訂用帳戶。注意:若要設定新的服務連線,請從清單中選取 Azure 訂用帳戶,然後按一下 [授權]。 如果您的訂用帳戶未列出,或您想要使用現有的服務主體,您可以使用 [新增] 或 [管理] 按鈕來設定 Azure 服務連線。
azureResourceGroup
-
資源群組
string
. 當 connectionType = Azure Resource Manager
時為必要。
選取 Azure 資源群組。
kubernetesCluster
-
Kubernetes 叢集
string
. 當 connectionType = Azure Resource Manager
時為必要。
選取 Azure 受控叢集。
namespace
-
Kubernetes 命名空間
string
.
Kubernetes 命名空間。
secretName
-
秘密名稱
string
.
包含函式組態資料的 Kubernetes 秘密 (例如AzureWebJobsStorage: Azure storage connection string
) 。
dockerHubNamespace
-
Docker Hub命名空間
string
.
Docker Hub命名空間。 私人Docker Hub存放庫的必要專案。
appName
-
應用程式名稱
string
. 必要。
應用程式名稱。 建立的 Kubernetes 物件會使用此名稱。 這應該遵循資源名稱的 Kubernetes 命名慣例。
functionRootDirectory
-
函式根目錄
string
.
函式根目錄。 應該包含 host.json。 Docker 建置和推送是從這個目錄執行。
waitForStability
-
等候穩定性
boolean
. 預設值:true
。
等候 Kubernetes 物件達到所需的狀態。
arguments
-
參數
string
.
將引數傳遞至 命令。 例如:
--no-docker --service-type NodePort。
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
無。
您可以使用下列任何選項來建立 Kubernetes 服務連線。
- KubeConfig
- 服務帳戶
- Azure 訂用帳戶
選取 [Azure 訂 用帳戶] 選項時,Azure DevOps 必須在服務連線設定時間存取 Kubernetes。 可能會因為無法建立服務連線的各種原因,例如您 建立了私人叢集 ,或叢集 已停用本機帳戶。 在這些情況下,Azure DevOps 無法在服務連線設定時間連線到您的叢集,而且您會看到停滯的 [載入命名空間 ] 畫面。
從 Kubernetes 1.24 開始, 預設不會再建立長期保存的權杖。 Kubernetes 不建議使用長期保存的權杖。 因此,使用以 Azure 訂 用帳戶建立的 Kubernetes 服務連線工作無法存取驗證所需的永久權杖,而且無法存取 Kubernetes 叢集。 這也會導致凍結的 [載入命名空間 ] 對話方塊。
對於 AKS 客戶,Azure Resource Manager服務連線類型提供連線到私人叢集的最佳方法,或已停用本機帳戶的叢集。 當您建立服務連線時,這個方法不相依于叢集連線。 AKS 的存取會延後至管線執行時間,其優點如下:
- 您可以從可看見叢集的自我裝載或擴展集代理程式,存取 (私人) AKS 叢集。
- 系統會針對使用 Azure Resource Manager 服務連線的每個工作建立權杖。 這可確保您使用短期權杖連線到 Kubernetes,這是 Kubernetes 建議。
- 即使停用本機帳戶,也可以存取 AKS。
您正在使用 Kubernetes 服務與 Azure 訂用帳戶連線選項。 我們正在更新這個方法來建立長期保存的權杖。 這預期會在 5 月中提供。 不過,建議您開始使用 Azure 服務連線類型,而不是根據 Kubernetes 指導方針使用長期權杖。
我們正在更新這個方法來建立長期保存的權杖。 這預期會在 5 月中提供。 不過,請注意,此方法是針對 Kubernetes 指導方針。
您工作會如往常一樣繼續運作。
我們的 Kubernetes 工作會使用任何 Kubernetes 叢集,不論其執行位置為何。 Kubernetes 服務連線將繼續存在。
不需要變更任何專案。 如果您在建立期間使用 Kubernetes 服務連線和選取的 Azure 訂用帳戶,您應該留意 使用長期權杖的 Kubernetes 指引。
如果無法在環境建立期間存取 AKS,您可以使用空的環境,並將輸入設定 connectionType
為 Azure Resource Manager服務連線。
啟用 AAD RBAC 時存取 Kubernetes 與權杖建立無關。 為了防止互動式提示,我們將在未來的更新中支援 kubelogin 。
需求 | 描述 |
---|---|
管線類型 | YAML、傳統組建、傳統版本 |
在 上執行 | Agent、DeploymentGroup |
要求 | 無 |
Capabilities | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任何 |
可設定變數 | 任何 |
代理程式版本 | 所有支援的代理程式版本。 |
工作類別 | 部署 |