Azure Container Apps による Azure Static Web Apps での API のサポート
Azure Container Apps は、サーバーレス コンテナーとマイクロサービスをホストするためのマネージド プラットフォームです。
コンテナー アプリを静的 Web アプリにリンクすると、/api
で始まるルートを持つ静的 Web アプリへの要求は、コンテナー アプリの同じルートにプロキシされます。
既定では、コンテナー アプリが静的 Web アプリにリンクされている場合、コンテナー アプリは、リンクされた静的 Web アプリを介してプロキシされる要求のみを受け入れます。 コンテナー アプリは、一度に 1 つの静的 Web アプリにリンクできます。
Static Web Apps の API オプションには、次の Azure サービスが含まれます。
詳細については、「API の概要」を参照してください。
Note
Azure Container Apps との統合には、Static Web Apps Standard プランが必要です。
バックエンド統合は、Static Web Apps の pull request 環境ではサポートされていません。
前提条件
コンテナー アプリを静的 Web アプリにリンクするには、既存の Container Apps リソースと静的 Web アプリが必要です。
リソース | 説明 |
---|---|
Azure Container Apps | まだ持っていない場合は、最初のコンテナー アプリをデプロイするガイドの手順に従ってください。 |
既存の静的 Web アプリ | まだない場合は、ファースト ステップ ガイドの手順に従って、"フレームワークなし" の静的 Web アプリを作成します。 |
例
次の場所を経由してエンドポイントを公開する既存の Azure Container App インスタンスについて検討します。
https://my-container-app.red-river-123.eastus2.azurecontainerapps.io/api/getProducts
リンクされると、この URL の例に示すように、静的 Web アプリから api
パスを介してその同じエンドポイントにアクセスできます。
https://red-sea-123.azurestaticapps.net/api/getProducts
どちらの URL も同じ API エンドポイントを指しています。 Static Web Apps は /api
に対して行われた要求を照合し、リンクされたリソースへのパス全体をプロキシするため、コンテナー アプリのエンドポイントには /api
プレフィックスが必要です。
コンテナー アプリをリンクする
静的 Web アプリの API バックエンドとしてコンテナー アプリをリンクするには、次の手順に従います。
Azure portal で、静的 Web アプリに移動します。
ナビゲーション メニューから [API] を選択します。
API Management インスタンスをリンクする先の環境を見つけます。 リンクを選択します。
[バックエンド リソースの種類] で、[コンテナー アプリ] を選択します。
[サブスクリプション] で、リンクするコンテナー アプリを含むサブスクリプションを選択します。
[リソース名] で、コンテナー アプリを選択します。
リンクを選択します。
リンク プロセスが完了すると、/api
で始まるルートへの要求は、リンクされたコンテナー アプリにプロキシされます。
コンテナー アプリへのアクセスを管理する
コンテナー アプリには、静的 Web アプリを介してプロキシされるトラフィックのみを許可する Azure Static Web Apps (Linked)
という名前の ID プロバイダーが構成されます。 他のアプリケーションがコンテナー アプリにアクセスできるようにするには、その認証構成を更新して別の ID プロバイダーを追加するか、セキュリティ設定を変更して未認証のアクセスを許可します。
コンテナー アプリをリンク解除する
静的 Web アプリからコンテナー アプリのリンクを解除するには、次の手順に従います。
Azure portal で、静的 Web アプリに移動します。
ナビゲーション メニューから [API] を選択します。
リンクを解除する環境を見つけて、コンテナー アプリ名を選択します。
[リンク解除] を選択します。
リンク解除プロセスが完了すると、/api
で始まるルートへの要求は、コンテナー アプリにはプロキシされなくなります。
Note
コンテナー アプリが匿名トラフィックに誤って公開されないようにするために、リンク プロセスによって作成された ID プロバイダーは自動的には削除されません。 コンテナー アプリの認証設定から "Azure Static Web Apps (リンク済み)" という名前の ID プロバイダーは削除してかまいません。
Container Apps リソースから認証を削除する
Container Apps リソースで匿名トラフィックを受信できるようにするには、以下の手順に従って ID プロバイダーを削除します。
Azure portal で Container Apps リソースに移動します。
ナビゲーション メニューから [認証] を選びます。
[ID プロバイダー] の一覧から、Static Web Apps リソースに関連する ID プロバイダーを削除します。
[認証の削除] を選んで認証を削除し、Container Apps リソースへの匿名トラフィックを許可します。
Container Apps リソースが匿名トラフィックを受信できるようになりました。