Azure コンテナー インスタンスにコンテナーをデプロイして実行する

次の手順に従えば、Azure Container Instances を使用してクラウド内の Azure Cognitive Services アプリケーションを簡単にスケーリングすることができます。 コンテナー化により、インフラストラクチャを管理することにではなく、アプリケーションの構築に集中することができます。 コンテナーの使用方法の詳細については、「機能とメリット」を参照してください。

前提条件

レシピは、任意の Cognitive Services コンテナーで機能します。 レシピを使用する前に、Cognitive Services リソースを作成する必要があります。 コンテナーをサポートする各 Cognitive Service には、コンテナーのサービスをインストールして構成するための "インストール方法" の記事があります。 一部のサービスにはコンテナーへの入力としてファイルまたは一連のファイルが必要です。このソリューションを使用する前に、コンテナーを正しく理解して使用していることが重要です。

  • 使用している Azure Cognitive Service の Azure リソース。

  • Cognitive Service エンドポイント URL - Azure portal 内からエンドポイント URL が表示されている場所と正しい URL の形式の例を確認する方法については、お使いのサービスのコンテナーの "インストール方法" を確認してください。 正確な形式はサービスによって異なる可能性があります。

  • Cognitive Service キー - キーは Azure リソースの [キー] ページにあります。 必要なのは 2 つのキーのうち 1 つだけです。 キーは 32 文字の英数字の文字列です。

  • ローカル ホスト (コンピューター) 上の 1 つの Cognitive Services コンテナー。 以下を実行できることを確認します。

    • docker pull コマンドでイメージをプルする。
    • docker run コマンドを使用し、必要なすべての構成設定を使用してローカル コンテナーを正常に実行する。
    • コンテナーのエンドポイントを呼び出し、HTTP 2xx の応答と JSON 応答が返される。

山かっこ <> 内のすべての変数は、ご自分の値に置き換える必要があります。 この置き換えには山かっこも含まれます。

重要

LUIS コンテナーには、実行時にでプルされる .gz モデル ファイルが必要です。 コンテナーからは、コンテナー インスタンスからのボリューム マウントを介してこのモデル ファイルにアクセスできる必要があります。 モデル ファイルをアップロードするには、次の手順を行います。

  1. Azure ファイル共有を作成します。 後で必要になるため、Azure ストレージ アカウント名、キー、およびファイル共有名をメモします。
  2. LUIS モデル (パッケージ アプリ) を LUIS ポータルからエクスポートします
  3. Azure portal で、ストレージ アカウント リソースの [概要] ページに移動し、 [ファイル共有] を選択します。
  4. 最近作成したファイル共有名を選択し、 [アップロード] を選択します。 次に、パッケージ アプリをアップロードします。

Azure portal を使用して Azure コンテナー インスタンス リソースを作成する

  1. コンテナー インスタンスの作成のページに移動します。

  2. [基本] タブで、以下の詳細を入力します。

    設定
    サブスクリプション サブスクリプションを選択します。
    Resource group 利用可能なリソース グループを選択するか、新しいリソース グループを作成します (cognitive-services など)。
    コンテナー名 cognitive-container-instance などの名前を入力します。 この名前は小文字である必要があります。
    場所 デプロイのためのリージョンを選択します。
    イメージの種類 資格情報を必要としないコンテナー レジストリにコンテナー イメージが格納されている場合、Public を選択します。 コンテナー イメージにアクセスするとき、資格情報が必要な場合、Private を選択します。 コンテナー イメージが Public または Private ("パブリック プレビュー") であるかどうかに関する詳細は、「コンテナーのリポジトリとイメージ」を参照してください。
    イメージ名 Cognitive Services コンテナーの場所を入力します。 場所は docker pull コマンドの引数として使用される場所です。 使用可能なイメージ名と対応するリポジトリについては、コンテナーのリポジトリとイメージを参照してください。

    イメージ名は、3 つの部分を指定する完全修飾名にする必要があります。 最初にコンテナー レジストリ、次にリポジトリ、最後にイメージ名 <container-registry>/<repository>/<image-name> です。

    例を 1 つ挙げてみると、mcr.microsoft.com/azure-cognitive-services/keyphrase であれば、Microsoft Container Registry の Azure Cognitive Services リポジトリにあるキー フレーズ抽出イメージを指します。 もう 1 つの例を挙げると、containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text は、Container Preview コンテナー レジストリの Microsoft リポジトリの Speech to Text イメージです。
    OS の種類 Linux
    サイズ 特定の Cognitive Service コンテナーに対して推奨されるサイズに変更します。
    2 CPU コア
    4 GB
  3. [ネットワーク] タブで、以下の詳細を入力します。

    設定
    Port TCP ポートを 5000 に設定します。 ポート 5000 上でコンテナーを公開します。
  4. [詳細] タブで、Azure Container Instance リソースのコンテナー課金設定に必要な 環境変数 を入力します。

    Key
    ApiKey リソースの [キーとエンドポイント] ページからコピーされます。 スペースやダッシュを含まない 32 文字の英数字文字列 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) です。
    Billing リソースの [キーとエンドポイント] ページからコピーされたエンドポイント URL。
    Eula accept
  5. [確認と作成] をクリックします

  6. 検証に合格した後、 [作成] をクリックして作成プロセスを終了します

  7. リソースが正常にデプロイされると、準備完了です

コンテナー インスタンスを使用する

  1. [概要] を選択し、IP アドレスをコピーします。 これは 55.55.55.55 のような数値の IP アドレスです。

  2. 新しいブラウザー タブを開き、http://<IP-address>:5000 (http://55.55.55.55:5000 のような IP アドレスを使用します。 コンテナーのホーム ページが表示され、コンテナーが実行中であることが示されます。

    コンテナーのホーム ページ

  3. [Service API Description](サービス API の説明) を選択し、コンテナーの Swagger ページを表示します。

  4. いずれかの POST API を選択して [試してみる] を選択します。入力を含むパラメーターが表示されます。 パラメーターを入力します。

  5. [実行] を選択して、要求をコンテナー インスタンスに送信します。

    Azure コンテナー インスタンスへの Cognitive Services コンテナーの作成と使用は以上で完了です。