Azure Functionsでは、関数アプリは個々の関数の実行コンテキストを提供します。 関数アプリの動作は、特定の関数アプリによってホストされるすべての関数に適用されます。 関数アプリ内のすべての関数は、同じ言語である必要があります。
関数アプリ内の個々の関数は、共に配置され、共にスケーリングされます。 同じ関数アプリ内のすべての関数は、関数アプリがスケーリングされるときに、インスタンスごとに同じリソースを使用します。
接続文字列、環境変数、およびその他のアプリケーション設定は、関数アプリごとに別に定義されます。 関数アプリ間で共有する必要があるすべてのデータは、外部の永続化されたストアに格納する必要があります。
Azure ポータルで作業を開始する
注
Azure ポータル での関数コードの編集には制限があるため、ローカルで関数を開発し、Azureの関数アプリにコード プロジェクトを発行する必要があります。 詳細については、Azure ポータルの
関数アプリでアプリの設定を表示するには、次の手順に従います。
Azure アカウントを使用して、Azure ポータルにサインインします。 関数アプリを検索し、選択します。
関数アプリの左側のペインで、[設定] を展開し、[環境変数] を選択してから、[アプリ設定] タブを選択します。
アプリケーション設定を操作する
Azure Functionsで使用される定義済みのアプリ設定に加えて、関数コードで必要に応じて任意の数のアプリ設定を作成できます。 詳細については、「app settings reference for Azure Functions」を参照してください。
これらの設定は暗号化されて格納されます。 詳細については、アプリ設定のセキュリティに関するページを参照してください。
アプリの設定は、Azure ポータルから管理できます。また、Azure CLI と Azure PowerShell を使用して管理できます。 アプリ設定は、Visual Studio Code および Visual Studio から管理することもできます。
注
アプリケーション設定を変更すると、すべてのホスティング プランで関数アプリが既定で再起動されます。 設定を変更するときにダウンタイムが発生しない展開の場合は、 Flex 従量課金プラン を使用し、 サイトの更新戦略としてローリング 更新プログラムを使用します。 その他のホスティング プランについては、ダウンタイムの最小化に関するガイダンスについては 、デプロイの最適化 に関するトピックを参照してください。
アプリの設定を表示するには、「get started in the Azure portalを参照してください。
[アプリ設定] タブでは、関数アプリに使用される設定を管理します。
アプリケーションの設定
関数アプリの設定値は、コードの中で環境変数として読み込むこともできます。 詳細については、次の言語固有のリファレンス記事の「環境変数」のセクションを参照してください。
ローカルで関数アプリを開発する場合、これらの値を、local.settings.json プロジェクト ファイルにローカルのコピーとして保持する必要があります。 詳細については、「ローカル設定ファイル」を参照してください。
FTPS デプロイ設定
Azure Functionsでは、FTPS を使用した関数アプリへのプロジェクト コードのデプロイがサポートされています。 このデプロイ方法ではトリガーを同期する必要があるため、推奨されていません。 プロジェクト ファイルを安全に転送するには、常に FTP ではなく FTPS を使用します。
FTPS デプロイに必要な資格情報を取得するには、次のいずれかの方法を使用します。
Azure ポータルで FTPS 発行資格情報を取得するには、関数アプリの発行プロファイルをダウンロードします。
重要
発行プロファイルには、重要なセキュリティ資格情報が含まれています。 ダウンロードしたファイルは常にローカル コンピューター上でセキュリティで保護する必要があります。
関数アプリの発行プロファイルをダウンロードするには、次を操作を行います。
Azure ポータルで、関数アプリのページを見つけ、左側の列で Settings>Configuration を展開します。
[構成] ページで、[全般設定] タブを選択し、[SCM 基本認証の発行資格情報] が [オン] になっていることを確認します。 この設定が [オフ] の場合、発行プロファイルを使用できないため、[ オン] を選択してから [適用] を選択します。
関数アプリの [概要] ページに戻ってから、[発行プロファイルの取得] を選択します。
ファイルの内容を保存してコピーします。
- ファイルで、
publishProfile属性を持つpublishMethod="FTP"要素を見つけます。 この要素では、publishUrl、userNameおよびuserPWD属性に FTPS 発行のターゲット URL と資格情報が含まれています。
ホスティング プランの種類
関数アプリを作成するときに、アプリが実行されるホスティング プランも作成します。 プランには、1 つ以上の関数アプリを含めることができます。 関数の機能、スケーリング、価格は、プランの種類によって異なります。 詳細については、「Azure Functions ホスティング オプション」を参照してください。
Azure ポータルから、または Azure CLI または Azure PowerShell API を使用して、関数アプリによって使用されるプランの種類を決定できます。
次の値は、プランの種類を示します。
| プランの種類 | Azure ポータル | Azure CLI/PowerShell |
|---|---|---|
| 消費 | 消費 | Dynamic |
| プレミアム | ElasticPremium | ElasticPremium |
| 専用 (App Service) プラン | 各種 | 各種 |
関数アプリで使用されるプランの種類を確認するには、
Azure ポータルの関数アプリの を参照。Overview ページにあるApp Service Plan
価格レベルを表示するには、[App Service プラン] の名前を選択し、左側のペインから [設定] > [プロパティ] を選択します。
プランの移行
Windowsの従量課金プランと Premium プランの間で関数アプリを移行できます。
ヒント
Premium プランではなく Flex Consumption プランで実行するように従量課金プラン アプリを移行することをお勧めします。 Linux 従量課金プラン アプリの唯一の移行オプションは、Flex Consumption プランへの移行です。 詳細については、「 従量課金プラン アプリを Flex 従量課金プランに移行する」を参照してください。
プラン間で移行する場合は、次の考慮事項に注意してください。
- Dedicated (App Service) プランへの直接移行はサポートされていません。
- Linux では移行はサポートされていません。
- ソース プランとターゲット プランは、同じリソース グループと地理的リージョンに存在する必要があります。 詳しくは、「Move an app to another App Service plan (アプリを別の App Service プランに移動する)」をご覧ください。
- 具体的な CLI コマンドは、移行の方向によって異なります。
- 関数の実行のダウンタイムは、関数アプリがプラン間で移行されるときに発生します。
- 移行の前後に同じAzure Files共有がアプリによって使用されるため、状態やその他のアプリ固有のコンテンツは維持されます。
プランは、次のツールを使用して移行できます。
Azure ポータルを使用して、別のプランに切り替えることができます。
Windowsでアプリの移行の方向を選択します。
Azure ポータルでの開発の制限事項
次の表に、ポータル内編集をサポートしているオペレーティング システムと言語を示します。
| Language | Flex 従量課金 | Premium | Dedicated | 従量課金 |
|---|---|---|---|---|
| C# | ||||
| Java | ||||
| JavaScript (Node.js)JavaScript (Node.js) | ✔ | ✔ | Windowsのみ | |
| Python | Linux のみ | Linux のみ | Linux のみ | |
| PowerShell | Windowsのみ | Windowsのみ | Windowsのみ | |
| TypeScript (Node.js) |
Azure ポータルで関数を開発するときは、次の制限事項を考慮してください。
- ポータル内編集は、Azure ポータルで作成または最後に変更された関数に対してのみサポートされます。
- ポータル内編集は、JavaScript、PowerShell、Python、および C# スクリプト (インプロセス) 関数でのみサポートされます。
- ポータル内での編集は現在、Flex 従量課金プランではサポートされていません。
- 従量課金プランで Linux 上でアプリを実行する機能は、廃止される予定です。 詳細については、「Azure Functions 従量課金プランのホスティング」を参照してください。
- Azure ポータルの外部から関数アプリにコードをデプロイすると、ポータルでその関数アプリのコードを編集できなくなります。 この場合は、ローカル開発を引き続き使用します。
- Pythonでは、カスタム モジュールを使用した開発は現在、ポータルではサポートされていません。 カスタム モジュールを関数アプリに追加するには、アプリをローカルで開発する必要があります。
- コンパイル済みの C# 関数とJava関数の場合は、ポータルで関数アプリと関連リソースを作成できます。 ただし、関数コード プロジェクトをローカルで作成し、Azureに発行する必要があります。
可能であれば、関数をローカルで開発し、コード プロジェクトを Azure の関数アプリに発行します。 詳細については、「ローカルでのAzure Functionsのコード化とテストを参照してください。
拡張機能の手動インストール
C# クラス ライブラリ関数には、バインド拡張機能用の NuGet パッケージをクラス ライブラリ プロジェクトに直接含めることができます。 その他の.NET以外の言語と C# スクリプトの場合は、拡張バンドルを使用<する必要があります>。 拡張機能を手動でインストールする必要がある場合は、Azure Functions Core Toolsローカルで使用します。 拡張機能バンドルを使用できず、ポータルでのみ機能する場合は、Advanced Tools (Kudu) を使用して、サイトに直接 extensions.csproj ファイルを手動で作成する必要があります。 最初に extensionBundle ファイルから 要素を削除してください。
この同じプロセスは、アプリに追加する必要がある他のファイルでも機能します。
重要
可能な場合は、Azureの関数アプリで直接ファイルを編集しないでください。 アプリファイルをローカルにダウンロードし、Core Tools を使用して拡張機能とその他のパッケージをインストールし、変更を検証してから、Core Tools または他のサポートされているデプロイ方法のいずれかを使用してアプリを再発行することをお勧めします。
Azure ポータルに組み込まれている Functions エディターを使用すると、ポータルで関数コードと構成ファイルを直接更新できます。
関数アプリを選択し、[関数] で [関数] を選択します。
関数を選択し、[開発者] で [コード と テスト] を選択します。
編集するファイルを選択し、完了したら [保存] を選択します。
アプリのルートにある function.proj や extensions.csproj などのファイルは、Advanced Tools (Kudu) を使用して作成および編集する必要があります。
関数アプリを選択し、[開発ツール] を展開して、[高度なツール]>[Go] を選択します。
メッセージが表示されたら、Azure資格情報を使用してソース管理マネージャー (SCM) サイトにサインインします。
[デバッグコンソール] メニューから、[CMD] を選択します。
.\site\wwwrootに移動し、上部のプラス (+) ボタンを選択して、[新しいファイル} を選択します。ファイルに
extensions.csprojなどの名前を付け、Enter キーを押します。新しいファイルの横にある編集ボタンを選択し、ファイル内のコードを追加または更新して、[保存] を選択します。
extensions.csproj のようなプロジェクト ファイルの場合は、次のコマンドを実行して拡張機能プロジェクトを再構築します。
dotnet build extensions.csproj
プラットフォーム機能
関数アプリは、Azure App Service プラットフォームで実行され、それを維持します。 そのため、関数アプリは、Azureのコア Web ホスティング プラットフォームのほとんどの機能にアクセスできます。 Azure ポータルを使用すると、左側のウィンドウで、関数アプリで使用できる App Service プラットフォームの多くの機能にアクセスできます。
次の表は、ホスティング プランとオペレーティング システムによる Azure ポータル機能のサポートを示しています。
| 特徴量 | 従量課金プラン | Flex 従量課金プラン | Premium プラン | 専用プラン |
|---|---|---|---|---|
| 高度なツール (Kudu) | Windows: ✔ Linux: X |
X | ✔ | ✔ |
| App Service Editor | Windows: ✔ Linux: X |
X | Windows: ✔ Linux: X |
Windows: ✔ Linux: X |
| Backups | X | X | X | ✔ |
| コンソール | Windows: コマンド ライン Linux: X |
X | Windows: コマンド ライン Linux: SSH |
Windows: コマンド ライン Linux: SSH |
この記事の残りの部分では、お使いの関数アプリに便利なポータルで使用できる次の機能を中心に説明します。
App Service の設定の使用方法の詳細については、「Configure Azure App Service Settings」を参照してください。
App Service Editor
App Service Editor は、JSON 構成ファイルとコード ファイルを変更するために使用できる高度なポータル内エディターです。 このオプションを選択すると、別のブラウザー タブが基本的なエディターで起動します。 このエディターで、Git リポジトリとの統合、コードの実行とデバッグ、関数アプリの設定変更を行うことができます。 このエディターは、組み込みの関数アプリ エディターと比較して、お使いの関数の開発環境が強化されています。
お使いの関数は、お使いのローカル コンピューターで開発することを検討することをお勧めします。 ローカルで開発し、Azureに発行すると、プロジェクト ファイルは Azure ポータルで読み取り専用になります。 詳細については、「ローカルでのAzure Functionsのコード化とテストを参照してください。
コンソール
ポータル内コンソールは、コマンド ラインから関数アプリを操作するのに適した開発者ツールです。 一般的なコマンドには、ディレクトリやファイルの作成、ナビゲーション、バッチ ファイルやスクリプトの実行などがあります。
ローカルで開発する場合は、Azure Functions Core Tools と Azure CLI を使用することをお勧めします。
高度なツール (Kudu)
App Service 用の高度なツール (Kudu とも呼ばれます) を使用すると、関数アプリの高度な管理機能にアクセスできます。 Kudu から、システム情報、アプリ設定、環境変数、サイト拡張機能、HTTP ヘッダー、およびサーバー変数を管理します。 また、関数アプリの SCM エンドポイント (たとえば ) にアクセスして、https://<myfunctionapp>.scm.azurewebsites.net/ を起動することもできます。
デプロイ センター
ソース管理ソリューションを使用してお使いの関数コードを開発および管理する場合、デプロイ センターを使用すると、ソース管理からビルドおよびデプロイをすることができます。 更新時にプロジェクトがビルドされ、Azureに配置されます。 詳細については、「deployment technologies in Azure Functions」を参照してください。
クロス オリジン リソース共有
最新のブラウザーでは、クライアントで悪意のあるコードが実行されるのを防ぐために、Web アプリケーションから別のドメインで実行されるリソースへの要求をブロックします。
クロス オリジン リソース共有 (CORS) を使用すると、お使いの関数アプリでどこのオリジンがエンドポイントを呼び出せるかを Access-Control-Allow-Origin ヘッダーで宣言できます。
お使いの関数アプリの [許可されたオリジン] 一覧を構成すると、お使いの関数アプリの HTTP エンドポイントからのすべての応答に Access-Control-Allow-Origin ヘッダーが自動追加されます。
別のドメイン エントリがある場合、ワイルドカード (*) は無視されます。
認証
関数が HTTP トリガーを使用するとき、呼び出しに、最初に認証を必須とすることができます。 App Service では、Facebook、Microsoft、X などのソーシャル プロバイダーとのMicrosoft Entra認証とサインインがサポートされています。特定の認証プロバイダーの構成については、「Azure App Service 認証の概要を参照してください。