Anomaly Detector 一変量コンテナーを Azure Container Instances にデプロイする

重要

2023 年 9 月 20 日以降は、新しい Anomaly Detector リソースを作成できなくなります。 Anomaly Detector サービスは、2026 年 10 月 1 日に廃止されます。

Azure AI サービス Anomaly Detector コンテナーを Azure Container Instances にデプロイする方法について説明します。 この手順では、Anomaly Detector リソースの作成方法を実演します。 次に、関連するコンテナー イメージをプルする方法について説明します。 最後に、ブラウザーからこの 2 つのオーケストレーションを行う機能を取り上げます。 コンテナーを使用することで、開発者の関心をインフラストラクチャの管理から切り離し、アプリケーション開発に専念させることができます。

前提条件

  • Azure サブスクリプションを使用してください。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • Azure CLI (az) をインストールします。
  • Docker エンジン。Docker CLI がコンソール ウィンドウで動作することを確認します。

Anomaly Detector リソースを作成する

  1. Azure portal にサインインします。

  2. [Anomaly Detector の作成] リソースを選択します。

  3. すべての必須設定を入力します。

    設定
    名前 任意の名前 (2 から 64 文字)
    サブスクリプション 適切なサブスクリプションを選択します
    場所 近くにある任意の使用可能な場所を選択します
    価格レベル F0 - 1 秒あたり 10 回の呼び出し、1 か月あたり 2 万件のトランザクション。
    または:
    S0 - 1 秒あたり 80 回の呼び出し
    リソース グループ 使用可能なリソース グループを選択します
  4. [作成] を選択して、リソースが作成されるまで待ちます。 作成後、リソース ページに移動します。

  5. 構成された endpoint と API キーを収集します。

    ポータルの [キーとエンドポイント] タブ 設定
    概要 エンドポイント エンドポイントをコピーします。 それは、https://<your-resource-name>.cognitiveservices.azure.com/ のようなものです
    [キー] API キー 2 つのキーのうちの 1 つをコピーします。 スペースやダッシュを含まない 32 文字の英数字文字列 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) です。

Azure CLI から Azure コンテナー インスタンス リソースを作成する

次の YAML は、Azure コンテナー インスタンス リソースを定義します。 内容をコピーして新しいファイルに貼り付け、my-aci.yaml という名前を付け、コメント付きの値を独自の値に置き換えます。 有効な YAML については、テンプレートの形式を参照してください。 使用可能なイメージ名と対応するリポジトリについては、コンテナーのリポジトリとイメージを参照してください。 コンテナー インスタンスの YAML リファレンスの詳細については、「YAML リファレンス: Azure Container Instances」をご覧ください。

apiVersion: 2018-10-01
location: # < Valid location >
name: # < Container Group name >
properties:
  imageRegistryCredentials: # This is only required if you are pulling a non-public image that requires authentication to access. For example Text Analytics for health.
  - server: containerpreview.azurecr.io
    username: # < The username for the preview container registry >
    password: # < The password for the preview container registry >
  containers:
  - name: # < Container name >
    properties:
      image: # < Repository/Image name >
      environmentVariables: # These env vars are required
        - name: eula
          value: accept
        - name: billing
          value: # < Service specific Endpoint URL >
        - name: apikey
          value: # < Service specific API key >
      resources:
        requests:
          cpu: 4 # Always refer to recommended minimal resources
          memoryInGb: 8 # Always refer to recommended minimal resources
      ports:
        - port: 5000
  osType: Linux
  volumes: # This node, is only required for container instances that pull their model in at runtime, such as LUIS.
  - name: aci-file-share
    azureFile:
      shareName: # < File share name >
      storageAccountName: # < Storage account name>
      storageAccountKey: # < Storage account key >
  restartPolicy: OnFailure
  ipAddress:
    type: Public
    ports:
    - protocol: tcp
      port: 5000
tags: null
type: Microsoft.ContainerInstance/containerGroups

注意

すべての場所で同じ CPU とメモリが使用できるわけではありません。 コンテナーで使用可能なリソースを場所と OS ごとにまとめた一覧については、場所とリソースの表を参照してください。

作成した YAML ファイルを az container create コマンドに使用します。 Azure CLI から、<resource-group> を独自の値に置き換えて az container create コマンドを実行します。 また、YAML デプロイ内の値をセキュリティで保護する方法については、値をセキュリティで保護するを参照してください。

az container create -g <resource-group> -f my-aci.yaml

有効な場合、コマンドの出力は Running... となります。しばらくすると、出力は新しく作成された ACI リソースを表す JSON 文字列に変化します。 コンテナー イメージはしばらく使用できない可能性が高いですが、リソースは配置されています。

ヒント

YAML は場所と一致するように適切に調整する必要があるため、パブリック プレビューの Azure AI サービスの場所に十分注意してください。

コンテナーが実行されていることを検証する

コンテナーが実行されていることを検証する方法は複数あります。 問題になっているコンテナーの "外部 IP" アドレスと公開ポートを特定し、任意の Web ブラウザーを開きます。 次の各種の要求 URL を使用して、コンテナーが実行中であることを確認します。 ここに示す要求例の URL は http://localhost:5000 ですが、実際のコンテナーは異なる可能性があります。 使用するコンテナーの外部 IP アドレスと公開ポートを基にしてください。

要求 URL 目的
http://localhost:5000/ コンテナーには、ホーム ページが用意されています。
http://localhost:5000/ready GET で要求することで、この URL により、コンテナーがモデルに対するクエリを受け取る準備ができていることを確認できます。 この要求は Kubernetes の liveness probe と readiness probe に対して使用できます。
http://localhost:5000/status これも GET で要求することで、この URL により、コンテナーを起動するために使用された API キーが有効であるかどうかを、エンドポイント クエリを発生させずに確認できます。 この要求は Kubernetes の liveness probe と readiness probe に対して使用できます。
http://localhost:5000/swagger コンテナーには、エンドポイントの完全なドキュメント一式と、 [Try it out](試してみる) の機能が用意されています。 この機能を使用すると、コードを一切記述することなく、お客様の設定を Web ベースの HTML フォームに入力したりクエリを実行したりできます。 クエリから戻った後、HTTP ヘッダーと HTTP 本文の必要な形式を示すサンプル CURL コマンドが得られます。

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

次のステップ