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 -
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_PYTHON38true に設定することで、v3 に戻すことができます。

次のランタイムは、Azure Static Web Apps では非推奨です。 ランタイムの変更の詳細については、Azure Static Web Apps での API 言語ランタイム バージョンの指定に関する記事と Azure Functions バージョン 3.x からバージョン 4.x への移行に関する記事を参照してください。

  • .NET Core 3.1
  • Node.js 12.x