Azure Functions をローカルでコーディングしてテストするCode and test Azure Functions locally

Azure Portal では Azure Functions の開発用およびテスト用ツールの完全なセットが提供されていますが、多くの開発者はローカルでの開発を選択します。While the Azure portal provides a full set of tools for developing and testing Azure Functions, many developers prefer a local development experience. Azure Functions では、お気に入りのコード エディターとローカル開発ツールを使用して、ローカル コンピューターで簡単に関数を開発し、テストできます。Azure Functions makes it easy to use your favorite code editor and local development tools to develop and test your functions on your local computer. 独自の関数を使用して Azure でイベントをトリガーし、ローカル コンピューターで C# 関数や JavaScript 関数をデバッグできます。Your functions can trigger on events in Azure, and you can debug your C# and JavaScript functions on your local computer.

Visual Studio C# の開発者は、Azure Functions を Visual Studio 2017 に統合することもできます。If you are a Visual Studio C# developer, Azure Functions also integrates with Visual Studio 2017.

重要

同じ関数アプリにローカル開発とポータル開発を混在させないでください。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.

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

Azure Functions Core Tools は、ローカル バージョンの Azure Functions ランタイムで、ローカルの開発コンピューターで実行できます。Azure Functions Core Tools is a local version of the Azure Functions runtime that you can run on your local development computer. エミュレーターまたはシミュレーターではありません。It's not an emulator or simulator. Azure で Functions を実行するランタイムと同じです。It's the same runtime that powers Functions in Azure. Azure Functions Core Tools には、次の 2 つのバージョンがあります。There are two versions of Azure Functions Core Tools:

  • バージョン 1.x: ランタイムのバージョン 1.x をサポートします。Version 1.x: supports version 1.x of the runtime. このバージョンは Windows コンピューター上でのみサポートされ、npm パッケージからインストールされます。This version is only supported on Windows computers and is installed from an npm package.
  • バージョン 2.x: ランタイムのバージョン 2.x をサポートします。Version 2.x: supports version 2.x of the runtime. このバージョンは、WindowsmacOS、および Linux に対応しています。This version supports Windows, macOS, and Linux. インストールには、プラットフォーム固有のパッケージ マネージャーまたは npm を使用します。Uses platform-specific package managers or npm for installation.

バージョン 1.xVersion 1.x

元のバージョンのツールは、Functions 1.x ランタイムを使用します。The original version of the tools uses the Functions 1.x runtime. このバージョンは .NET Framework (4.7.1) を使用し、Windows コンピューターでのみサポートされます。This version uses the .NET Framework (4.7.1) and is only supported on Windows computers. バージョン 1.x のツールをインストールする前に、npm を含む NodeJS をインストールする必要があります。Before you install the version 1.x tools, you must install NodeJS, which includes npm.

次のコマンドを使用して、バージョン 1.x ツールをインストールします。Use the following command to install the version 1.x tools:

npm install -g azure-functions-core-tools

バージョン 2.xVersion 2.x

注意

Azure Functions ランタイム 2.0 はプレビュー段階であり、現在のところ、Azure Functions のすべての機能はサポートされていません。Azure Functions runtime 2.0 is in preview, and currently not all features of Azure Functions are supported. 詳細については、Azure Functions のバージョンに関するページを参照してください。For more information, see Azure Functions versions

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

WindowsWindows

次の手順では、npm を使用して Windows 上に Core Tools をインストールします。The following steps use npm to install Core Tools on Windows. また、Chocolatey を使用することもできます。You can also use Chocolatey. 詳細については、Core Tools の readme に関するページを参照してください。For more information, see the Core Tools readme.

  1. Windows 用 .NET Core 2.0 をインストールします。Install .NET Core 2.0 for Windows.

  2. Node.jsをインストールします。これには、npm が同梱されています。Install Node.js, which includes npm. 2x バージョンのツールの場合、Node.js 8.5 以降のバージョンのみがサポートされています。For version 2.x of the tools, only Node.js 8.5 and later versions are supported.

  3. 次のコマンドを使って、Core Tools のパッケージをインストールします。Install the Core Tools package:

    npm install -g azure-functions-core-tools@core
    

Homebrew による MacOSMacOS with Homebrew

次の手順では、Homebrew を使用して macOS 上に Core Tools をインストールします。The following steps use Homebrew to install the Core Tools on macOS.

  1. macOS 用 .NET Core 2.0 をインストールします。Install .NET Core 2.0 for macOS.

  2. まだインストールしていない場合は、Homebrew をインストールします。Install Homebrew, if it's not already installed.

  3. 次のコマンドを使って、Core Tools のパッケージをインストールします。Install the Core Tools package:

    brew tap azure/functions
    brew install azure-functions-core-tools 
    

APT による Linux (Ubuntu/Debian)Linux (Ubuntu/Debian) with APT

次の手順では APT を使用して、Ubuntu/Debian Linux ディストリビューションに Core Tools をインストールします。The following steps use APT to install Core Tools on your Ubuntu/Debian Linux distribution. 他の Linux ディストリビューションについては、Core Tools の readme に関するページを参照してください。For other Linux distributions, see the Core Tools readme.

  1. Linux 用 .NET Core 2.0 をインストールします。Install .NET Core 2.0 for Linux.

  2. 次のコマンドを使って、Microsoft プロダクト キーを信頼済みとして登録します。Register the Microsoft product key as trusted:

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    
  3. 次のコマンドの <version> を以下の表の適切なバージョン名に変更して、パッケージ フィードを設定します。Set up the package feed, replacing <version> in the following command with the appropriate version name from the table:

    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-<version>-prod <version> main" > /etc/apt/sources.list.d/dotnetdev.list'
    sudo apt-get update
    
    Linux ディストリビューションLinux distribution <version>
    Ubuntu 17.10Ubuntu 17.10 artful
    Ubuntu 17.04Ubuntu 17.04 zesty
    Ubuntu 16.04/Linux Mint 18Ubuntu 16.04/Linux Mint 18 xenial
  4. 次のコマンドを使って、Core Tools のパッケージをインストールします。Install the Core Tools package:

    sudo apt-get install azure-functions-core-tools
    

Azure Functions Core Tools の実行Run Azure Functions Core Tools

Azure Functions Core Tools で追加されるコマンドのエイリアスを次に示します。Azure Functions Core Tools adds the following command aliases:

  • funcfunc
  • azfunazfun
  • azurefunctionsazurefunctions

これらすべてのエイリアスは、func が例に示されている場所で使用できます。Any of these aliases can be used where func is shown in the examples.

func init MyFunctionProj

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

ローカルで実行中の場合、Functions プロジェクトは、host.json ファイルと local.settings.json ファイルが含まれるディレクトリです。When running locally, a Functions project is a directory that has the files host.json and local.settings.json. このディレクトリは、Azure の関数アプリに相当します。This directory is the equivalent of a function app in Azure. Azure Functions のフォルダー構造の詳細については、Azure Functions の開発者向けガイドを参照してください。To learn more about the Azure Functions folder structure, see the Azure Functions developers guide.

ターミナル ウィンドウまたはコマンド プロンプトで、次のコマンドを実行してプロジェクトおよびローカルの 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

出力は次のテキストのようになります。The output looks like the following example:

Writing .gitignore
Writing host.json
Writing local.settings.json
Created launch.json
Initialized empty Git repository in D:/Code/Playground/MyFunctionProj/.git/

ローカル Git リポジトリを使用せずにプロジェクトを作成する場合は、--no-source-control [-n] オプションを使用します。To create the project without a local Git repository, use the --no-source-control [-n] option.

拡張機能を登録するRegister extensions

Azure Functions ランタイムのバージョン 2.x では、関数アプリで使用するバインディング拡張機能を明示的に登録する必要があります。In version 2.x of the Azure Functions runtime, you must explicitly register the binding extensions that you use in your function app.

ローカルで関数を開発するときは、ターミナルまたはコマンド プロンプトから Azure Functions Core Tools を使って、必要な拡張機能をインストールできます。When you develop functions locally, you can install the extensions you need by using the Azure Functions Core Tools from the Terminal or from a command prompt. 次の func extensions install コマンドは、Azure Cosmos DB バインド拡張機能をインストールします。The following func extensions install command installs the Azure Cosmos DB binding extension:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.CosmosDB --version <target_version>

<taget_version> をパッケージの特定のバージョンに置き換えます。Replace <taget_version> with a specific version of the package. 有効なバージョンは、NuGet.org の個々のパッケージ ページに記載されています。Valid versions are listed on the individual package pages at NuGet.org.

詳しくは、「Azure Functions でのトリガーとバインドの概念」をご覧ください。For more information, see Azure Functions triggers and bindings concepts.

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

local.settings.json ファイルには、アプリの設定、接続文字列、および Azure Functions Core Tools の設定が格納されます。The file local.settings.json stores app settings, connection strings, and settings for Azure Functions Core Tools. その構造を次に示します。It has the following structure:

{
  "IsEncrypted": false,   
  "Values": {
    "AzureWebJobsStorage": "<connection string>", 
    "AzureWebJobsDashboard": "<connection string>" 
  },
  "Host": {
    "LocalHttpPort": 7071, 
    "CORS": "*" 
  },
  "ConnectionStrings": {
    "SQLConnectionString": "Value"
  }
}
SettingSetting [説明]Description
IsEncryptedIsEncrypted true に設定すると、すべての値がローカル コンピューターのキーを使用して暗号化されます。When set to true, all values are encrypted using a local machine key. func settings コマンドと共に使用されます。Used with func settings commands. 既定値は false です。Default value is false.
ValuesValues ローカルで実行するときに使用されるアプリケーション設定のコレクションです。Collection of application settings used when running locally. AzureWebJobsStorageAzureWebJobsDashboard は例です。完全な一覧については、アプリの設定リファレンスに関するページを参照してください。AzureWebJobsStorage and AzureWebJobsDashboard are examples; for a complete list, see app settings reference. 多くのトリガーおよびバインドには、BLOB Storage トリガーの Connection など、アプリ設定を参照するプロパティがあります。Many triggers and bindings have a property that refers to an app setting, such as Connection for the Blob storage trigger. このようなプロパティでは、Values 配列にアプリケーション設定を定義する必要があります。For such properties, you need an application setting defined in the Values array. また、このことは、%AppSettingName% のようにパーセント記号で値をラッピングしてアプリ設定名に設定される、任意のバインド プロパティにも該当します。This also applies to any binding property that you set to an app setting name by wrapping the value in percent signs, for example %AppSettingName%.
HostHost このセクションの設定により、ローカルで実行時の Functions ホスト プロセスをカスタマイズできます。Settings in this section customize the Functions host process when running locally.
LocalHttpPortLocalHttpPort ローカルの 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 value.
CORSCORS クロス オリジン リソース共有 (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.
ConnectionStringsConnectionStrings 関数のデータベース接続文字列が含まれています。Contains the database connection strings for your functions. このオブジェクト内の接続文字列は、System.Data.SqlClient のプロバイダーの種類と共に、環境に追加されます。Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient.

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

local.settings.json ファイル内の設定は、ローカルで実行されている Functions ツールでのみ使用されます。Settings in the local.settings.json file are only used by Functions tools when running locally. 既定では、プロジェクトが 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.

有効なストレージ接続文字列が AzureWebJobsStorage に設定されていない場合は、次のエラー メッセージが表示されます。When no valid storage connection string is set for AzureWebJobsStorage, 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 " を実行するか、local.settings.json で接続文字列を指定することができます。You can run 'func azure functionapp fetch-app-settings ' or specify a connection string in local.settings.json.

注意

関数アプリでは、プロジェクトに必要な AzureWebJobsStorage および AzureWebJobsDashboard 接続設定に Azure Storage エミュレーターを使用できます。 エミュレーターを使用するには、これらのキーの値を UseDevelopmentStorage=true に設定します。

アプリケーションの設定の構成Configure app settings

接続文字列の値を設定するには、次のいずれかのオプションを構成します。To set a value for connection strings, you can do one of the following options:

  • Azure Storage Explorer で、接続文字列を入力します。Enter the connection string from Azure Storage Explorer.
  • 次のコマンドのいずれかを使用します。Use one of the following commands:

    func azure functionapp fetch-app-settings <FunctionAppName>
    
    func azure storage fetch-connection-string <StorageAccountName>
    

    どちらのコマンドも、最初に Azure にサインインする必要があります。Both commands require you to first sign in to Azure.

関数を作成するCreate a function

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

func new

func new では、次の省略可能な引数がサポートされています。func new supports the following optional arguments:

引数Argument [説明]Description
--language -l テンプレート プログラミング言語。C#、F#、JavaScript など。The template programming language, such as C#, F#, or JavaScript.
--template -t テンプレート名。The template name.
--name -n 関数名。The function name.

たとえば、JavaScript HTTP トリガーを作成するには、次を実行します。For example, to create a JavaScript HTTP trigger, run:

func new --language JavaScript --template "HttpTrigger" --name MyHttpTrigger

キューによってトリガーされる関数を作成するには、次を実行します。To create a queue-triggered function, run:

func new --language JavaScript --template QueueTrigger --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:

func host start

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

オプションOption [説明]Description
--port -p ローカル ポート。このポートでリッスンします。The local port to listen on. 既定値: 7071。Default value: 7071.
--debug <type> オプションは VSCodeVS です。The options are VSCode and VS.
--cors CORS オリジンのコンマ区切りのリスト (スペースなし)。A comma-separated list of CORS origins, with no spaces.
--nodeDebugPort -n 使用するノード デバッガーのポート。The port for the node debugger to use. 既定値: launch.json または 5858 の値。Default: A value from launch.json or 5858.
--debugLevel -d コンソール トレース レベル (オフ、詳細、情報、警告、またはエラー)。The console trace level (off, verbose, info, warning, or error). 既定値: 情報。Default: Info.
--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.
--pause-on-error プロセスを終了する前に、追加入力を一時停止します。Pause for additional input before exiting the process. 統合開発環境 (IDE) から Azure Functions Core Tools を起動する場合に役立ちます。Useful when launching Azure Functions Core Tools from an integrated development environment (IDE).

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

VS Code または Visual Studio でのデバッグDebug in VS Code or Visual Studio

デバッガーをアタッチするには、--debug 引数を渡します。To attach a debugger, pass the --debug argument. JavaScript 関数をデバッグするには、Visual Studio Code を使用します。To debug JavaScript functions, use Visual Studio Code. C# 関数については、Visual Studio を使用します。For C# functions, use Visual Studio.

C# 関数をデバッグするには、--debug vs を使用します。To debug C# functions, use --debug vs. または、Azure Functions Visual Studio 2017 Tools を使用することもできます。You can also use Azure Functions Visual Studio 2017 Tools.

ホストを起動して、JavaScript のデバッグを設定するには、次を実行します。To launch the host and set up JavaScript debugging, run:

func host start --debug vscode

重要

デバッグについては、Node.js 8.x のみがサポートされています。For debugging, only Node.js 8.x is supported. Node.js 9.x はサポートされていません。Node.js 9.x is not supported.

その後、Visual Studio Code の [デバッグ] ビューで、[Attach to Azure Functions](Azure Functions にアタッチ) を選択します。Then, in Visual Studio Code, in the Debug view, select Attach to Azure Functions. ブレークポイントをアタッチし、変数の調査をして、コードをステップ実行できます。You can attach breakpoints, inspect variables, and step through code.

Visual Studio Code での JavaScript デバッグ

関数へのテスト データの受け渡し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 ベースのシステムでは既定で cURL ツールを使用できます。The cURL tool is available by default on Linux-based systems. Windows では、最初にダウンロードし、cURL ツールをインストールする必要があります。On 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 を除く、あらゆる種類の関数の場合、管理エンドポイントを呼び出すことによって、関数をローカルでテストできます。For all kinds of functions other than HTTP triggers and webhooks, 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. 必要に応じて、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/QueueTriggerJS

バージョン 1.x での func run コマンドの使用Using the func run command in version 1.x

重要

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

func run <FunctionName> を使用して関数を直接呼び出し、関数の入力データを渡すこともできます。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 インライン コンテンツ。Inline content.
--debug -d 関数を実行する前に、デバッガーを、ホスト プロセスにアタッチします。Attach a debugger to the host process before running the function.
--timeout -t Functions ホストの準備が完了するまでの待機時間 (秒単位)。Time to wait (in seconds) until the local Functions host is ready.
--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\"}'

ログ ファイルをローカルに表示するViewing log files locally

ローカルに実行している Functions ホストは、次のパスにログを書き込みます。When the Functions host runs locally, it writes logs to the following path:

<DefaultTempDirectory>\LogFiles\Application\Functions

Windows では、<DefaultTempDirectory> は TMP、TEMP、USERPROFILE 環境変数、または Windows ディレクトリで最初に見つかった値です。On Windows, <DefaultTempDirectory> is the first found value of the TMP, TEMP, USERPROFILE environment variables, or the Windows directory. MacOS または Linux では、<DefaultTempDirectory> は TMPDIR 環境変数です。On MacOS or Linux, <DefaultTempDirectory> is the TMPDIR environment variable.

[!Note] Functions ホストは、開始するときに、ディレクトリ内の既存のファイル構造を上書きします。When the Functions host starts, it will overwrite the existing file structure in the directory.

Azure に発行するPublish to Azure

Azure で Functions プロジェクトを関数アプリに発行するには、publish コマンドを使用します。To publish a Functions project to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

以下のオプションを使用できます。You can use the following options:

オプション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.
--overwrite-settings -y -i で使用する必要があります。Must be used with -i. 値が異なる場合は、Azure の AppSettings をローカル値で上書きします。Overwrites AppSettings in Azure with local value if different. 既定値は prompt です。Default is prompt.

このコマンドは、Azure で既存の関数アプリに公開されるコマンドです。This command publishes to an existing function app in Azure. <FunctionAppName> がサブスクリプションに存在しない場合は、エラーが発生します。An error occurs when the <FunctionAppName> 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.

publish コマンドは、Functions プロジェクト ディレクトリのコンテンツをアップロードします。The publish command uploads the contents of the Functions project directory. ローカルでファイルを削除する場合、publish コマンドではファイルは Azure から削除されません。If you delete files locally, the publish command does not delete them from Azure. Azure 内のファイルは、Azure PortalKudu ツール を使用することで削除できます。You can delete files in Azure by using the Kudu tool in the Azure portal.

重要

Azure で関数アプリを作成すると、既定でバージョン 1.x の Function ランタイムが使用されます。When you create a function app in Azure, it uses version 1.x of the Function runtime by default. 関数アプリでバージョン 2.x のランタイムを使用するには、アプリケーション設定 FUNCTIONS_EXTENSION_VERSION=beta を追加します。To make the function app use version 2.x of the runtime, add the application setting FUNCTIONS_EXTENSION_VERSION=beta.
次の Azure CLI コードを使用して、この設定を関数アプリに追加します。Use the following Azure CLI code to add this setting to your function app:

az functionapp config appsettings set --name <function_app> \
--resource-group myResourceGroup \
--settings FUNCTIONS_EXTENSION_VERSION=beta   

次の手順Next steps

Azure Functions Core Tools はオープン ソースであり、GitHub でホストされていますAzure Functions Core Tools is open source and hosted on GitHub.
バグまたは機能要求を提出するには、GitHub の問題をオープンしてください。To file a bug or feature request, open a GitHub issue.