切断された環境での Docker コンテナーの使用
コンテナーを使用すると、独自の環境で Azure AI サービスの API を実行でき、セキュリティとデータ ガバナンスの固有の要件に対応できます。 切断されたコンテナーを使用すると、これらの API のいくつかをインターネットから切断して使用できます。 現時点では、次のコンテナーをこの方法で実行できます。
- 音声テキスト変換
- カスタム音声テキスト変換
- ニューラル テキスト読み上げ
- テキスト翻訳 (標準)
- Azure AI 言語
- Azure AI Vision - 読み取り
- Document Intelligence
オフライン環境で Docker コンテナーの実行を試みる前に、コンテナーを正常にダウンロードして使用するための手順がわかっていることを確認してください。 次に例を示します。
- ホスト コンピューターの要件と推奨事項。
- コンテナーのダウンロードに使用する Docker
pull
コマンド。 - コンテナーが実行されていることを検証する方法。
- 実行後に、コンテナーのエンドポイントにクエリを送信する方法。
切断された環境でコンテナーを使用するためのアクセスを要求する
インターネットから切断されたコンテナーへのアクセスを要求するには、要求フォームに記入して送信します。
このフォームでは、ユーザー、会社、コンテナーを使用するユーザー シナリオに関する情報が要求されます。 フォームを送信すると、Azure AI サービス チームがそれを確認して、10 営業日以内に決定事項を含むメールを返信します。
重要
- このフォームでは、Azure サブスクリプション ID に関連付けられているメール アドレスを使用する必要があります。
- コンテナーの実行に使用する Azure リソースは、承認された Azure サブスクリプション ID で作成されている必要があります。
- Microsoft からのアプリケーションの状態に関する更新については、電子メール (受信トレイと迷惑フォルダーの両方) を確認してください。
承認されると、Microsoft Container Registry (MCR) からコンテナーをダウンロードしてから、そのコンテナーを実行できるようになります。これについては、記事の後半で説明します。
お使いの Azure サブスクリプションが承認されていない場合は、コンテナーを実行することができません。
アクセスできるのは、次の要件を満たすお客様に限定されます。
- 組織が、Microsoft の戦略的な顧客またはパートナーとして認定されている必要があります。
- 切断されたコンテナーは完全にオフラインで実行されることが予想されるため、ユース ケースは次のいずれかまたは同様の要件を満たす必要があります。
- インターネットに接続できる環境またはデバイス。
- インターネットに断続的にアクセスできるリモートの場所。
- どのような種類のデータもクラウドに返送しないという厳格な規制の下にある組織。
- 指示に従って申請を完了します - 承認に必要なすべての情報を確実に提供するために、申請全体を通じて提供されるガイダンスに細心の注意を払ってください。
切断されたコンテナーのためにコミットメント レベルの料金プランを購入する
新しいリソースを作成
Azure ポータルにサインインし該当する Azure AI サービスの 1 つに新しいリソースを作成する] を選択します。
リソースを作成するための該当する情報を入力します。 価格レベルとして [コミットメント レベルの切断済みコンテナー] を選択してください。
Note
- コミットメント レベルを購入するオプションは、Microsoft によって承認されている場合にのみ表示されます。
- 価格の詳細は例にすぎません。
ページの下部にある [確認および作成] を選択します。 情報を確認し、[作成] を選択します。
切断状態での使用のためにコンテナーを構成する
切断された使用のためにコンテナーをダウンロードして構成する手順については、次のドキュメントを参照してください。
Speech サービス
言語サービス
Kubernetes デプロイの環境変数名
Translator など、一部の Azure AI コンテナーでは、コンテナーの実行時にコロン (:
) を含む環境変数の名前を渡す必要があります。 これは Docker を使用する場合は問題ありませんが、Kubernetes では環境変数名のコロンは受け入れられません。
これを解決するには、Kubernetes にデプロイするときに、コロンを 2 つのアンダースコア文字 (__
) に置き換えます。 環境変数名に使用できる形式の例を次に示します。
env:
- name: Mounts__License
value: "/license"
- name: Mounts__Output
value: "/output"
この例では、docker run コマンドの Mounts:License
と Mounts: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)」を参照してください。