Azure FunctionsをVSCodeで開発する方法について

採用はこちら

Azure Functionsは、HTTPリクエストやタイマー、ストレージへのファイル追加、メッセージキューへの登録などをきっかけとしてプログラムを実行できる、Microsoft Azureのサーバーレスサービスです。

Visual Studio Code(VS Code)を利用すると、Azure Functionsのプロジェクト作成からコーディング、ローカル実行、デバッグ、Azureへのデプロイまでを一つの開発環境で進められます。

VS CodeでAzure Functionsを開発する場合は、基本的に以下の環境を使用します。

  • Visual Studio Code
  • Azure Functions拡張機能
  • Azure Functions Core Tools
  • PythonやNode.js、.NETなどの言語ランタイム
  • 必要に応じてAzurite

ここでは、Azure FunctionsをVS Codeで開発する基本的な流れや必要なツール、注意点について詳しく解説します。

目次

Azure Functionsとは

Azure Functionsは、イベントが発生したタイミングで必要な処理だけを実行できるイベント駆動型のコンピューティングサービスです。

常時Webサーバーを起動しておく従来型の構成とは異なり、特定のイベントを「トリガー」としてFunctionを実行できます。

Azure Functionsでできること

Azure Functionsは、さまざまな用途に利用できます。

代表的な用途には以下があります。

  • Web APIの作成
  • 定期的なバッチ処理
  • Webhookの受信
  • Azure Storageへ追加されたファイルの処理
  • Queue Storageのメッセージ処理
  • Service Busを利用した非同期処理
  • データ変換
  • IoTデータの処理
  • バックグラウンドジョブ

たとえば、HTTPアクセスで処理を開始したい場合は「HTTP Trigger」を使用します。

一定時間ごとに処理したい場合は「Timer Trigger」を使用します。

Azure Functionsでは、このように実行条件をトリガーとして設定するのが基本です。

VS CodeでAzure Functionsを開発するために必要なもの

Azure FunctionsをVS Codeで開発するには、いくつかのツールを準備する必要があります。

Visual Studio Code

まず必要になるのがVS Codeです。

Azure Functions用の拡張機能やデバッグ機能、統合ターミナルなどを利用できるため、Azure Functions開発の中心となる開発環境です。

Azure Functions拡張機能

VS Codeでは、Microsoftが提供している「Azure Functions」拡張機能を利用できます。

Azure Functions拡張機能を導入すると、VS Code上から次のような操作を行えます。

  • Functionsプロジェクトの作成
  • Functionの追加
  • ローカル実行
  • デバッグ
  • Azureへのサインイン
  • Function Appの作成
  • Azureへのデプロイ
  • Azure側の設定の取得

Azure FunctionsをVS Codeで開発する場合は、基本的にインストールしておきたい拡張機能です。

Azure Functions Core Tools

Azure Functions Core Toolsは、Azure FunctionsをローカルPC上で実行するためのCLIツールです。

代表的なコマンドが以下です。

func start

プロジェクトディレクトリで実行すると、ローカルのAzure Functionsホストを起動できます。

2026年10月時点では、Azure Functionsランタイムはv4.xがサポート対象となっているため、新規開発ではCore Tools 4.xを使用するのが基本です。

npmを利用する場合は、次のようにインストールできます。

npm install -g azure-functions-core-tools@4 --unsafe-perm true

インストール後は以下で確認できます。

func --version

バージョン番号が表示されれば利用可能です。

WindowsではCore Toolsの重複インストールに注意する

Windowsでは、Azure Functions Core ToolsをMSIとnpmの両方でインストールすると、PATHの優先順位によって意図しないバージョンが実行される可能性があります。

現在どのfuncが利用されているか確認する場合は、以下を実行します。

where func

複数表示される場合は、Core Toolsのインストール方法を整理した方が安全です。

Azure Functionsで利用できる言語

Azure Functionsでは複数のプログラミング言語を利用できます。

代表的なものとして以下があります。

  • C#
  • JavaScript
  • TypeScript
  • Python
  • Java
  • PowerShell
  • Go

ただし、言語ごとに利用できるバージョンやホスティングプランが異なります。

新規プロジェクトを作成する際は、Microsoftが公開している最新の対応言語一覧を確認することが重要です。

C#はisolated workerモデルを基本にする

C#で新しいAzure Functionsを開発する場合は、原則として.NET isolated workerモデルを選択するのが適切です。

従来のin-processモデルは2026年11月10日にサポート終了予定となっています。

そのため、新規開発でin-processモデルを採用するメリットはほとんどありません。

既存のin-processアプリケーションについても、isolated workerモデルへの移行を検討する必要があります。

Pythonはv2プログラミングモデルを使用する

Pythonには、従来のv1モデルと現在推奨されているv2プログラミングモデルがあります。

新規開発では、デコレーターを利用するv2モデルが基本です。

たとえば、HTTP Triggerは次のように記述できます。

import azure.functions as func

app = func.FunctionApp()

@app.route(route="hello")
def hello(req: func.HttpRequest) -> func.HttpResponse:
    return func.HttpResponse("Hello Azure Functions")

古い記事ではfunction.jsonを個別に作成するPython v1モデルが紹介されている場合があるため、参考にする情報の作成年には注意が必要です。

TypeScriptはJavaScriptへ変換して実行される

TypeScriptもAzure Functions開発に利用できます。

ただし、TypeScriptそのものが直接Functionsランタイム上で実行されるわけではありません。

基本的には、

TypeScript
↓
JavaScriptへトランスパイル
↓
Node.jsで実行

という仕組みになります。

Goのサポート状況にも注意する

2026年10月時点では、Go 1.24以降についてAzure FunctionsのサポートがPreviewとして提供されています。

ただし、利用できるホスティングプランなどに制約があります。

そのため、GoでFunctionsを構築する場合は、最新のAzure公式ドキュメントで対応状況を確認することが重要です。

Azure Functions拡張機能をインストールする

VS Codeを起動したら、左側のExtensionsを開きます。

検索欄に以下を入力します。

Azure Functions

Microsoftが提供しているAzure Functions拡張機能を選択し、インストールします。

インストール後はコマンドパレットからAzure Functions関連の操作を実行できます。

WindowsやLinuxでは、

Ctrl + Shift + P

macOSでは、

Command + Shift + P

でコマンドパレットを開けます。

F1を利用することも可能です。

Azure Functionsプロジェクトを作成する

必要なツールを準備したら、Azure Functionsプロジェクトを作成します。

新しいプロジェクトを作成する

VS Codeのコマンドパレットを開き、以下を選択します。

Azure Functions: Create New Project...

続いて、Functionsプロジェクトを保存するフォルダーを指定します。

プロジェクト専用の空のフォルダーを作成しておくと管理しやすくなります。

使用する言語を選択する

続いて、開発に使用する言語を選択します。

たとえば以下があります。

Python
TypeScript
JavaScript
C#

選択した言語によっては、その後にランタイムバージョンやプログラミングモデルなどを選択します。

Functionのトリガーを選択する

Azure Functionsでは、何をきっかけとしてFunctionを実行するのかをトリガーで設定します。

初めてFunctionsを利用する場合は、HTTP Triggerが分かりやすいでしょう。

HTTP Trigger

HTTP Triggerは、HTTPリクエストを受信するとFunctionを実行します。

Web APIやWebhookの作成などに利用できます。

ローカル環境では、たとえば以下のようなURLになります。

http://localhost:7071/api/HttpExample

Timer Trigger

Timer Triggerは、指定したスケジュールに従ってFunctionを実行します。

定期的なバッチ処理やデータ更新などに適しています。

Blob Trigger

Blob Triggerは、Azure Blob Storageにファイルが追加または変更されたときなどにFunctionを実行します。

画像処理やファイル変換などに利用できます。

Queue Trigger

Queue Triggerは、Azure Queue Storageへメッセージが追加されたタイミングでFunctionを実行します。

処理を非同期化したい場合に便利です。

Function名を設定する

続いてFunction名を設定します。

たとえば以下のような名前が考えられます。

HttpExample
CreateUser
ProcessImage
SendDailyReport

Function名はAzure Portalやログなどでも表示されるため、何をするFunctionなのか分かる名前にすると管理しやすくなります。

HTTP TriggerのAuthorization Levelを設定する

HTTP Triggerでは、Authorization Levelを設定する場合があります。

代表的なものには以下があります。

Anonymous
Function
Admin

Anonymous

基本的にFunction Keyなしでアクセスできます。

開発や公開APIなどで利用できますが、本番環境では適切な認証・認可設計が必要です。

Function

Function Keyを利用してアクセスを制御します。

Function単位またはホスト単位のキーを使用できます。

Admin

管理者レベルのキーを要求する設定です。

通常のWeb APIを作成する場合に常用するものではありません。

なお、本番環境のセキュリティではFunction Keyだけでなく、Microsoft Entra IDやAPI Managementなどを組み合わせる場合もあります。

Azure Functionsプロジェクトの主なファイル

作成されるファイルは言語やプログラミングモデルによって異なります。

代表的なものには以下があります。

host.json
local.settings.json
.vscode/

host.json

host.jsonは、Function App全体に適用される設定を記述するファイルです。

基本的な形式は次のようになります。

{
  "version": "2.0"
}

ログ設定や拡張機能の動作など、Functionsホスト全体に関係する設定を管理します。

local.settings.json

local.settings.jsonは、ローカル開発用の設定を保存するファイルです。

たとえば次のような構成があります。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
  }
}

ここには、ローカル環境で利用する環境変数や接続情報などを設定します。

local.settings.jsonをGitへコミットしない

local.settings.jsonには機密情報が含まれる可能性があります。

たとえば以下です。

  • APIキー
  • データベース接続情報
  • Azure Storage接続文字列
  • パスワード
  • アクセストークン

そのため、通常は.gitignoreへ追加します。

local.settings.json

シークレットをGitHubなどの公開リポジトリへ誤ってアップロードしないよう注意しましょう。

Azuriteを利用してAzure Storageをローカルで再現する

Azure FunctionsからBlob StorageやQueue Storageなどを利用する場合、ローカル開発ではAzuriteを使用できます。

Azuriteは、Azure StorageをローカルPC上でエミュレートするためのツールです。

Azuriteで利用できるサービス

Azuriteでは主に以下をローカルで再現できます。

  • Blob Storage
  • Queue Storage
  • Table Storage

Azure上に毎回Storage Accountを作成しなくても、Functionsとの連携をテストできます。

UseDevelopmentStorage=trueを利用する

local.settings.jsonでは、次のように指定できます。

{
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
  }
}

この設定はローカルのAzuriteへ接続することを意味します。

そのため、UseDevelopmentStorage=trueを設定するだけでは不十分で、Azuriteも起動しておく必要があります。

Azure Functionsをローカル実行する

Functionを作成したら、Azureへデプロイする前にローカルで動作確認します。

VS Codeから実行する

VS Codeでは、

F5

を押すことでデバッグ実行できます。

Functionsホストが起動し、HTTP TriggerであればローカルURLが表示されます。

Core Toolsから実行する

ターミナルから直接起動する場合は、プロジェクトフォルダーで次を実行します。

func start

HTTP Triggerの場合、たとえば以下のようなURLへアクセスできます。

http://localhost:7071/api/HttpExample

curlを利用する場合は次のように確認できます。

curl http://localhost:7071/api/HttpExample

VS Codeでブレークポイントを使ってデバッグする

VS Codeを使用すると、Azure Functionsでも一般的なアプリケーションと同様にブレークポイントを利用できます。

コードの行番号付近をクリックしてブレークポイントを設定し、F5でデバッグ実行します。

HTTP Triggerなら、ブラウザーやcurlなどからリクエストを送ります。

処理が対象行に到達すると、VS Code上で一時停止します。

デバッグ中に確認できること

ブレークポイントを利用すると、次のような情報を確認できます。

  • 変数の値
  • Functionの引数
  • 戻り値
  • コールスタック
  • スコープ
  • 条件分岐
  • 例外

Azureへデプロイする前に、ローカルで十分に動作確認しておくことが重要です。

Azureアカウントへサインインする

ローカルでFunctionが正常に動作したら、Azureへのデプロイを行います。

VS CodeのAzure関連メニューやコマンドパレットからAzureアカウントへサインインします。

Function Appを作成したりデプロイしたりするためには、対象Azureサブスクリプションへのアクセス権限が必要です。

AzureにFunction Appを作成する

ローカルのFunctionをAzure上で実行するには、Function Appを作成する必要があります。

Function Appは、複数のFunctionsをまとめて管理・実行する単位です。

VS Codeでは、コマンドパレットなどからFunction Appを作成できます。

設定項目には以下があります。

  • Function App名
  • Azureサブスクリプション
  • リージョン
  • Runtime
  • Runtime version
  • ホスティングプラン
  • Storage Account
  • Application Insights

Azure Functionsのホスティングプランを選択する

Azure Functionsには複数のホスティング方式があります。

新規開発では、古い記事だけを参考にしてLinux Consumption Planを選択しないよう注意が必要です。

Flex Consumptionを検討する

現在のAzure Functionsでは、新規のサーバーレス構成としてFlex Consumptionが重要な選択肢になっています。

Flex Consumptionは、従来のConsumptionモデルに近い従量課金型でありながら、より新しい機能や構成に対応しています。

新しくAzure Functionsを構築する場合は、まずFlex Consumptionが要件に合うか確認するとよいでしょう。

Linux Consumption Planは廃止予定

Linux Consumption Planは2028年9月30日に廃止予定です。

また、新しい言語バージョンの追加も制限されています。

そのため、新規プロジェクトでLinux Consumption Planを積極的に採用するのはおすすめできません。

なお、これは「Consumption Plan全体」が2028年に終了するという意味ではありません。

対象となっているのはLinux Consumption Planです。

VS CodeからAzureへデプロイする

Function Appを準備したら、VS Codeからデプロイできます。

コマンドパレットを開き、

Azure Functions: Deploy to Function App...

を実行します。

続いて、デプロイ先となるFunction Appを選択します。

既存Function Appへのデプロイに注意する

既存のFunction Appへデプロイすると、Azure側のFunction内容がローカルプロジェクトの内容で置き換えられます。

そのため、本番環境へ誤って手動デプロイしないよう注意が必要です。

チーム開発や本番運用では、GitHub ActionsやAzure DevOpsなどを利用したCI/CDも検討するとよいでしょう。

ローカル設定とAzureの設定は別に管理される

Azure Functions開発で特に混乱しやすいのが、local.settings.jsonとAzure上のアプリ設定の違いです。

local.settings.json

ローカルPCでFunctionを動かすための設定です。

たとえば次のような値を設定します。

{
  "Values": {
    "MY_API_KEY": "xxxxx"
  }
}

Azure側のApplication Settings

AzureへデプロイしたFunctionでは、Function App側のアプリ設定を使用します。

local.settings.jsonに設定した値が、すべて自動的にAzure側へ反映されるわけではありません。

したがって、本番環境で必要な環境変数や接続情報は、Azure側でも設定する必要があります。

Azure側の設定をローカルへ取得する

すでにAzure上にFunction Appがある場合は、Azure側の設定をローカルへ取得することもできます。

VS Codeのコマンドパレットから、

Azure Functions: Download Remote Settings...

を実行します。

対象のFunction Appを選択すると、ローカル開発用の設定へ反映できます。

ただし、取得した設定にはシークレットが含まれる可能性があります。

local.settings.jsonをGitへコミットしないよう十分注意してください。

Azure FunctionsではApplication Insightsを活用する

本番環境では、Functionが実行できているかだけでなく、継続的な監視が重要です。

Azure FunctionsではApplication Insightsを利用できます。

Application Insightsで確認できる情報

代表的には以下を確認できます。

  • Functionの実行回数
  • 実行時間
  • エラー
  • 例外
  • ログ
  • トレース
  • 外部サービスへの依存関係
  • パフォーマンス

障害が発生した場合の原因調査にも役立つため、本番環境では監視環境を整えておくことが重要です。

Azure Functions v4を利用する

2026年10月時点では、Azure Functionsランタイムホストはv4.xがサポート対象です。

古いWeb記事にはFunctions v1、v2、v3を使用した例も残っていますが、新規開発ではv4を前提にしてください。

特に、古いプロジェクトをメンテナンスする場合は、ランタイムのバージョンを確認することが重要です。

古いAzure Functionsの記事を参考にするときの注意点

Azure Functionsは、ランタイム、プログラミングモデル、ホスティングプラン、対応言語などが継続的に更新されています。

そのため、数年前の記事をそのまま利用すると、現在の環境では動作しない場合があります。

C#の古いサンプルに注意する

古い記事ではC#のin-processモデルが多数紹介されています。

しかし、in-processモデルは2026年11月10日にサポート終了予定です。

新規開発ではisolated workerモデルを利用するのが基本です。

Python v1のサンプルに注意する

古いPython Functionsでは、Functionごとにfunction.jsonを作成するv1モデルが一般的でした。

現在の新規開発では、デコレーターを利用するPython v2モデルを優先するとよいでしょう。

Node.jsの古いプログラミングモデルに注意する

Node.jsにもAzure Functionsのプログラミングモデルの世代があります。

古い記事をコピーすると、現在のFunctionsプロジェクト構成と一致しない場合があります。

Azure FunctionsをVS Codeで開発する基本的な流れ

Azure FunctionsをVS Codeで開発するときは、おおむね以下の流れになります。

VS Codeをインストール
↓
Azure Functions拡張機能をインストール
↓
Azure Functions Core Tools v4を準備
↓
Python・Node.js・.NETなどのランタイムを準備
↓
Azure Functionsプロジェクトを作成
↓
HTTP TriggerなどのTriggerを追加
↓
Functionを実装
↓
local.settings.jsonを設定
↓
必要に応じてAzuriteを起動
↓
F5またはfunc startでローカル実行
↓
ブレークポイントでデバッグ
↓
Azureへサインイン
↓
Function Appを作成
↓
Azure側のApplication Settingsを設定
↓
Function Appへデプロイ
↓
Application Insightsで監視

この流れを理解しておけば、Azure Functions開発の全体像を把握しやすくなります。

Azure FunctionsをVS Codeで開発するメリット

VS Codeを利用するメリットは、単にコードを書けることだけではありません。

プロジェクトの作成からデバッグ、Azureへのデプロイまでを同じ環境で行えます。

また、GitやGitHub、Azure DevOpsなどとの相性もよく、本格的なチーム開発にも対応できます。

特に、

プロジェクト作成
↓
コーディング
↓
ローカル実行
↓
デバッグ
↓
Azureへデプロイ
↓
監視

という一連の開発フローを構築できる点が大きなメリットです。

Azure FunctionsをVS Codeで開発するときの注意点

Azure FunctionsをVS Codeで利用する際は、いくつか注意点があります。

シークレットをソースコードへ直接書かない

APIキーや接続文字列などをコードへ直接記述するのは避けましょう。

たとえば以下の情報です。

  • APIキー
  • データベースのパスワード
  • Azure Storage接続文字列
  • アクセストークン
  • 外部サービスの認証情報

ローカルではlocal.settings.json、Azureではアプリ設定やAzure Key Vaultなどを活用します。

本番環境へVS Codeから直接デプロイしすぎない

小規模な開発ではVS Codeから直接デプロイしても問題ありません。

しかし、チーム開発や重要な本番環境では、GitHub ActionsやAzure DevOpsなどを利用してデプロイを自動化する方が安全です。

利用する言語のサポート期限を確認する

Azure Functions自体がv4であっても、PythonやNode.js、.NETなどにはそれぞれサポート期限があります。

新規開発では、できるだけサポート期間が十分に残っているバージョンを選択しましょう。

まとめ

Azure Functionsは、HTTPリクエストやタイマー、ストレージ、メッセージキューなどをきっかけとしてプログラムを実行できるAzureのサーバーレスサービスです。

VS Codeを利用すれば、Azure Functions拡張機能とAzure Functions Core Toolsを組み合わせて、プロジェクト作成からローカル実行、デバッグ、Azureへのデプロイまでを効率よく進められます。

基本的な開発環境は以下です。

VS Code
+
Azure Functions拡張機能
+
Azure Functions Core Tools v4
+
使用する言語のランタイム

Blob StorageやQueue Storageを利用する場合は、Azuriteを組み合わせることでローカル環境でもAzure Storageを利用したテストができます。

また、2026年10月時点ではAzure Functionsランタイムはv4.xがサポート対象です。

C#ではin-processモデルが2026年11月10日にサポート終了予定のため、新規開発ではisolated workerモデルを基本とします。

さらに、Linux Consumption Planは2028年9月30日に廃止予定となっているため、新しいFunction Appを構築する際はFlex Consumptionなど現在のホスティング方式を検討することも重要です。

Azure Functionsはアップデートが比較的多いサービスです。

古い記事の手順をそのまま利用せず、言語バージョン、ランタイム、プログラミングモデル、ホスティングプランの最新情報を確認しながら開発することが大切です。

以上、Azure FunctionsをVSCodeで開発する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次