Azure Container Apps でサービスに接続する (プレビュー)

Azure Container Apps でアプリケーションを開発すると、さまざまなサービスに接続することが必要になる場合が多くなります。 事前にサービスを作成し、手動でコンテナー アプリに接続するのではなく、アドオンと呼ばれる非運用環境用に設計された開発レベル サービスのインスタンスを迅速に作成できます。

アドオンを使用することで、手動ダウンロード、作成、構成の負担なく OSS サービスを利用できます。

アプリが運用レベルのサービスを使用する準備ができたら、アプリケーションを Azure マネージド サービスに接続できます。

アドオンとして利用できるサービスは次のとおりです。

Title [サービス名]
Kafka kafka
MariaDB mariadb
Milvus milvus
PostgreSQL (オープン ソース) postgres
Qdrant qdrant
Redis (オープン ソース) redis
Weaviate weaviate

アドオン サービスの最新の一覧を取得するには、次のコマンドを実行します。

az containerapp add-on --help

使用手順については、サービスを管理する方法に関するセクションを参照してください。

機能

アドオンには次の機能があります。

  • スコープ: アドオンは、接続されているコンテナー アプリと同じ環境で実行されます。
  • スケーリング: アドオンは、サービスの需要がないときにゼロにスケールインできます。
  • 価格設定: アドオン課金は消費ベースの価格設定に該当します。 課金は、アドオンのインスタンスの実行中のみ行われます。
  • ストレージ: アドオンは永続ストレージを使用し、アドオンがゼロにスケールインしてもデータが失われないようにします。
  • リビジョン: アドオンを変更するたびに、コンテナー アプリの新しいリビジョンが作成されます。

マネージド サービスのサービス固有の機能を参照してください。

バインド

アドオンとマネージド サービスの両方をバインドを介してコンテナーに接続します。

コンテナー アプリのランタイムは、次の方法でコンテナー アプリをサービスにバインドします。

  • サービスの検出
  • ネットワークと接続構成値の抽出
  • コンテナー アプリの環境変数に構成情報と接続情報を注入する

バインドが確立されると、コンテナー アプリで環境変数からこれらの構成値や接続値を読み取ることができます。

開発と運用

開発から運用に移行する際、アドオンからマネージド サービスに移行できます。

次の表は、開発でどのサービスを使用し、運用でどのサービスを使用するかを示しています。

機能 アドオン 運用マネージド サービス
キャッシュ オープンソース Redis Azure Cache for Redis
データベース 該当なし Azure Cosmos DB
データベース オープンソース PostgreSQL Azure Database for PostgreSQL フレキシブル サーバー

開発環境と運用環境の間のデータ継続性に関する責任を負います。

サービスの管理

サービスをアプリケーションに接続するには、まずサービスを作成する必要があります。

新しいサービスを作成するには、サービスの種類と名前を指定して az containerapp add-on <SERVICE_TYPE> create コマンドを使用します。

az containerapp add-on redis create \
  --name myredis \
  --environment myenv

このコマンドは、myredis という新しい Redis サービスを myenv という Container Apps 環境に作成します。

サービスをアプリケーションにバインドするには、containerapp create に対して --bind 引数を使用します。

az containerapp create \
  --name myapp \
  --image myimage \
  --bind myredis \
  --environment myenv

このコマンドには、--bind 引数を用いた一般的なコンテナー アプリ create という特徴があります。 bind 引数は、アプリケーションにサービスを接続するよう Container Apps ランタイムに指示します。

--bind 引数は、create または update コマンドで使用できます。

アプリケーションからサービスを切断するには、update コマンドで --unbind 引数を使用します。

次の例では、サービスのバインドを解除する方法を示します。

az containerapp update --name myapp --unbind myredis

サービスへの接続に関する完全なチュートリアルについては、「Azure Container Apps でサービスに接続する」を参照してください。

サービス コマンドと引数の詳細については、az containerapp リファレンスを参照してください。

制限事項

  • アドオンはパブリック プレビュー段階です。
  • 2023 年 5 月 23 日以前に作成されたコンテナー アプリは、アドオンを利用する資格がありません。
  • アドオンには最小限の保証があります。 たとえば、クラッシュした場合は自動的に再起動されますが、正式なサービス品質や高可用性に関する保証はありません。 運用ワークロードには、Azure マネージド サービスを使用します。
  • 独自の VNET を使用する場合は、ワークロード プロファイル環境を使用する必要があります。 アドオン機能は、カスタム VNET を使用する従量課金のみの環境ではサポートされていません。

次のステップ