次の方法で共有


チュートリアル: 接続文字列を使用して AKS の Azure OpenAI Service に接続する (プレビュー)

このチュートリアルでは、接続文字列を使用して Azure OpenAI Service と通信する、Azure Kubernetes (AKS) クラスター内にポッドを作成する方法を学習します。 次のタスクを実行します。

  • gpt-4 モデル デプロイを使用して AKS クラスターと Azure OpenAI Service を作成します。
  • サービス コネクタを使用して、AKS クラスターと Azure OpenAI の間に接続を作成します。
  • AKS クラスターから OpenAI サービスと通信するサンプル アプリケーションを複製します。
  • AKS クラスター内のポッドにアプリケーションを配置し、接続をテストします。
  • リソースをクリーンアップする。

警告

Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フローでは、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、マネージド ID など、より安全なフローが実行可能ではない場合にのみ使用してください。 マネージド ID を使用するチュートリアルを参照してください。

前提条件

Azure リソースを作成する

  1. このチュートリアル用のリソース グループを作成します。

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. 次のコマンドを使用するか、AKS クイック スタートを参照して、AKS クラスターを作成します。 このクラスターでは、サービス接続とポッド定義を作成し、サンプル アプリケーションをデプロイします。

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
       --generate-ssh-keys
    
  3. az aks get-credentials コマンド 使用してクラスターに接続します。

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. az cognitiveservices account create コマンドを使用して、Azure OpenAI Service リソースを作成します。 必要に応じて、詳細な手順についてはこのチュートリアルを参照してください。 Azure OpenAI Service は、AKS クラスターに接続するターゲット サービスです。

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenaiservice \
        --subscription <SubscriptionID>
    
  5. az cognitiveservices deployment create コマンドを使用してモデルをデプロイします。 このモデルは、接続をテストするためにサンプル アプリケーションで使用されます。

    az cognitiveservices account deployment create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard"
        --capacity 1
    
  6. az acr create コマンドを使用して Azure Container Registry (ACR) リソースを作成するか、このチュートリアルを参照してください。 レジストリは、AKS ポッド定義が使用するサンプル アプリケーションのコンテナー イメージをホストします。

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. az acr update コマンド 使用して匿名プルを有効にして、AKS クラスターがレジストリ内のイメージを使用できるようにします。

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    

Service Connector を使用して AKS でサービス接続を作成する (プレビュー)

Azure portal または Azure CLI で、AKS クラスターと Azure OpenAI Service の間にサービス接続を作成します。

新しい接続を作成し、次の表の例を参照して設定を入力する手順については、AKS サービス接続のクイックスタートを参照してください。 その他の設定はすべて既定値のままにします。

  1. [基本] タブ:

    設定 値の例 説明
    Kubernetes の名前空間 default Kubernetes 名前空間。
    サービスの種類 OpenAI Service ターゲット サービスの種類。
    接続名 openai_conn Service Connector によって提供される接続名を使用するか、独自の接続名を選択します。
    サブスクリプション <MySubscription> Azure OpenAI Service に使用されるサブスクリプション。
    OpenAI <MyOpenAIService> 接続先のターゲット Azure OpenAI Service。
    クライアントの種類 Python ターゲット サービスに接続するために使用するコード言語またはフレームワーク。
  2. [認証] タブ

    認証設定 値の例 説明
    認証の種類 接続文字列 Service Connector 認証の種類。

接続が作成されたら、[サービス コネクタ] ペインでその詳細を表示できます。

サンプル アプリケーションを複製する

  1. サンプル リポジトリをクローンします。

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Azure OpenAI のリポジトリのサンプル フォルダーに移動します。

    cd serviceconnector-aks-samples/azure-openai-connection-string
    
  3. app.py ファイルの <MyModel> プレースホルダーを、デプロイしたモデル名に置き換えます。

コンテナー イメージをビルドしてプッシュする

  1. Azure CLI の az acr build コマンドを使用して、イメージをビルドしてコンテナー レジストリにプッシュします。

    az acr build --registry <MyRegistry> --image sc-demo-openai-connstr:latest ./
    
  2. az acr repository list コマンドを使用して、コンテナー レジストリ内のイメージを表示します。

    az acr repository list --name <MyRegistry> --output table
    

アプリケーションを実行し接続をテストする

  1. プレースホルダーを azure-openai-connection-string フォルダー内の pod.yaml ファイルで置き換えます。

    • <YourContainerImage> を前にビルドしたイメージの名前に置き換えます。 (例: <MyRegistry>.azurecr.io/sc-demo-openai-connstr:latest)。
    • <SecretCreatedByServiceConnector> をサービス コネクタによって作成されたシークレットに置き換えます。 シークレット名は、Azure portal の [サービス コネクタ] ペインで確認できます。
  2. kubectl apply コマンドを使用してポッドをクラスターに配置します。 kubectl がインストールされていない場合は、az aks install-cli コマンドを使用して、ローカルにインストールします。 コマンドでは、AKS クラスターの既定の名前空間に sc-demo-openai-connstr という名前のポッドが作成されます。

    kubectl apply -f pod.yaml
    
  3. kubectl でポッドを表示して、デプロイが成功したかどうかを確認します。

    kubectl get pod/sc-demo-openai-connstr
    
  4. kubectl でログを表示して、接続が機能していることを確認します。

    kubectl logs pod/sc-demo-openai-connstr
    

リソースをクリーンアップする

これらのリソースが不要になった場合は、リソース グループを削除して、このチュートリアルで作成した Azure リソースをクリーンアップします。

az group delete \
    --resource-group MyResourceGroup

次のステップ

サービス コネクタの概念と、それを使って AKS を Azure サービスに接続する方法について詳しくは、次の記事をご覧ください。