切断された環境での Docker コンテナーの使用

コンテナーを使用すると、独自の環境で Azure AI サービスの API を実行でき、セキュリティとデータ ガバナンスの固有の要件に対応できます。 切断されたコンテナーを使用すると、これらの API のいくつかをインターネットから切断して使用できます。 現時点では、次のコンテナーをこの方法で実行できます。

オフライン環境で Docker コンテナーの実行を試みる前に、コンテナーを正常にダウンロードして使用するための手順がわかっていることを確認してください。 次に例を示します。

  • ホスト コンピューターの要件と推奨事項。
  • コンテナーをダウンロードするために使用する Docker pull コマンド。
  • コンテナーが実行されていることを検証する方法。
  • 実行後に、コンテナーのエンドポイントにクエリを送信する方法。

切断された環境でコンテナーを使用するためのアクセスを要求する

インターネットから切断されたコンテナーへのアクセスを要求するには、要求フォームに記入して送信します。

このフォームでは、ユーザー、会社、コンテナーを使用するユーザー シナリオに関する情報が要求されます。 フォームを送信すると、Azure AI サービス チームがそれを確認して、10 営業日以内に決定事項を含むメールを返信します。

重要

  • このフォームでは、Azure サブスクリプション ID に関連付けられているメール アドレスを使用する必要があります。
  • コンテナーの実行に使用する Azure リソースは、承認された Azure サブスクリプション ID で作成されている必要があります。
  • Microsoft からのアプリケーションの状態に関する更新については、電子メール (受信トレイと迷惑フォルダーの両方) を確認してください。

承認されると、Microsoft Container Registry (MCR) からコンテナーをダウンロードしてから、そのコンテナーを実行できるようになります。これについては、記事の後半で説明します。

お使いの Azure サブスクリプションが承認されていない場合は、コンテナーを実行することができません。

アクセスできるのは、次の要件を満たすお客様に限定されます。

  • 組織が、Microsoft の戦略的な顧客またはパートナーとして認定されている必要があります。
  • 切断されたコンテナーは完全にオフラインで実行されることになるため、ユース ケースは以下または同様の要件のいずれかを満たしている必要があります。
    • インターネットへの接続性がまったくない環境またはデバイス。
    • インターネットに断続的にアクセスできるリモートの場所。
    • どのような種類のデータもクラウドに返送しないという厳格な規制の下にある組織。
  • 指示に従って申請を完了してください - 承認に必要なすべての情報を確実に提供するために、申請全体を通じて提供されるガイダンスに細心の注意を払ってください。

切断されたコンテナーのためにコミットメント レベルの料金プランを購入する

新しいリソースを作成

  1. Azure portal にサインインし、上の一覧にある該当するいずれかに対して [新しいリソースを作成する] を選択します。

  2. リソースを作成するための該当する情報を入力します。 価格レベルとして [コミットメント レベルの切断済みコンテナー] を選択してください。

    注意

    • お客様が Microsoft によって承認されている場合にのみ、コミットメント レベルを購入するオプションが表示されます。
    • 価格の詳細は、単に例を示しているだけです。
  3. ページの下部にある [確認および作成] を選択します。 情報を確認し、[作成] を選択します。

切断状態での使用のためにコンテナーを構成する

切断された使用のためにコンテナーをダウンロードして構成する手順については、次のドキュメントを参照してください。

Speech サービス

言語サービス

Kubernetes デプロイの環境変数名

Translator など、一部の Azure AI コンテナーでは、コンテナーの実行時にコロン (:) を含む環境変数の名前を渡す必要があります。 これは Docker を使用する場合は正常に動作しますが、Kubernetes では環境変数の名前にコロンを使用できません。 これを解決するには、Kubernetes にデプロイするときに、コロンを 2 つのアンダースコア文字 (__) に置き換えます。 環境変数名に使用できる形式の例を次に示します。

        env:  
        - name: Mounts__License
          value: "/license"
        - name: Mounts__Output
          value: "/output"

この例では、docker run コマンドの Mounts:LicenseMounts:Output の環境変数の既定の形式を置き換えます。

コンテナー イメージとライセンスの更新

コンテナー ライセンス ファイルは、各コンテナー イメージ内の特定のファイルを復号化するためのキーとして使用されます。 これらの暗号化されたファイルが新しいコンテナー イメージ内で誤って更新された場合、お使いのライセンス ファイルは、コンテナー イメージの以前のバージョンでは動作していた場合でも、コンテナーの起動に失敗する可能性があります。 この問題を回避するには、mcr.microsoft.com から新しいイメージ バージョンをプルした後、Azure portal で提供されるコンテナーのリソース エンドポイントから新しいライセンス ファイルをダウンロードすることをお勧めします。

新しいライセンス ファイルをダウンロードするには、ライセンス マウント、API キー、課金エンドポイントと共に docker run コマンドに DownloadLicense=True を追加します。 詳しい手順については、コンテナーのドキュメントをご覧ください。

使用状況レコード

切断された環境で Docker コンテナーを運用する場合、コンテナーは、使用状況レコードをボリュームに書き込んで、時間をかけて収集されるようにします。 REST エンドポイントを呼び出して、サービス使用状況に関するレポートを生成することもできます。

ログを格納するための引数

切断された環境で実行する場合は、使用状況ログを格納するために、コンテナーで出力マウントを利用できる必要があります。 たとえば、下の例では -v /host/output:{OUTPUT_PATH}Mounts:Output={OUTPUT_PATH} を含め、{OUTPUT_PATH} をログが格納されるパスに置き換えます。

docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}

コンテナー エンドポイントを使用してレコードを取得する

コンテナーには、その使用状況に関するレコードを返すための 2 つのエンドポイントが用意されています。

すべてのレコードを取得する

次のエンドポイントは、マウントされた課金レコード ディレクトリに収集されたすべての使用状況を要約するレポートを提供します。

https://<service>/records/usage-logs/

下の例のような JSON が返されます。

{
  "apiType": "noop",
  "serviceName": "noop",
  "meters": [
    {
      "name": "Sample.Meter",
      "quantity": 253
    }
  ]
}

特定の月のレコードを取得する

次のエンドポイントは、特定の月と年の使用状況を要約するレポートを提供します。

https://<service>/records/usage-logs/{MONTH}/{YEAR}

下の例のような JSON 応答が返されます。

{
  "apiType": "string",
  "serviceName": "string",
  "meters": [
    {
      "name": "string",
      "quantity": 253
    }
  ]
}

切断された環境でコンテナーを使用するためのコミットメント プランを購入する

切断されたコンテナーのコミットメント プランには、暦年のコミットメント期間があります。 プランを購入すると、すぐに価格の全額が課金されます。 コミットメント期間中にコミットメント プランを変更することはできませんが、年間の残りの日数については、日割り計算の価格で追加のユニットを購入できます。 コミットメントの最終日の午前 0 時 (UTC) までコミットメント プランを終了することができます。

リソースの [Commitment Tier pricing] (コミットメント レベルの価格) 設定で別のコミットメント プランを選択できます。

コミットメント プランを終了する

コミットメント プランの購入を継続しない場合、リソースの自動更新を [自動更新しない] に設定することができます。 コミットメント プランは、表示されたコミットメントの終了日に期限切れになります。 この日以降、コミットメント プランの料金は課金されません。 引き続き Azure リソースを使用して API を呼び出すことができ、従量課金制の料金で課金されます。 切断されたコンテナーについて、年の最終日の午前 0 時 (UTC) までコミットメント プランを終了することができ、その場合、翌年は課金されません。

トラブルシューティング

出力マウントとログを有効にした状態でコンテナーを実行すると、コンテナーによってログ ファイルが生成されます。これらはコンテナーの起動時または実行時に発生した問題のトラブルシューティングに役立ちます。

ヒント

トラブルシューティング情報とガイダンスの詳細については、「切断されたコンテナーについてよくあるご質問 (FAQ)」を参照してください。

次のステップ

Azure AI コンテナーの概要