フロントエンド 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 にも次の制限が適用されます。
| マネージド関数 | 独自関数の利用 |
|---|---|
|
|