次の方法で共有


Azure Functionsを使用したAzure Static Web Appsでの API サポート

フロントエンド Web アプリケーションは、多くの場合、データとサービスのバックエンド API を呼び出します。 既定では、Azure Static Web Appsは Azure Functions 経由で組み込みのサーバーレス API エンドポイントを提供します。

Static Web AppsのAzure Functions API は、ホスト プラン

  • 管理された関数: 既定では、静的 Web アプリの API は、いくつかの制限に関連付けられたAzure Static Web Appsによって管理およびデプロイされるAzure Functions アプリケーションです。

  • 独自の関数の作成: 必要に応じて、Azure Functionsのすべての機能を含む任意のプランの種類の既存のAzure Functions アプリケーションを作成できます。 この構成の場合、Functions アプリの個別のデプロイを処理する必要があります。

次の表では、マネージド関数と既存の関数の使用の違いを対比したものです。

機能 マネージド関数 関数を持参する
Azure Functions トリガーとバインドへのアクセス HTTP のみ すべて
サポートされている Azure Functions ランタイム1 サポートされている言語とランタイム」を参照してください。 すべて
サポートされているAzure Functions ホスト プラン 従量課金 従量課金
Premium
Dedicated
ユーザー認証とロールベースの承認データに直接アクセスできる統合セキュリティ
ルーティングの統合 により、カスタム CORS ルールを必要とせずに、/api ルートを Web アプリで安全に利用できるようになります。
Durable Functions プログラミング モデル
マネージド ID
Azure App Service 認証と承認 トークン管理
Azure Static Web Apps外で使用できる API 関数
Key Vault の参照

1 マネージド関数でランタイムのバージョンを指定するには、フロントエンド アプリに構成ファイルを追加し、apiRuntime プロパティを設定します。 サポートは、Azure Functions言語ランタイム サポート ポリシーに従います。

Static Web Appsの API オプションには、次のAzure サービスが含まれます。

詳細については、「API の概要」を参照してください。

構成

Web アプリでは、api ルートを介して API エンドポイントを使用できます。

マネージド関数 独自関数の利用
/api ルートは固定されていますが、マネージド関数アプリのソース コードのフォルダーの場所は制御できます。 リポジトリの .github/workflows フォルダーにあるワークフロー YAML ファイルを編集することにより、この場所を変更できます。 /api ルートへの要求は、既存のAzure Functions アプリに送信されます。

トラブルシューティングとログ

ログは、Application Insights を追加した場合にのみ使用できます。

マネージド関数 独自関数の利用
静的 Web アプリ上で Application Insights を有効にして、ログ記録を有効にします。 Azure Functions アプリで Application Insights を有効にして、ログ記録を有効にします。

制約

Static Web Apps API constraints に加えて、Azure Functions API にも次の制限が適用されます。

マネージド関数 独自関数の利用
  • トリガーとバインドは、HTTP に限定されています。
  • Azure Functions アプリは、Node.js 12 に存在する必要があります。 Node.js 14、Node.js 16、Node.js 18、Node.js 20 (プレビュー)、.NET Core 3.1、.NET 6.0、.NET 7.0、.NET 8.0、Python 3.8、Python 3.9、または Python 3.10。
  • 一部のアプリケーション設定は、サービスによって管理されているため、次のプレフィックスはランタイムで予約されています。
    • APPSETTING_、AZUREBLOBSTORAGE_、AZUREFILESSTORAGE_、AZURE_FUNCTION_、CONTAINER_、DIAGNOSTICS_、DOCKER_、FUNCTIONS_、IDENTITY_、MACHINEKEY_、MAINSITE_、MSDEPLOY_、SCMSITE_、SCM_、WEBSITES_、WEBSITE_、WEBSOCKET_、AzureWeb
  • 一部のアプリケーション タグは、サービスによって内部的に使用されます。 したがって、次のタグは予約されています。
    • AccountId、EnvironmentId、FunctionAppId
  • Functions アプリのデプロイを管理する必要があります。

次のステップ