次の方法で共有


Azure Functions 拡張機能バンドル

この記事では、拡張機能バンドルを使用して、 Azure Functions でサポートされているすべてのトリガーとバインドを関数コードで使用できるようにする方法について説明します。 また、拡張機能バンドルを使用する場合のアプリのサポート レベルとポリシーについても説明します。

この記事は、non-.NET 言語を使用する Azure Functions 開発者にのみ適用されます。 バインド拡張機能を C# 関数アプリに直接追加する方法については、「 Azure Functions のバインド拡張機能を登録する」を参照してください。

Overview

拡張機能バンドルは、定義済みの互換性のあるバインド拡張機能のセットを関数アプリに追加します。 バンドルには、Functions で現在サポートされているすべてのバインド拡張機能が含まれています。 拡張機能バンドルはバージョン管理されています。 各バージョンには、連携して動作することが検証されている特定のバインド拡張機能バージョンのセットが含まれています。

可能であれば、常に最新のバンドル バージョンをアプリで使用する必要があります。

non-.NET テンプレートから Azure Functions プロジェクトを作成すると、拡張機能バンドルはアプリの host.json ファイルで既に有効になっています。

拡張バンドル参照を定義する

次の例のように、host.json セクションを追加して、extensionBundle プロジェクト ファイルで拡張バンドル参照を定義します。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

この例では、version[4.0.0, 5.0.0) は、Functions ホストに対し 4.0.0 以上5.0.0 未満 のバンドル バージョンを使用するよう指示します。これには 4.x のすべてのバージョンが含まれます。 この表記によって、アプリは v4.x 拡張機能バンドルの最新の利用可能なマイナー バージョンで維持されます。

extensionBundle では次のプロパティを使用できます。

Property Description
id Azure Functions 拡張機能バンドルの名前空間。
version インストールするバンドルのバージョン範囲。 Azure Functions ランタイムは、バージョンの範囲または間隔で定義される許容される最大バージョンを常に選択します。 たとえば、version[4.0.0, 5.0.0)値の範囲では、4.0.0 から (含まない) 5.0.0 までのすべてのバンドル バージョンが許可されます。 詳細については、バージョン範囲を指定する間隔の表記に関する説明を参照してください。

ヒント

また、host.json でバージョン範囲が [4.*, 5.0.0) と定義されている場合もありますが、これは [4.0.0, 5.0.0) と同じように解釈されます。

バンドル のバージョン

この表には、すべての Microsoft.Azure.Functions.ExtensionBundle バージョンと現在のサポート状態が一覧表示されています。

バンドルのバージョン host.json でのバージョン サポート状態*
4.x [4.0.0, 5.0.0)
[4.*, 5.0.0)
Active
3.x [3.3.0, 4.0.0) 推奨されない
2.x [2.*, 3.0.0) 推奨されない
1.x [1.*, 2.0.0) 推奨されない

* 非推奨のバンドル バージョンには、非推奨のバインド拡張機能のバージョンを含めることができます。 最適なサポート性と信頼性を得るために、バンドル バージョン 4.x にアップグレードする必要があります。

既定では、拡張機能バンドルはバージョン範囲を使用して定義されます。これにより、最新のマイナー バンドル バージョンが確実に使用されます。 表内のバージョン リンクを選択すると、そのメジャー バージョンの最新バンドルを定義している extensions.json ファイルを確認できます。

拡張機能バンドルに関する考慮事項

拡張機能バンドルを使用する場合は、次の考慮事項に注意してください。

  • 可能な場合は、カスタム範囲を定義するのではなく、前の表のversionhost.json範囲の値 ([4.0.0, 5.0.0) など) を設定する必要があります。
  • 最適なアプリのパフォーマンスと最新の機能へのアクセスを取得するには、最新バージョン範囲を使用します。
  • 万が一拡張機能バンドルを使用できない場合は、代わりに 拡張機能を明示的にインストールする必要があります。
  • デプロイされたアプリで使用される拡張機能を更新すると、Functions は新しい拡張機能バージョンを cdn.functions.azure.com エンドポイントからダウンロードします。 拡張機能の更新を成功させるには、 cdn.functions.azure.com エンドポイントに関数アプリからアクセスできる必要があります。

拡張機能バンドルをアップグレードする

アプリが引き続き新機能、セキュリティ パッチ、パフォーマンスの最適化の対象となることができるように、バンドル バージョンを up-to-date に保つことが重要です。

アプリを最新のバンドルにアップグレードするには、アプリ プロジェクトのルートにある host.json ファイルを編集します。 extensionBundle.version の値を [4.0.0,5.0.0) に設定します。これは、host.json ファイルでは次のようになります。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

アプリで使用される拡張機能バンドルのバージョンをアップグレードする場合は、次の考慮事項に注意してください。

  • 最新の 4.x バンドルの内容は、 リポジトリのこのリリース ページでいつでも確認できます。
  • アプリで使用される拡張機能のリファレンス ドキュメントを確認して、バージョン間の重大な変更を探します。 デフォルトのバンドルに含まれる拡張機能のバージョン一覧については、この表からリンクされている extension.json プロジェクト ファイルをご覧ください。 バンドル リポジトリのバンドル リリース ページで、特定のバンドル バージョン タグを確認できます。
  • 更新された拡張機能との互換性を確保するために、バンドル バージョンをアップグレードした後は常にローカルでアプリを確認してください。 Azure Functions Core Tools の func start コマンドまたは Visual Studio または Visual Studio Code の F5 を使用して、関数アプリをローカルで実行できます。
  • host.json ファイル内のバンドル バージョンの変更に基づいて拡張機能の更新をトリガーする方法は、アプリ環境によって異なります。
    • ローカル プロジェクト: 拡張機能は、 func start コマンドから、または開発ツールでデバッグするときに、Core Tools の起動時にローカルに更新されます。
    • 関数アプリ: 拡張機能は、更新された host.json ファイルを Azure の関数アプリにデプロイすると更新されます。

拡張機能バンドルのサポート ポリシー

拡張機能バンドルのメジャー バージョン リリースは、含まれているいずれかのバインド拡張機能に破壊的変更の更新がある場合に発生する可能性があります。 これらの拡張機能の破壊的変更には、基になる Azure SDK との互換性を維持するために、バンドルの更新が必要です。 バンドルをアップグレードすると、アプリは引き続き新機能、パフォーマンスの向上、完全な製品サポートを受けることができます。

拡張機能バンドルの更新は基になる Azure SDK の更新プログラムによって行われるため、拡張機能バンドルのサポート サイクルは、通常、基になる Azure SDK のサポート ポリシーに従います

拡張機能バンドルまたはバインド拡張機能のバージョンが非推奨になった場合、Microsoft から通知されます。 これらの通知は、ホスト ログ、Application Insights テーブル、Azure portal など、Functions エクスペリエンスのさまざまな部分に表示される場合があります。 これらの通知が表示された場合は、関数アプリを最新のサポートされている拡張機能バンドル バージョンにアップグレードする計画を開始する必要があります。

拡張バンドルのサポート サイクルは、次の個別のフェーズに従います。

Phase Description
プレビュー 特定のバインディング拡張機能のプレリリース バージョンは、プレビュー拡張機能バンドル (Microsoft.Azure.Functions.ExtensionBundle.Preview) で管理されます。 このプレビュー拡張機能バンドルを使用すると、一般公開 (GA) に達する前に、既存の拡張機能のプレビュー拡張機能と新しい動作を利用できます。 詳細については、「プレビュー拡張機能バンドルを操作する」を参照してください。
アクティブ 拡張機能バンドルの最新のメジャー バージョンは、アクティブなバージョンと見なされます。 関数アプリには、このバージョンをお勧めします。
非推奨 このバンドルのバージョンは、より新しいリリースに置き換えられ、非推奨となりました。 バンドルが非推奨になった後は、重大なバグ修正とセキュリティ更新だけが、限られた重複期間中に提供されます。 この重複期間は通常 12 か月以上あり、その間にアプリを最新のバンドル バージョンへ計画、テスト、アップグレードする時間が確保されています。

非推奨のバンドルを引き続き使用する関数アプリは、プラットフォーム上で引き続き実行できます。 ただし、新機能、パフォーマンスの向上、セキュリティ パッチ、完全なサポートへのアクセスを確保するには、関数アプリをサポートされているバンドル バージョンにアップグレードする必要があります。

拡張機能バンドルのバージョンとその含まれる拡張機能は、Azure Functions 拡張機能バンドル リポジトリで確認できます。 また、Azure SDK リリース ページですべての Functions 拡張機能の一覧を確認することもできます。 NuGet.org で 個々の .NET パッケージを見つけることができます。

プレビュー拡張機能バンドルを操作する

GA 以外の拡張機能バンドルを使用する場合は、次の考慮事項に注意してください。

  • プレビュー バンドルには、まだ開発中であり、運用環境で使用する準備ができていない機能が含まれている可能性があります。 非運用環境での評価とテストを目的としています。
  • プレビュー バージョン間で重大な変更が事前に通知されずに発生します。 これらには、次の変更を含めることができます。
    • トリガーとバインドの定義。
    • プレビューに含まれる拡張機能。
    • パフォーマンス特性と安定性。
  • セキュリティ更新には、バージョンのアップグレードが必要になる場合があります。
  • 非運用環境でプレビュー バンドルを完全にテストすることと、運用環境でのプレビュー バンドルの使用を避けることが必要です。 運用環境でプレビュー バンドルを使用する必要があるときは、次の追加の予防措置を講じてください。
    • 範囲ではなく、十分にテストされた特定のバンドル バージョンにバンドルをピン留めしてください。 ピン留めすると、非運用環境で更新を検証できる前に、バンドル バージョンが自動アップグレードされることを防止できます。
    • 完全にサポートされているバンドル リリースで機能が利用可能になったらすぐに、GA バンドル バージョンを使用するようにアプリを移行してください。
  • プレビューから GA への移行などの、バンドルの更新に関する最新情報を入手するために、次の手順を実行する必要があります。