Azure Static Web Apps でサポートされている言語とランタイム
Azure Static Web Apps は、ランタイムと言語のバージョンが重要である 2 つの異なる場所、フロントエンドと API を特徴して備えています。
ランタイム型 | 説明 |
---|---|
フロントエンド | フロントエンド アプリケーションをビルドする Web サイトのビルド ステップの実行を担当するバージョン。 |
API | Web アプリケーションで使用される Azure Functions のバージョンとランタイム。 |
フロントエンド
静的 Web アプリのフロントエンドのビルドに使用するバージョンを指定できます。 既定以外のバージョンの構成が必要となるのは、多くの場合、古いバージョンをターゲットにする必要がある場合のみです。
静的 Web アプリのフロントエンドをビルドするランタイム バージョンは、ファイルの engines
セクションの package.json ファイルで指定できます。
{
...
"engines": {
"node": ">=14.0.0"
}
}
API
Azure Static Web Apps での API の基になるサポートは、Azure Functions によって提供されます。 詳細については、Azure Functions でサポートされている言語とランタイムに関する記事を参照してください。
Static Web Apps のマネージド関数では、次のバージョンがサポートされています。 一覧にないバージョンがお使いのアプリケーションで必要な場合、アプリに独自の関数を使用することを検討してください。
API 言語ランタイムのバージョンを構成するには、platform
セクションの apiRuntime
プロパティを、サポートされている次の値のいずれかに設定します。
言語ランタイムのバージョン | オペレーティング システム | Azure Functions バージョン | apiRuntime 値 |
サポート終了日 |
---|---|---|---|---|
.NET Core 3.1 | Windows | 3.x | dotnet:3.1 |
2022 年 12 月 3 日 |
.NET 6.0 インプロセス | Windows | 4.x | dotnet:6.0 |
- |
.NET 6.0 分離 | Windows | 4.x | dotnet-isolated:6.0 |
- |
.NET 7.0 isolated | Windows | 4.x | dotnet-isolated:7.0 |
- |
.NET 8.0 分離 | Windows | 4.x | dotnet-isolated:8.0 |
- |
Node.js 12.x | Linux | 3.x | node:12 |
2022 年 12 月 3 日 |
Node.js 14.x | Linux | 4.x | node:14 |
- |
Node.js 16.x | Linux | 4.x | node:16 |
- |
Node.js 18.x | Linux | 4.x | node:18 |
- |
Node.js 20.x (プレビュー) | Linux | 4.x | node:20 |
- |
Python 3.8 | Linux | 4.x | python:3.8 |
- |
Python 3.9 | Linux | 4.x | python:3.9 |
- |
Python 3.10 | Linux | 4.x | python:3.10 |
- |
.NET
.NET アプリのランタイム バージョンを変更するには、csproj ファイルの TargetFramework
値を変更します。 省略可能ですが、staticwebapp.config.json ファイルに apiRuntime
値を設定する場合は、その値が csproj ファイルで定義したものと一致するようにしてください。
次の例では、csproj ファイルの TargetFramework
要素を更新して、API 言語ランタイム バージョンとして NET 8.0 を設定する方法を示します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
...
</PropertyGroup>
...
Node.js
次の構成例では、apiRuntime
プロパティを使用して、staticwebapp.config.json ファイルの API 言語ランタイム バージョンとして Node.js 16 を選択する方法を示します。
{
...
"platform": {
"apiRuntime": "node:16"
}
...
}
Python
次の構成例では、apiRuntime
プロパティを使用して、staticwebapp.config.json ファイルの API 言語ランタイム バージョンとして Python 3.8 を選択する方法を示します。
{
...
"platform": {
"apiRuntime": "python:3.8"
}
...
}
v4.x でプロキシを再度有効にする
Azure Functions では、v4.x でのプロキシの再有効化がサポートされています。 静的 Web アプリのマネージド関数でプロキシ サポートを有効にするには、アプリケーション設定で [SWA_ENABLE_PROXIES_MANAGED_FUNCTIONS
] を [true
] に設定します。
[注] プロキシは v4.x でサポートされていますが、アプリがプロキシに依存しないように、Azure API Management とマネージド関数アプリの統合を使用することを検討してください。
非推奨事項
Note
Azure Functions v3 が廃止されたので、Static Web Appsでは Python 3.8 の API ランタイム サポートに Azure Functions v4 が使用されます。 この変更を有効にするには、アプリを再デプロイします。 お勧めしませんが、環境変数 USEV3_FOR_PYTHON38
を true
に設定することで、v3 に戻すことができます。
次のランタイムは、Azure Static Web Apps では非推奨です。 ランタイムの変更の詳細については、Azure Static Web Apps での API 言語ランタイム バージョンの指定に関する記事と Azure Functions バージョン 3.x からバージョン 4.x への移行に関する記事を参照してください。
- .NET Core 3.1
- Node.js 12.x