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
.
引数を command に渡します。 例:
--no-docker --service-type NodePort。
タスク制御オプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。
出力変数
[なし] :
解説
AKS にアクセスするときの Kubernetes サービス接続に関する考慮事項
次のいずれかのオプションを使用して、Kubernetes サービス接続を作成できます。
- KubeConfig
- サービス アカウント
- Azure サブスクリプション
[Azure サブスクリプション] オプションを選択するときは、サービス接続の構成時に Azure DevOps から Kubernetes にアクセスできる必要があります。 プライベート クラスターを作成した場合や、クラスターにローカル アカウントが無効になっているなど、サービス接続を作成できない理由はさまざまです。 このような場合、Azure DevOps はサービス接続の構成時にクラスターに接続できないため、[ 名前空間の読み込み中] 画面が表示されます。
Kubernetes 1.24 以降では、有効期間の長いトークンは 既定では作成されなくなりました。 Kubernetes では、有効期間の長いトークンを使用しないことをお勧めします。 その結果、 Azure サブスクリプション オプションで作成された Kubernetes サービス接続を使用するタスクは、認証に必要な永続的なトークンにアクセスできないため、Kubernetes クラスターにアクセスできません。 これにより、固定された [読み込み名前空間 ] ダイアログも表示されます。
Azure Resource Manager サービス接続を使用して AKS にアクセスする
AKS のお客様の場合、Azure Resource Manager サービス接続の種類は、プライベート クラスター、またはローカル アカウントが無効になっているクラスターに接続するための最適な方法を提供します。 この方法は、サービス接続の作成時にクラスター接続に依存しません。 AKS へのアクセスはパイプライン ランタイムに遅延されます。次の利点があります。
- (プライベート) AKS クラスターへのアクセスは、セルフホステッド エージェントまたはスケール セット エージェントからクラスターにアクセスできます。
- トークンは、Azure Resource Manager サービス接続を使用するすべてのタスクに対して作成されます。 これにより、有効期間の短いトークン ( Kubernetes の推奨事項) を使用して Kubernetes に接続できます。
- ローカル アカウントが無効になっている場合でも、AKS にアクセスできます。
サービス接続に関する FAQ
次のエラー メッセージが表示されます。サービス アカウントに関連付けられているシークレットが見つかりませんでした。 状況
Azure サブスクリプションを使用して Kubernetes サービス接続を使用しています。 このメソッドを更新して、有効期間の長いトークンを作成しています。 これは 5 月中旬に利用可能になる予定です。 ただし、 Kubernetes のガイダンスに従って有効期間の長いトークンは使用せず、Azure サービス接続の種類の使用を開始することをお勧めします。
AKS を使用していて、何も変更したくない場合、Kubernetes サービス接続でタスクを引き続き使用できますか?
このメソッドを更新して、有効期間の長いトークンを作成しています。 これは 5 月中旬に利用可能になる予定です。 ただし、このアプローチは Kubernetes ガイダンスに反していることに注意してください。
Kubernetes タスクと Kubernetes サービス接続を使用していますが、AKS は使用していません。 私は心配する必要がありますか?
タスクは引き続き以前と同様に機能します。
Kubernetes サービスの接続の種類は削除されますか?
Kubernetes タスクは、実行されている場所に関係なく、任意の Kubernetes クラスターで動作します。 Kubernetes サービス接続は引き続き存在します。
私は AKS の顧客であり、すべてが正常に実行されています。行動する必要がありますか?
何も変更する必要はありません。 Kubernetes サービス接続を使用していて、作成時に [Azure サブスクリプション] を選択している場合は、有効期間の 長いトークンの使用に関する Kubernetes ガイダンスに注意する必要があります。
Kubernetes 環境を作成しており、サービス接続を使用するオプションはありません
環境の作成時に AKS にアクセスできない場合は、空の環境を使用し、入力を connectionType
Azure Resource Manager サービス接続に設定できます。
Azure Active Directory RBAC で AKS が構成されており、パイプラインが機能しません。 これらの更新プログラムによって解決されますか?
AAD RBAC が有効になっているときに Kubernetes にアクセスすることは、トークンの作成とは無関係です。 対話型プロンプトを防ぐために、今後の更新プログラムで kubelogin をサポートします。
要件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
実行日 | エージェント、DeploymentGroup |
確認要求 | なし |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | サポートされているすべてのエージェント バージョン。 |
タスクのカテゴリ | 配置 |