このチュートリアルでは、ワークロード ID 認証で Service Connector を使用して、Azure Kubernetes Service (AKS) アプリケーションを Azure OpenAI に接続する方法について説明します。 その後、Azure OpenAI と通信するサンプル Python アプリケーションをデプロイして、資格情報のない接続を確立してテストします。
このチュートリアルでは、次の操作を行います。
- AKS クラスターを作成し、GPT-4 モデルを使用して OpenAI リソースをAzureします。
- Service Connector を構成して、ワークロード ID との接続を確立します。
- サンプル アプリケーションを複製します。
- コンテナー イメージをビルドしてAzure Container Registryにプッシュします。
- アプリケーションを AKS にデプロイし、接続を確認します。
- リソースをクリーンアップする。
前提条件
- アクティブなサブスクリプションを持つAzure アカウント。 無料でアカウントを作成できます。
-
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Get started with Azure Cloud Shell」を参照してください。
CLI 参照コマンドをローカルで実行する場合は、Azure CLIinstallします。 Windowsまたは macOS で実行している場合は、Docker コンテナーでAzure CLIを実行することを検討してください。 詳細については、「 Docker コンテナーでAzure CLIを実行する方法を参照してください。
ローカル インストールを使用している場合は、az login コマンドを使用してAzure CLIにサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLI を使用して Azure に認証する」を参照してください。
メッセージが表示されたら、最初に使用するときにAzure CLI拡張機能をインストールします。 拡張機能の詳細については、「
Azure CLI を参照してください。az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
- コンテナー イメージと Kubernetes リソースを管理するための Docker と kubectl。
- コンテナーと AKS の基本的な理解。 AKS 用のアプリケーションの準備から開始します。
- Azure OpenAI リソースを作成し、モデルをデプロイするためのアクセス許可。
Azure OpenAI リソースと AKS リソースを作成する。
このチュートリアルを開始するには、いくつかのAzureリソースを作成します。
このチュートリアル用のリソース グループを作成します。
az group create \ --name MyResourceGroup \ --location eastus次のコマンドを使用するか、AKS クイック スタートを参照して、AKS クラスターを作成します。 このチュートリアルでは、サービス接続とポッド定義を作成し、このクラスターにサンプル アプリケーションをデプロイします。
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 \ --generate-ssh-keysコマンドを使用してクラスターに接続します。
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusteraz cognitiveservices account createコマンドを使用して、Azure OpenAI リソースを作成します。 必要に応じて、詳細な手順についてはこのチュートリアルを参照してください。 Azure OpenAI は、AKS クラスターが接続するターゲット サービスです。az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAI \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenai \ --subscription <SubscriptionID>コマンドを使用してモデルをデプロイします。 このモデルは、接続をテストするためにサンプル アプリケーションで使用されます。
az cognitiveservices account deployment create \ --resource-group MyResourceGroup \ --name MyOpenAI \ --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" \ --capacity 1コンテナー化されたサンプル アプリケーションを格納するには、Azure Container Registry (ACR) を作成します。 コマンドを使用するか、このチュートリアルを参照してください。
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku StandardAKS クラスターがレジストリ内のイメージを使用できるように、 コマンドを使用して匿名プルを有効にします。
az acr update \ --resource-group MyResourceGroup \ --name myregistry \ --anonymous-pull-enabledコマンドを使用するか、このチュートリアルを参照して、ユーザー割り当てマネージド ID を作成します。 接続が作成されると、ユーザー割り当てマネージド ID を使用して、AKS ワークロードのワークロード ID が 有効になります。
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
AKS から Azure OpenAI へのサービス接続を作成する
Azure ポータルまたはAzure CLIで、AKS クラスターと Azure OpenAI の間にサービス接続を作成します。
- ポータル
- Azure CLI
新しい接続を作成し、次の表の例を参照して設定を入力する手順については、AKS サービス接続のクイックスタートを参照してください。 その他の設定はすべて既定値のままにします。
[基本] タブ:
設定 値の例 説明 Kubernetes の名前空間 default Kubernetes 名前空間。 サービスの種類 OpenAI サービス ターゲット サービスの種類。 接続名 openai_conn Service Connector によって提供される接続名を使用するか、独自の接続名を選択します。 サブスクリプション 自分のサブスクリプション Azure OpenAI リソースを含むAzure サブスクリプション。 OpenAI MyOpenAI 接続先のAzure OpenAIリソースです。 クライアントの種類 Python 接続構成のプログラミング言語またはフレームワーク。 [認証] タブ
認証設定 値の例 説明 認証の種類 ワークロードアイデンティティ アプリを Azure OpenAI に接続するための認証方法。 セキュリティを強化するために、ワークロード ID を使用することをお勧めします。 別の方法には、接続文字列とサービス プリンシパルが含まれており、資格情報の管理に関する考慮事項が必要です。 サブスクリプション 自分のサブスクリプション ユーザー割り当てマネージド ID を含むサブスクリプション。 ユーザーが割り当てたマネージドID MyIdentity AKS クラスターのワークロード ID 認証を有効にするユーザー割り当てマネージド ID。
接続が作成されたら、[サービス コネクタ] ペインでその詳細を表示できます。
Python のサンプルアプリケーションを複製する
サンプル リポジトリをクローンします。
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.gitAzure OpenAI のリポジトリのサンプル フォルダーに移動します。
cd serviceconnector-aks-samples/azure-openai-workload-identityファイルの プレースホルダーを、デプロイしたモデル名に置き換えます。
コンテナー イメージをビルドしてAzure Container Registryにプッシュする
Azure CLI
az acr buildコマンドを使用して、イメージをビルドしてコンテナー レジストリにプッシュします。az acr build --registry myregistry --image sc-demo-openai-identity:latest ./コマンドを使用して、コンテナー レジストリ内のイメージを表示します。
az acr repository list --name myregistry --output table
Azure に AKS をデプロイして、OpenAI 接続をテストする
プレースホルダーを フォルダー内の ファイルで置き換えます。
- は、前にビルドしたイメージの名前に置き換えます。 たとえば、「 」のように入力します。
- をサービス アカウント名に置き換えます。 Azure ポータルの Service Connector ペインにあります。
- をシークレット名に置き換えます。 Azure ポータルの Service Connector ペインにあります。
コマンドを使用してポッドをクラスターにデプロイします。これにより、AKS クラスターの既定の名前空間に という名前のポッドが作成されます。 インストールされていない場合は、 コマンドを使用してローカルにインストールします。
kubectl apply -f pod.yamlでポッドを表示して、デプロイが成功したことを確認します。
kubectl get pod/sc-demo-openai-identityでログを表示して接続が確立されていることを確認します。
kubectl logs pod/sc-demo-openai-identity
リソースをクリーンアップする
このチュートリアルで作成したリソースが不要になったら、リソース グループを削除してクリーンアップしてください。
az group delete \
--resource-group MyResourceGroup
関連するコンテンツ
- Foundry Tools に接続する
- サービスコネクタを使用してAzure OpenAIに接続する
- Azure AI マルチサービス リソース統合