Azure Functions Core Tools の操作Work with Azure Functions Core Tools

Azure Functions Core Tools を使用すると、ローカル コンピューター上のコマンド プロンプトまたはターミナルから関数を開発およびテストできます。Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. ローカル関数はライブ Azure サービスに接続できるため、完全な Functions ランタイムを使用してローカル コンピューター上で関数をデバッグすることができます。Your local functions can connect to live Azure services, and you can debug your functions on your local computer using the full Functions runtime. Azure サブスクリプションに関数アプリをデプロイすることもできます。You can even deploy a function app to your Azure subscription.

重要

同じ関数アプリにローカル開発とポータル開発を混在させないでください。Do not mix local development with portal development in the same function app. ローカル プロジェクトから関数を発行するときは、ポータルではプロジェクト コードを管理または変更しないようにしてください。When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

Core Tools を使用して、ローカル コンピューターで関数を開発し、Azure に発行する基本的な手順は次の通りです。Developing functions on your local computer and publishing them to Azure using Core Tools follows these basic steps:

Core Tools のバージョンCore Tools versions

Azure Functions Core Tools には、3 つのバージョンがあります。There are three versions of Azure Functions Core Tools. 使用するバージョンは、ローカル開発環境、選択した言語、および必要なサポートのレベルによって異なります。The version you use depends on your local development environment, choice of language, and level of support required:

特定のコンピューターには、1 つのバージョンの Core Tools のみをインストールできます。You can only install one version of Core Tools on a given computer. 特に記載がない限り、この記事の例ではバージョン 3.x を対象にしています。Unless otherwise noted, the examples in this article are for version 3.x.

前提条件Prerequisites

現在、Azure Functions Core Tools では、Azure CLI に依存して Azure アカウントでの認証を行っています。Azure Functions Core Tools currently depends on the Azure CLI for authenticating with your Azure account. つまり、Azure Functions Core Tools から Azure に発行できるようにするには、Azure CLI をローカルにインストールする必要があります。This means that you must install the Azure CLI locally to be able to publish to Azure from Azure Functions Core Tools.

Azure Functions Core Tools のインストールInstall the Azure Functions Core Tools

Azure Functions Core Tools には、Azure Functions ランタイムを実行するのと同じランタイムのバージョンが含まれており、ローカルの開発コンピューターで実行できます。Azure Functions Core Tools includes a version of the same runtime that powers Azure Functions runtime that you can run on your local development computer. また、関数の作成、Azure への接続、関数プロジェクトのデプロイを行うコマンドも用意されています。It also provides commands to create functions, connect to Azure, and deploy function projects.

バージョン 3.x および 2.xVersion 3.x and 2.x

バージョン 3.x および 2.x のツールは、.NET Core 上に構築されている Azure Functions ランタイムを使用します。Version 3.x/2.x of the tools uses the Azure Functions runtime that is built on .NET Core. このバージョンは、WindowsmacOSLinux など、.NET Core が対応しているすべてのプラットフォームでサポートされています。This version is supported on all platforms .NET Core supports, including Windows, macOS, and Linux.

重要

拡張バンドルを使用すると、.NET Core SDK をインストールするための要件をバイパスできます。You can bypass the requirement for installing the .NET Core SDK by using extension bundles.

次の手順では、Windows インストーラー (MSI) を使用して Core Tools v3.x をインストールします。The following steps use a Windows installer (MSI) to install Core Tools v3.x. Core Tools v2.x のインストールに必要な、その他のパッケージベースのインストーラーの詳細については、Core Tools の Readme をご覧ください。For more information about other package-based installers, which are required to install Core Tools v2.x, see the Core Tools readme.

  1. Windows のバージョンに応じて、 以下の Core Tools インストーラーをダウンロードして実行します。Download and run the Core Tools installer, based on your version of Windows:

  2. 拡張バンドルを使用しない場合、.NET Core 3.x SDK for Windows をインストールします。If you don't plan to use extension bundles, install the .NET Core 3.x SDK for Windows.

ローカル関数プロジェクトを作成するCreate a local Functions project

関数プロジェクト ディレクトリには、host.json ファイル、local.settings.json ファイル、および個々の関数のコードを含むサブフォルダーが含まれています。A functions project directory contains the files host.json and local.settings.json, along with subfolders that contain the code for individual functions. このディレクトリは、Azure の関数アプリに相当します。This directory is the equivalent of a function app in Azure. Functions のフォルダー構造の詳細については、Azure Functions の開発者向けガイドを参照してください。To learn more about the Functions folder structure, see the Azure Functions developers guide.

バージョン 3.x/2.x では、プロジェクトの初期化時に既定の言語を選択する必要があります。Version 3.x/2.x requires you to select a default language for your project when it is initialized. バージョン 3.x/2.x では、追加されたすべての関数に既定の言語テンプレートが使用されます。In version 3.x/2.x, all functions added use default language templates. バージョン 1.x では、関数を作成するたびに言語を指定します。In version 1.x, you specify the language each time you create a function.

ターミナル ウィンドウまたはコマンド プロンプトで、次のコマンドを実行してプロジェクトおよびローカルの Git リポジトリを作成します。In the terminal window or from a command prompt, run the following command to create the project and local Git repository:

func init MyFunctionProj

重要

Java では、HTTP でトリガーされる最初の関数と共に、Maven アーキタイプを使用してローカル関数プロジェクトを作成します。Java uses a Maven archetype to create the local Functions project, along with your first HTTP triggered function. 次のコマンドを使用して、Java プロジェクト mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype を作成します。Use the following command to create your Java project: mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype. Maven アーキタイプの使用例については、コマンド ラインのクイックスタートに関する記事を参照してください。For an example using the Maven archetype, see the Command line quickstart.

プロジェクト名を指定すると、その名前の新しいフォルダーの作成と初期化が実行されます。When you provide a project name, a new folder with that name is created and initialized. それ以外の場合は、現在のフォルダーが初期化されます。Otherwise, the current folder is initialized.
バージョン 3.x/2.x では、コマンドを実行するときにプロジェクトのランタイムを選択する必要があります。In version 3.x/2.x, when you run the command you must choose a runtime for your project.

Select a worker runtime:
dotnet
node
python 
powershell

上/下方向キーを使用して言語を選択し、Enter キーを押します。Use the up/down arrow keys to choose a language, then press Enter. JavaScript または TypeScript 関数の開発を計画している場合は、ノードを選択し、言語を選択します。If you plan to develop JavaScript or TypeScript functions, choose node, and then select the language. TypeScript にはいくつかの追加要件があります。TypeScript has some additional requirements.

出力は、次の JavaScript プロジェクトの例のようになります。The output looks like the following example for a JavaScript project:

Select a worker runtime: node
Writing .gitignore
Writing host.json
Writing local.settings.json
Writing C:\myfunctions\myMyFunctionProj\.vscode\extensions.json
Initialized empty Git repository in C:/myfunctions/myMyFunctionProj/.git/

func init では、次のオプションがサポートされています。特に注意書きがない限り、バージョン 3.x/2.x だけが対象です。func init supports the following options, which are version 3.x/2.x-only, unless otherwise noted:

オプションOption 説明Description
--csx .NET 関数を C# スクリプトとして作成します。これはバージョン 1.x の動作です。Creates .NET functions as C# script, which is the version 1.x behavior. --worker-runtime dotnet でのみ有効です。Valid only with --worker-runtime dotnet.
--docker 選択した --worker-runtime に基づく基本イメージを使用して、コンテナーの Dockerfile を作成します。Creates a Dockerfile for a container using a base image that is based on the chosen --worker-runtime. カスタム Linux コンテナーに発行する場合は、このオプションを使用します。Use this option when you plan to publish to a custom Linux container.
--docker-only 既存のプロジェクトに Dockerfile を追加します。Adds a Dockerfile to an existing project. local.settings.json で設定されていないか指定されていない場合、worker ランタイムのプロンプトを表示します。Prompts for the worker-runtime if not specified or set in local.settings.json. 既存のプロジェクトをカスタム Linux コンテナーに発行する場合は、このオプションを使用します。Use this option when you plan to publish an existing project to a custom Linux container.
--force プロジェクトに既存のファイルがある場合でも、プロジェクトを初期化します。Initialize the project even when there are existing files in the project. この設定は、同じ名前の既存のファイルを上書きします。This setting overwrites existing files with the same name. プロジェクト フォルダー内の他のファイルには影響ありません。Other files in the project folder aren't affected.
--language 言語固有のプロジェクトを初期化します。Initializes a language specific project. 現時点では、--worker-runtimenode に設定されている場合にサポートされます。Currently supported when --worker-runtime set to node. オプションは typescriptjavascript です。Options are typescript and javascript. --worker-runtime javascript または --worker-runtime typescript を使用することもできます。You can also use --worker-runtime javascript or --worker-runtime typescript.
--managed-dependencies マネージドの依存関係をインストールします。Installs managed dependencies. 現時点では、この機能は PowerShell worker ランタイムのみでサポートされています。Currently, only the PowerShell worker runtime supports this functionality.
--source-control Git リポジトリを作成するかどうかを制御します。Controls whether a git repository is created. 既定では、リポジトリは作成されません。By default, a repository isn't created. true を指定すると、リポジトリが作成されます。When true, a repository is created.
--worker-runtime プロジェクトの言語ランタイムを設定します。Sets the language runtime for the project. サポートされる値は、csharpdotnetjavascriptnode (JavaScript)、powershellpythontypescript です。Supported values are: csharp, dotnet, javascript,node (JavaScript), powershell, python, and typescript. Java の場合は、Maven を使用します。設定しない場合は、初期化中にランタイムの選択を求められます。For Java, use Maven.When not set, you're prompted to choose your runtime during initialization.

重要

既定では、Core Tools のバージョン 2.x 以降のバージョンでは、.NET ランタイムの関数アプリ プロジェクトは C# クラス プロジェクト (.csproj) として作成されます。By default, version 2.x and later versions of the Core Tools create function app projects for the .NET runtime as C# class projects (.csproj). Visual Studio または Visual Studio Code で使用できるこれらの C# プロジェクトは、テスト中および Azure への発行時にコンパイルされます。These C# projects, which can be used with Visual Studio or Visual Studio Code, are compiled during testing and when publishing to Azure. バージョン 1.x およびポータルで作成される同じ C# スクリプト (.csx) ファイルを代わりに作成および使用したい場合は、関数を作成して展開するときに、--csx パラメーターを指定する必要があります。If you instead want to create and work with the same C# script (.csx) files created in version 1.x and in the portal, you must include the --csx parameter when you create and deploy functions.

拡張機能を登録するRegister extensions

HTTP およびタイマートリガーを除き、ランタイム バージョン 2.x およびそれ以降の関数バインディングは、拡張パッケージとして実装されます。With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x and higher are implemented as extension packages. HTTP バインドとタイマー トリガーには、拡張機能は必要ありません。HTTP bindings and timer triggers don't require extensions.

さまざまな拡張機能パッケージ間の非互換性を減らすために、Functions では、host.json プロジェクト ファイル内で拡張機能バンドルを参照することが許可されます。To reduce incompatibilities between the various extension packages, Functions lets you reference an extension bundle in your host.json project file. 拡張機能バンドルを使用しないことを選択する場合でも、.NET Core 2.x SDK をローカルにインストールし、Functions プロジェクトと共に extensions.csproj を維持する必要があります。If you choose not to use extension bundles, you also need to install .NET Core 2.x SDK locally and maintain an extensions.csproj with your functions project.

Azure Functions ランタイム バージョン 2.x では、関数で使用するバインディングの型に対応した拡張機能を明示的に登録する必要があります。In version 2.x and beyond of the Azure Functions runtime, you have to explicitly register the extensions for the binding types used in your functions. バインド拡張機能を個別にインストールするか、host.json プロジェクト ファイルに拡張機能のバンドルの参照を追加することができます。You can choose to install binding extensions individually, or you can add an extension bundle reference to the host.json project file. 拡張機能のバンドルは、複数のバインディングの種類を使用するときに、パッケージの互換性の問題を発生する可能性をなくします。Extension bundles removes the chance of having package compatibility issues when using multiple binding types. これはバインド拡張機能を登録するための推奨される方法です。It is the recommended approach for registering binding extensions. また、拡張機能のバンドルにより、.NET Core 2.x SDK をインストールする必要もなくなります。Extension bundles also removes the requirement of installing the .NET Core 2.x SDK.

拡張機能バンドルを使用するUse extension bundles

バインド拡張機能をインストールする最も簡単な方法は、拡張機能のバンドルを有効にすることです。The easiest way to install binding extensions is to enable extension bundles. バンドルを有効にすると、事前定義された一連の拡張機能パッケージが自動的にインストールされます。When you enable bundles, a predefined set of extension packages is automatically installed.

拡張機能のバンドルを有効にするには、host.json ファイルを開き、その内容を次のコードに合わせて更新します。To enable extension bundles, open the host.json file and update its contents to match the following code:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[1.*, 2.0.0)"
    }
}

詳細については、「Azure Functions バインド拡張機能を登録する」を参照してください。To learn more, see Register Azure Functions binding extensions. function.json ファイルへのバインドを追加する前に、host.json に拡張機能のバンドルを追加する必要があります。You should add extension bundles to the host.json before you add bindings to the function.json file.

拡張機能を明示的にインストールするExplicitly install extensions

拡張機能バンドルを使用できない場合、Azure Functions Core Tools をローカルで使用し、プロジェクトで必要とされる特定の拡張機能パッケージをインストールできます。If you aren't able to use extension bundles, you can use Azure Functions Core Tools locally to install the specific extension packages required by your project.

重要

拡張機能バンドルを使用している関数アプリには、拡張機能を明示的にインストールできません。You can't explicitly install extensions in a function app that is using extension bundles. 拡張機能を明示的にインストールする前に、host.jsonextensionBundle セクションを削除します。Remove the extensionBundle section in host.json before explicitly installing extensions.

次の項目では、場合によっては拡張機能の手動インストールが必要になるいくつかの理由を説明します。The following items describe some reasons you might need to install extensions manually:

  • バンドルで利用できない特定のバージョンの拡張機能にアクセスする必要があります。You need to access a specific version of an extension not available in a bundle.
  • バンドルで利用できないカスタム拡張機能にアクセスする必要があります。You need to access a custom extension not available in a bundle.
  • 1 つのバンドルで利用できない特定の組み合わせの拡張機能にアクセスする必要があります。You need to access a specific combination of extensions not available in a single bundle.

注意

Core Tools を使用して拡張機能を手動でインストールするには、.NET Core 2.x SDK がインストールされている必要があります。To manually install extensions by using Core Tools, you must have the .NET Core 2.x SDK installed. .NET Core SDK は NuGet から拡張機能をインストールする目的で Azure Functions Core Tools によって使用されます。The .NET Core SDK is used by Azure Functions Core Tools to install extensions from NuGet. Azure Functions 拡張機能を使用するために .NET の知識は必要ありません。You don't need to know .NET to use Azure Functions extensions.

拡張機能を明示的にインストールすると、extensions.csproj という名前の .NET プロジェクト ファイルがプロジェクトのルートに追加されます。When you explicitly install extensions, a .NET project file named extensions.csproj is added to the root of your project. このファイルによって、関数に必要とされる NuGet パッケージのセットが定義されます。This file defines the set of NuGet packages required by your functions. このファイルで NuGet パッケージ参照を使用することができますが、Core Tools では、ファイルを手動編集しなくても拡張機能をインストールできます。While you can work with the NuGet package references in this file, Core Tools lets you install extensions without having to manually edit the file.

Core Tools を使用し、ローカル プロジェクトで必要な拡張機能をインストールする方法がいくつかあります。There are several ways to use Core Tools to install the required extensions in your local project.

すべての拡張機能をインストールするInstall all extensions

次のコマンドを使用し、ローカル プロジェクトのバインドで使用されるすべての拡張機能パッケージを自動追加します。Use the following command to automatically add all extension packages used by the bindings in your local project:

func extensions install

このコマンドでは、function.json ファイルを読み取って必要なパッケージを確認し、パッケージをインストールして、拡張プロジェクト (extensions.csproj) を再構築します。The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project (extensions.csproj). 現在のバージョンで新しいバインドが追加されますが、既存のバインドは更新されません。It adds any new bindings at the current version but does not update existing bindings. 新しいバージョンをインストールするときに、--force オプションを使用して既存のバインドを最新バージョンに更新します。Use the --force option to update existing bindings to the latest version when installing new ones.

Core Tools で認識されないバインドが関数アプリで使用されている場合、特定の拡張機能を手動インストールする必要があります。If your function app uses bindings that Core Tools does not recognize, you must manually install the specific extension.

特定の拡張機能をインストールするInstall a specific extension

次のコマンドを使用し、特定のバージョンの特定の拡張機能パッケージをインストールします。今回は、Storage 拡張機能です。Use the following command to install a specific extension package at a specific version, in this case the Storage extension:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 4.0.2

ローカル設定ファイルLocal settings file

local.settings.json ファイルには、アプリの設定、接続文字列、およびローカルの開発ツールによって使用される設定が格納されます。The local.settings.json file stores app settings, connection strings, and settings used by local development tools. local.settings.json ファイル内の設定は、プロジェクトをローカルで実行している場合にのみ使用されます。Settings in the local.settings.json file are used only when you're running projects locally. ローカル設定ファイルの構造は次のとおりです。The local settings file has this structure:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "AzureWebJobsDashboard": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>",
    "AzureWebJobs.HttpExample.Disabled": "true"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

これらの設定は、プロジェクトをローカルで実行する場合にサポートされます。These settings are supported when you run projects locally:

設定Setting 説明Description
IsEncrypted この設定を true にすると、すべての値がローカル コンピューターのキーを使用して暗号化されます。When this setting is set to true, all values are encrypted with a local machine key. func settings コマンドと共に使用されます。Used with func settings commands. 既定値は false です。Default value is false. サービス接続文字列など、シークレットが local.settings.json に含まれている場合、それをローカル コンピューター上で暗号化することができます。You might want to encrypt the local.settings.json file on your local computer when it contains secrets, such as service connection strings. 実行時には、ホストが設定の暗号化を自動的に解除します。The host automatically decrypts settings when it runs. ローカルで暗号化された設定の読み取りを試す前に、func settings decrypt コマンドを使用してください。Use the func settings decrypt command before trying to read locally encrypted settings.
Values プロジェクトをローカルで実行するときに使用されるアプリケーション設定と接続文字列の配列です。Array of application settings and connection strings used when a project is running locally. これらのキーと値 (文字列と文字列) のペアは、AzureWebJobsStorage など、Azure 内の関数アプリでのアプリケーション設定に対応します。These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. 多くのトリガーおよびバインドには、BLOB ストレージ トリガーConnection など、接続文字列アプリ設定を参照するプロパティがあります。Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. これらのプロパティでは、Values 配列にアプリケーション設定を定義する必要があります。For these properties, you need an application setting defined in the Values array. よく使用される設定の一覧については、後ろの表を参照してください。See the subsequent table for a list of commonly used settings.
値は、JSON オブジェクトまたは配列ではなく文字列である必要があります。Values must be strings and not JSON objects or arrays. 設定名には、コロン (:)、2 つの連続する下線 (__) を含めることはできません。Setting names can't include a colon (:) or a double underline (__). 二重下線文字はランタイムによって予約されています。また、コロンは依存関係の挿入をサポートするために予約されています。Double underline characters are reserved by the runtime, and the colon is reserved to support dependency injection.
Host このセクションの設定により、ローカルでプロジェクトを実行するときの Functions ホスト プロセスをカスタマイズできます。Settings in this section customize the Functions host process when you run projects locally. これらの設定は、Azure でプロジェクトを実行するときにも適用される、host.json 設定とは別のものです。These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort ローカルの Functions ホストの実行時に使用される既定のポートを設定します (func host startfunc run)。Sets the default port used when running the local Functions host (func host start and func run). --port コマンド ライン オプションは、この設定より優先されます。The --port command-line option takes precedence over this setting.
CORS クロス オリジン リソース共有 (CORS) で許可されるオリジンを定義します。Defines the origins allowed for cross-origin resource sharing (CORS). スペースなしのコンマ区切りのリストでオリジンを指定します。Origins are supplied as a comma-separated list with no spaces. ワイルドカード値 (*) がサポートされており、これによって任意のオリジンからの要求を許可できます。The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials true に設定すると、withCredentials 要求が許可されます。When set to true, allows withCredentials requests.
ConnectionStrings コレクション。A collection. 関数のバインディングで使用される接続文字列にこのコレクションを使用しないでください。Don't use this collection for the connection strings used by your function bindings. このコレクションは、Entity Framework など、構成ファイルの ConnectionStrings セクションから接続文字列を取得するのが一般的なフレームワークでのみ使用されます。This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. このオブジェクト内の接続文字列は、System.Data.SqlClient のプロバイダーの種類と共に、環境に追加されます。Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. 他のアプリ設定では、このコレクション内の項目は Azure に発行されません。Items in this collection aren't published to Azure with other app settings. ご自分の関数アプリの設定の Connection strings コレクションに、これらの値を明示的に追加する必要があります。You must explicitly add these values to the Connection strings collection of your function app settings. 関数コードで SqlConnection を作成する場合は、接続文字列の値を他の接続と共に、ポータル内のアプリケーション設定に格納する必要があります。If you're creating a SqlConnection in your function code, you should store the connection string value with your other connections in Application Settings in the portal.

次のアプリケーション設定は、ローカルでの実行時に Values 配列に含めることができます。The following application settings can be included in the Values array when running locally:

設定Setting Values 説明Description
AzureWebJobsStorage ストレージ アカウント接続文字列、またはStorage account connection string, or
UseDevelopmentStorage=true
Azure ストレージ アカウントの接続文字列を含みます。Contains the connection string for an Azure storage account. HTTP 以外のトリガーを使用する場合には必須です。Required when using triggers other than HTTP. 詳しくは、AzureWebJobsStorage のリファレンスを参照してください。For more information, see the AzureWebJobsStorage reference.
Azure ストレージ エミュレーターがローカルにインストールされ、AzureWebJobsStorageUseDevelopmentStorage=true に設定すると、Core Tools ではエミュレーターが使用されます。When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. エミュレーターは開発中には便利ですが、デプロイする前に実際のストレージに接続してテストする必要があります。The emulator is useful during development, but you should test with an actual storage connection before deployment.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false ローカルで実行しているときに関数を無効にするには、"AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" をコレクションに追加します。<FUNCTION_NAME> は関数の名前です。To disable a function when running locally, add "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" to the collection, where <FUNCTION_NAME> is the name of the function. 詳細については、Azure Functions で関数を無効にする方法に関する記事を参照してください。To learn more, see How to disable functions in Azure Functions
FUNCTIONS_WORKER_RUNTIME dotnet
node
java
powershell
python
Functions ランタイムのターゲット言語を示します。Indicates the targeted language of the Functions runtime. バージョン 2.x 以上の Functions ランタイムで必須です。Required for version 2.x and higher of the Functions runtime. この設定は、お客様のプロジェクト用に Core Tools によって生成されます。This setting is generated for your project by Core Tools. 詳細については、FUNCTIONS_WORKER_RUNTIME のリファレンスを参照してください。To learn more, see the FUNCTIONS_WORKER_RUNTIME reference.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 ローカルでの実行時に使用される PowerShell 7 を示します。Indicates that PowerShell 7 be used when running locally. 設定されていない場合は、PowerShell Core 6 が使用されます。If not set, then PowerShell Core 6 is used. この設定は、ローカルでの実行時にのみ使用されます。This setting is only used when running locally. Azure で実行する場合、PowerShell ランタイムのバージョンは、powerShellVersion サイト構成設定によって決まります。これは、ポータルで設定できます。When running in Azure, the PowerShell runtime version is determined by the powerShellVersion site configuration setting, which can be set in the portal.

既定では、プロジェクトが Azure に発行されても、これらの設定は自動的に移行されません。By default, these settings are not migrated automatically when the project is published to Azure. 発行する際--publish-local-settings スイッチを使用して、これらの設定が Azure 内の関数アプリに追加されていることを確認してください。Use the --publish-local-settings switch when you publish to make sure these settings are added to the function app in Azure. ConnectionStrings 内の値は発行されないことに注意してください。Note that values in ConnectionStrings are never published.

関数アプリの設定値は、コードの中で環境変数として読み込むこともできます。The function app settings values can also be read in your code as environment variables. 詳細については、以下の言語固有のリファレンス トピックの「環境変数」のセクションを参照してください。For more information, see the Environment variables section of these language-specific reference topics:

有効なストレージ接続文字列が AzureWebJobsStorage に設定されていなく、エミュレーターが使用されていない場合は、次のエラー メッセージが表示されます。When no valid storage connection string is set for AzureWebJobsStorage and the emulator isn't being used, the following error message is shown:

local.settings.json に AzureWebJobsStorage の値がありません。Missing value for AzureWebJobsStorage in local.settings.json. これは HTTP 以外のすべてのトリガーに必要です。This is required for all triggers other than HTTP. "func azure functionapp fetch-app-settings <functionAppName>" を実行するか、local.settings.json で接続文字列を指定することができます。You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.

ストレージ接続文字列の取得Get your storage connection strings

開発のために Microsoft Azure ストレージ エミュレーターを使用している場合であっても、実際のストレージに接続してテストすることができます。Even when using the Microsoft Azure Storage Emulator for development, you may want to test with an actual storage connection. ストレージ アカウントを作成済みである場合は、次の方法のいずれかで、有効なストレージ接続文字列を取得できます。Assuming you have already created a storage account, you can get a valid storage connection string in one of the following ways:

  • Azure portal から、 [ストレージ アカウント] を検索して選択します。From the Azure portal, search for and select Storage accounts. Azure portal で [ストレージ アカウント] を選択するSelect Storage accounts from Azure portal

    使用するストレージ アカウントを選択し、 [設定][アクセス キー] を選択してから、 [接続文字列] の値のいずれかをコピーします。Select your storage account, select Access keys in Settings, then copy one of the Connection string values. Azure portal から接続文字列をコピーするCopy connection string from Azure portal

  • Azure Storage Explorer を使用して、Azure アカウントに接続します。Use Azure Storage Explorer to connect to your Azure account. Explorer でサブスクリプションを展開し、 [ストレージ アカウント] を展開し、ストレージ アカウントを選択して、プライマリまたはセカンダリの接続文字列をコピーします。In the Explorer, expand your subscription, expand Storage Accounts, select your storage account, and copy the primary or secondary connection string.

    Storage Explorer から接続文字列をコピーする

  • プロジェクトのルートから Core Tools を使用して、次のいずれかのコマンドで Azure から接続文字列をダウンロードします。Use Core Tools from the project root to download the connection string from Azure with one of the following commands:

    • 既存の関数アプリからすべての設定をダウンロードします。Download all settings from an existing function app:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • 特定のストレージ アカウントの接続文字列を取得します。Get the Connection string for a specific storage account:

      func azure storage fetch-connection-string <StorageAccountName>
      

      Azure にまだサインインしていない場合は、それを求めるメッセージが表示されます。When you aren't already signed in to Azure, you're prompted to do so. これらのコマンドは、local.settings.json ファイル内のすべての既存の設定を上書きします。These commands overwrite any existing settings in the local.settings.json file.

関数を作成するCreate a function

関数を作成するには、次のコマンドを実行します。To create a function, run the following command:

func new

バージョン 3.x/2.x では、func new を実行したときに関数アプリの既定の言語のテンプレートを選択するように求められ、次に関数の名前を選択するように求められます。In version 3.x/2.x, when you run func new you are prompted to choose a template in the default language of your function app, then you are also prompted to choose a name for your function. バージョン 1.x では、さらに言語を選択するように求められます。In version 1.x, you are also prompted to choose the language.

Select a language: Select a template:
Blob trigger
Cosmos DB trigger
Event Grid trigger
HTTP trigger
Queue trigger
SendGrid
Service Bus Queue trigger
Service Bus Topic trigger
Timer trigger

次のキュー トリガーの出力に示すように、指定した関数名のサブフォルダーに関数のコードが生成されます。Function code is generated in a subfolder with the provided function name, as you can see in the following queue trigger output:

Select a language: Select a template: Queue trigger
Function name: [QueueTriggerJS] MyQueueTrigger
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\index.js
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\readme.md
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\sample.dat
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\function.json

次の引数を使用して、コマンドでこれらのオプションを指定することもできます。You can also specify these options in the command using the following arguments:

引数Argument 説明Description
--csx (バージョン 2.x 以降のバージョン。)バージョン 1.x およびポータルで使用されるものと同じ C# スクリプト (.csx) テンプレートを生成します。(Version 2.x and later versions.) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--language, -l--language, -l テンプレート プログラミング言語。C#、F#、JavaScript など。The template programming language, such as C#, F#, or JavaScript. このオプションは、バージョン 1.x で必須です。This option is required in version 1.x. バージョン 2.x 以降のバージョンでは、このオプションを使用しないか、または worker ランタイムと一致する言語を選択してください。In version 2.x and later versions, do not use this option or choose a language that matches the worker runtime.
--name, -n--name, -n 関数名。The function name.
--template, -t--template, -t サポートされている各言語で使用可能なテンプレートの完全な一覧を表示するには、func templates list コマンドを使います。Use the func templates list command to see the complete list of available templates for each supported language.

たとえば、JavaScript HTTP トリガーを 1 つのコマンドで作成するには、次を実行します。For example, to create a JavaScript HTTP trigger in a single command, run:

func new --template "Http Trigger" --name MyHttpTrigger

キューによってトリガーされる関数を 1 つのコマンドで作成するには、次を実行します。To create a queue-triggered function in a single command, run:

func new --template "Queue Trigger" --name QueueTriggerJS

関数をローカルで実行するRun functions locally

Functions プロジェクトを実行するには、Functions ホストを実行します。To run a Functions project, run the Functions host. ホストによって、プロジェクトのすべての関数に対するトリガーが有効になります。The host enables triggers for all functions in the project. 起動コマンドは、使用するプロジェクトの言語によって異なります。The start command varies, depending on your project language.

func start --build

注意

Functions ランタイムのバージョン 1.x では、次の例のように host コマンドが必要です。Version 1.x of the Functions runtime requires the host command, as in the following example:

func host start

func start では、次のオプションがサポートされています。func start supports the following options:

オプションOption 説明Description
--no-build 実行前に現在のプロジェクトをビルドしません。Do no build current project before running. dotnet プロジェクトの場合のみ。For dotnet projects only. 既定値は false に設定されます。Default is set to false. バージョン 1.x はサポートされません。Not supported for version 1.x.
--cors-credentials クロスオリジン認証済み要求 (つまり、Cookie と Authentication ヘッダー) バージョン 1.x はサポートされません。Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Not supported for version 1.x.
--cors CORS オリジンのコンマ区切りのリスト (スペースなし)。A comma-separated list of CORS origins, with no spaces.
--language-worker 言語ワーカーを構成するための引数。Arguments to configure the language worker. たとえば、デバッグ ポートとその他の必要な引数を指定して、言語ワーカーのデバッグを有効にすることができます。For example, you may enable debugging for language worker by providing debug port and other required arguments. バージョン 1.x はサポートされません。Not supported for version 1.x.
--cert 秘密キーが含まれる .pfx ファイルへのパス。The path to a .pfx file that contains a private key. --useHttps でのみ使用されます。Only used with --useHttps. バージョン 1.x はサポートされません。Not supported for version 1.x.
--password .pfx ファイルのパスワードまたはパスワードが格納されているファイルのいずれか。Either the password or a file that contains the password for a .pfx file. --cert でのみ使用されます。Only used with --cert. バージョン 1.x はサポートされません。Not supported for version 1.x.
--port, -p--port, -p ローカル ポート。このポートでリッスンします。The local port to listen on. 既定値:7071。Default value: 7071.
--pause-on-error プロセスを終了する前に、追加入力を一時停止します。Pause for additional input before exiting the process. 統合開発環境 (IDE) から Core Tools を起動した場合にのみ使用されます。Used only when launching Core Tools from an integrated development environment (IDE).
--script-root, --prefix--script-root, --prefix 実行または展開される関数アプリのルートへのパスを指定するために使用されます。Used to specify the path to the root of the function app that is to be run or deployed. これは、サブフォルダーにプロジェクト ファイルを生成するコンパイル済みプロジェクトに使用されます。This is used for compiled projects that generate project files into a subfolder. たとえば、C# クラス ライブラリ プロジェクトをビルドすると、host.json、local.settings.json、および function.json ファイルが、MyProject/bin/Debug/netstandard2.0 のようなパスの "ルート" サブフォルダーに生成されます。For example, when you build a C# class library project, the host.json, local.settings.json, and function.json files are generated in a root subfolder with a path like MyProject/bin/Debug/netstandard2.0. この場合は、プレフィックスを --script-root MyProject/bin/Debug/netstandard2.0 と設定します。In this case, set the prefix as --script-root MyProject/bin/Debug/netstandard2.0. これは、Azure で実行する場合の関数アプリのルートです。This is the root of the function app when running in Azure.
--timeout, -t--timeout, -t Functions ホスト開始のタイムアウト (秒単位)。The timeout for the Functions host to start, in seconds. 既定値は20 秒。Default: 20 seconds.
--useHttps http://localhost:{port} ではなく https://localhost:{port} にバインドします。Bind to https://localhost:{port} rather than to http://localhost:{port}. 既定では、このオプションにより、信頼された証明書がコンピューターに作成されます。By default, this option creates a trusted certificate on your computer.

Functions ホストの起動時、HTTP によってトリガーされる関数の URL が出力されます。When the Functions host starts, it outputs the URL of HTTP-triggered functions:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

重要

ローカルで実行される場合、HTTP エンドポイントに対して承認は適用されません。When running locally, authorization isn't enforced for HTTP endpoints. つまり、ローカルの HTTP 要求はすべて、authLevel = "anonymous" として処理されます。This means that all local HTTP requests are handled as authLevel = "anonymous". 詳細については、HTTP バインディングに関する記事を参照してください。For more information, see the HTTP binding article.

関数へのテスト データの受け渡しPassing test data to a function

関数をローカルでテストするには、Functions ホストを起動し、HTTP 要求を使用してローカル サーバーでエンドポイントを呼び出します。To test your functions locally, you start the Functions host and call endpoints on the local server using HTTP requests. 呼び出すエンドポイントは、関数の種類によって異なります。The endpoint you call depends on the type of function.

注意

このトピックの例では、cURL ツールを使用して端末またはコマンド プロンプトから HTTP 要求を送信します。Examples in this topic use the cURL tool to send HTTP requests from the terminal or a command prompt. お好みのツールを使用して HTTP 要求をローカル サーバーに送信できます。You can use a tool of your choice to send HTTP requests to the local server. Linux ベースのシステムと Windows 10 ビルド 17063 以降では既定で cURL ツールを使用できます。The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. 以前の Windows では、最初に cURL ツールをダウンロードし、インストールする必要があります。On older Windows, you must first download and install the cURL tool.

関数のテストの全般的な情報については、「Azure Functions のコードをテストするための戦略」を参照してください。For more general information on testing functions, see Strategies for testing your code in Azure Functions.

HTTP と webhook でトリガーされる関数HTTP and webhook triggered functions

次のエンドポイントを呼び出して、HTTP と webhook でトリガーされる関数をローカルで実行できます。You call the following endpoint to locally run HTTP and webhook triggered functions:

http://localhost:{port}/api/{function_name}

Functions ホストがリッスンしているのと同じサーバー名とポートを使用していることを確認してください。Make sure to use the same server name and port that the Functions host is listening on. これは、Functions ホストの起動時に生成される出力で確認できます。You see this in the output generated when starting the Function host. トリガーでサポートされている任意の HTTP メソッドを使用して、この URL を呼び出すことができます。You can call this URL using any HTTP method supported by the trigger.

次の cURL コマンドは、MyHttpTrigger クイックスタート関数を、クエリ文字列で渡された name パラメーターを使用して、GET 要求からトリガーします。The following cURL command triggers the MyHttpTrigger quickstart function from a GET request with the name parameter passed in the query string.

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

次の例は、要求本文で name を渡す POST 要求から呼び出される同じ関数です。The following example is the same function called from a POST request passing name in the request body:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'

ブラウザーから GET 要求を行ってクエリ文字列でデータを渡すことが可能です。You can make GET requests from a browser passing data in the query string. その他すべての HTTP メソッドについては、cURL、Fiddler、Postman、または類似の HTTP テスト ツールを使用する必要があります。For all other HTTP methods, you must use cURL, Fiddler, Postman, or a similar HTTP testing tool.

HTTP でトリガーされない関数Non-HTTP triggered functions

HTTP トリガー、Webhook トリガー、Event Grid トリガーを除く、あらゆる種類の関数の場合、管理エンドポイントを呼び出すことによって、関数をローカルでテストできます。For all kinds of functions other than HTTP triggers and webhooks and Event Grid triggers, you can test your functions locally by calling an administration endpoint. HTTP POST 要求を使ってローカル サーバーでこのエンドポイントを呼び出すと、関数がトリガーされます。Calling this endpoint with an HTTP POST request on the local server triggers the function.

Event Grid でトリガーされた関数をローカルでテストする方法については、「ビューアー Web アプリでのローカル テスト」を参照してください。To test Event Grid triggered functions locally, see Local testing with viewer web app.

必要に応じて、POST 要求の本体でテスト データを実行に渡すことができます。You can optionally pass test data to the execution in the body of the POST request. この機能は、Azure Portal の [テスト] タブに似ています。This functionality is similar to the Test tab in the Azure portal.

次の管理者エンドポイントを呼び出して、非 HTTP 関数をトリガーします。You call the following administrator endpoint to trigger non-HTTP functions:

http://localhost:{port}/admin/functions/{function_name}

テスト データを関数の管理者エンドポイントに渡すには、そのデータを POST 要求メッセージの本文で提供する必要があります。To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. メッセージ本文は、次の JSON 形式にする必要があります。The message body is required to have the following JSON format:

{
    "input": "<trigger_input>"
}

<trigger_input> 値には、関数が必要とする形式でデータが含まれています。The <trigger_input> value contains data in a format expected by the function. 次の cURL の例は、QueueTriggerJS 関数に対する POST です。The following cURL example is a POST to a QueueTriggerJS function. この場合、入力は、キューにあることが期待されるメッセージに相当する文字列です。In this case, the input is a string that is equivalent to the message expected to be found in the queue.

curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTrigger

func run コマンドの使用 (バージョン 1.x のみ)Using the func run command (version 1.x only)

重要

func run コマンドは、ツールのバージョン 1.x でのみサポートされます。The func run command is only supported in version 1.x of the tools. 詳細については、「Azure Functions ランタイム バージョンをターゲットにする方法」を参照してください。For more information, see the topic How to target Azure Functions runtime versions.

バージョン 1.x では、func run <FunctionName> を使用して関数を直接呼び出し、関数の入力データを渡すこともできます。In version 1.x, you can also invoke a function directly by using func run <FunctionName> and provide input data for the function. このコマンドは、Azure Portal の [テスト] タブを使用して関数を実行するのと似ています。This command is similar to running a function using the Test tab in the Azure portal.

func run では、次のオプションがサポートされています。func run supports the following options:

オプションOption 説明Description
--content, -c--content, -c インライン コンテンツ。Inline content.
--debug, -d--debug, -d 関数を実行する前に、デバッガーを、ホスト プロセスにアタッチします。Attach a debugger to the host process before running the function.
--timeout, -t--timeout, -t Functions ホストの準備が完了するまでの待機時間 (秒単位)。Time to wait (in seconds) until the local Functions host is ready.
--file, -f--file, -f コンテンツとして使用するファイル名。The file name to use as content.
--no-interactive 入力を促しません。Does not prompt for input. 自動シナリオで便利です。Useful for automation scenarios.

たとえば、HTTP によってトリガーされる関数を呼び出して、コンテンツ本文を渡すには、次のコマンドを実行します。For example, to call an HTTP-triggered function and pass content body, run the following command:

func run MyHttpTrigger -c '{\"name\": \"Azure\"}'

Azure に発行するPublish to Azure

Azure Functions Core Tools でサポートされている 2 種類のデプロイは、Zip デプロイによる関数アプリへの関数プロジェクト ファイルの直接的なデプロイと、カスタム Docker コンテナーのデプロイです。The Azure Functions Core Tools supports two types of deployment: deploying function project files directly to your function app via Zip Deploy and deploying a custom Docker container. コードをデプロイする Azure サブスクリプションで関数アプリを作成しておく必要があります。You must have already created a function app in your Azure subscription, to which you'll deploy your code. コンパイルを必要とするプロジェクトは、バイナリをデプロイできるように、ビルドする必要があります。Projects that require compilation should be built so that the binaries can be deployed.

重要

Core Tools から Azure に発行できるようにするには、Azure CLI がローカルにインストールされている必要があります。You must have the Azure CLI installed locally to be able to publish to Azure from Core Tools.

プロジェクト フォルダーには、発行するべきではない言語固有のファイルやディレクトリが含まれている場合があります。A project folder may contain language-specific files and directories that shouldn't be published. 除外された項目は、ルート プロジェクト フォルダーの .funcignore ファイルにリストされます。Excluded items are listed in a .funcignore file in the root project folder.

プロジェクト ファイルのデプロイDeploy project files

Azure で ローカル コードを関数アプリに発行するには、publish コマンドを使用します。To publish your local code to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

重要

Java では、Maven を使用して、ローカル プロジェクトが Azure に発行されます。Java uses Maven to publish your local project to Azure. コマンド mvn azure-functions:deploy を実行して、Azure に発行します。Use the following command to publish to Azure: mvn azure-functions:deploy. Azure リソースは、初期デプロイ中に作成されます。Azure resources are created during initial deployment.

このコマンドにより、Azure の既存の関数アプリに公開されます。This command publishes to an existing function app in Azure. サブスクリプションに存在しない <FunctionAppName> に発行しようとすると、エラーが表示されます。You'll get an error if you try to publish to a <FunctionAppName> that doesn't exist in your subscription. Azure CLI を使用してコマンド プロンプトまたはターミナル ウィンドウから関数アプリを作成する方法については、「サーバーレス実行用の Function App を作成する」を参照してください。To learn how to create a function app from the command prompt or terminal window using the Azure CLI, see Create a Function App for serverless execution. 既定では、このコマンドではリモート ビルドが使用され、アプリがデプロイされて、デプロイ パッケージから実行されます。By default, this command uses remote build and deploys your app to run from the deployment package. この推奨されるデプロイ モードを無効にするには、--nozip オプションを使用します。To disable this recommended deployment mode, use the --nozip option.

重要

Azure portal で関数アプリを作成すると、既定でバージョン 3.x の Function ランタイムが使用されます。When you create a function app in the Azure portal, it uses version 3.x of the Function runtime by default. 関数アプリにバージョン 1.x のランタイムを使用させるには、バージョン 1.x での実行に関するページの説明に従ってください。To make the function app use version 1.x of the runtime, follow the instructions in Run on version 1.x. 既存の関数がある関数アプリのランタイム バージョンを変更することはできません。You can't change the runtime version for a function app that has existing functions.

次の発行オプションは、次のすべてのバージョンに適用されます。The following publish options apply for all versions:

オプションOption 説明Description
--publish-local-settings -i local.settings.json の設定を Azure に発行し、設定が既に存在する場合は上書きを促します。Publish settings in local.settings.json to Azure, prompting to overwrite if the setting already exists. Microsoft Azure ストレージ エミュレーターを使用している場合は、まずアプリ設定を実際のストレージ接続に変更します。If you are using the Microsoft Azure Storage Emulator, first change the app setting to an actual storage connection.
--overwrite-settings -y --publish-local-settings -i を使用するときに、アプリの設定を上書きするプロンプトを抑制します。Suppress the prompt to overwrite app settings when --publish-local-settings -i is used.

次の発行オプションは、バージョン 2.x 以降のバージョンでのみサポートされています。The following publish options are supported only for version 2.x and later versions:

オプションOption 説明Description
--publish-settings-only, -o--publish-settings-only, -o 設定のみを発行し、コンテンツをスキップします。Only publish settings and skip the content. 既定値は prompt です。Default is prompt.
--list-ignored-files 発行時に無視されるファイルの一覧を表示します。これは、.funcignore ファイルに基づきます。Displays a list of files that are ignored during publishing, which is based on the .funcignore file.
--list-included-files 発行されるファイルの一覧を表示します。これは、.funcignore ファイルに基づきます。Displays a list of files that are published, which is based on the .funcignore file.
--nozip 既定の Run-From-Package モードをオフにします。Turns the default Run-From-Package mode off.
--build-native-deps Python 関数アプリを発行するときに、.wheels フォルダーの生成をスキップします。Skips generating .wheels folder when publishing Python function apps.
--build, -b--build, -b Linux 関数アプリにデプロイするときにビルド アクションを実行します。Performs build action when deploying to a Linux function app. remote および local を受け入れます。Accepts: remote and local.
--additional-packages ネイティブの依存関係を構築するときにインストールするパッケージの一覧List of packages to install when building native dependencies. (例: python3-dev libevent-dev)。For example: python3-dev libevent-dev.
--force 特定のシナリオで発行前の検証を無視します。Ignore pre-publishing verification in certain scenarios.
--csx C# スクリプト (.csx) プロジェクトを発行します。Publish a C# script (.csx) project.
--no-build プロジェクトは発行中にはビルドされません。Project isn't built during publishing. Python の場合、pip install は実行されません。For Python, pip install isn't performed.
--dotnet-cli-params コンパイル済み C# (.csproj) 関数を発行するとき、Core Tools は "dotnet build --output bin/publish" を呼び出します。When publishing compiled C# (.csproj) functions, the core tools calls 'dotnet build --output bin/publish'. これに渡されるすべてのパラメーターは、コマンド ラインに追加されます。Any parameters passed to this will be appended to the command line.

カスタム コンテナーのデプロイDeploy custom container

Azure Functions を使用すると、カスタム Docker コンテナーに関数プロジェクトをデプロイできます。Azure Functions lets you deploy your function project in a custom Docker container. 詳しくは、「カスタム イメージを使用して Linux で関数を作成する」をご覧ください。For more information, see Create a function on Linux using a custom image. カスタム コンテナーには、Dockerfile が必要です。Custom containers must have a Dockerfile. Dockerfile でアプリを作成するには、func init で --dockerfile オプションを使用します。To create an app with a Dockerfile, use the --dockerfile option on func init.

func deploy

次のカスタム コンテナー デプロイ オプションを使用できます。The following custom container deployment options are available:

オプションOption 説明Description
--registry 現在のユーザーがサインインしている Docker レジストリの名前。The name of a Docker Registry the current user signed-in to.
--platform 関数アプリのホスティング プラットフォーム。Hosting platform for the function app. 有効なオプションは kubernetes です。Valid options are kubernetes
--name 関数アプリの名前。Function app name.
--max 必要に応じて、デプロイする関数アプリ インスタンスの最大数を設定します。Optionally, sets the maximum number of function app instances to deploy to.
--min 必要に応じて、デプロイする関数アプリ インスタンスの最小数を設定します。Optionally, sets the minimum number of function app instances to deploy to.
--config オプションのデプロイ構成ファイルを設定します。Sets an optional deployment configuration file.

関数の監視Monitoring functions

関数の実行を監視するための推奨される方法は、Azure Application Insights との統合です。The recommended way to monitor the execution of your functions is by integrating with Azure Application Insights. また、ローカル コンピューターに実行ログをストリーミングすることもできます。You can also stream execution logs to your local computer. 詳細については、「Azure Functions を監視する」を参照してください。To learn more, see Monitor Azure Functions.

Application Insights の統合Application Insights integration

Azure で関数アプリを作成するときに Application Insights の統合を有効にする必要があります。Application Insights integration should be enabled when you create your function app in Azure. 何らかの理由で関数アプリが Application Insights インスタンスに接続されていない場合は、Azure portal でこの統合を簡単に行うことができます。If for some reason your function app isn't connected to an Application Insights instance, it's easy to do this integration in the Azure portal.

Azure Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. In the Azure portal, search for and select function app, and then choose your function app.

  2. Select the Application Insights is not configured banner at the top of the window. If you don't see this banner, then your app might already have Application Insights enabled.

    Enable Application Insights from the portal

  3. Expand Change your resource and create an Application Insights resource by using the settings specified in the following table.

    Setting Suggested value Description
    New resource name Unique app name It's easiest to use the same name as your function app, which must be unique in your subscription.
    Location West Europe If possible, use the same region as your function app, or one that's close to that region.

    Create an Application Insights resource

  4. Select Apply.

    The Application Insights resource is created in the same resource group and subscription as your function app. After the resource is created, close the Application Insights window.

  5. In your function app, select Configuration under Settings, and then select Application settings. If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

ストリーミング ログを有効にするEnable streaming logs

関数によって生成されているログ ファイルのストリームは、ローカル コンピューター上のコマンド ライン セッションで表示できます。You can view a stream of log files being generated by your functions in a command-line session on your local computer.

ネイティブ ストリーミング ログNative streaming logs

組み込みのログ ストリーミングBuilt-in log streaming

次の例のように、logstream オプションを使用して、Azure 内で実行されている特定の関数アプリのストリーミング ログの受信を開始します。Use the logstream option to start receiving streaming logs of a specific function app running in Azure, as in the following example:

func azure functionapp logstream <FunctionAppName>

注意

従量課金プランの場合、組み込みのログ ストリーミングは、Linux で実行されている関数アプリの Core Tools でまだ有効になっていません。Built-in log streaming isn't yet enabled in Core Tools for function apps running on Linux in a Consumption plan. これらのホスティング プランでは、代わりに Live Metrics Stream を使用してログをほぼリアルタイムで表示する必要があります。For these hosting plans, you instead need to use Live Metrics Stream to view the logs in near-real time.

ライブ メトリック ストリームLive Metrics Stream

次の例に示すように、--browser オプションを含めることで、関数アプリの Live Metrics Stream を新しいブラウザー ウィンドウで表示できます。You can view the Live Metrics Stream for your function app in a new browser window by including the --browser option, as in the following example:

func azure functionapp logstream <FunctionAppName> --browser

この種類のストリーミング ログを使用するには、関数アプリの Application Insights との統合を有効にする必要があります。This type of streaming logs requires that Application Insights integration be enabled for your function app.

次のステップNext steps

Azure Functions Core Tools Microsoft 学習モジュール を使用して Azure Functions を開発、テスト、および発行する方法について説明します。Azure Functions Core Tools はオープンソースであり、GitHub でホストされています。Learn how to develop, test, and publish Azure Functions by using Azure Functions Core Tools Microsoft learn module Azure Functions Core Tools is open source and hosted on GitHub.
バグまたは機能要求を提出するには、GitHub の問題をオープンしてください。To file a bug or feature request, open a GitHub issue.