Use the Azure Functions extension to quickly create, debug, manage, and deploy serverless apps directly from VS Code.
Visit the wiki for more information about Azure Functions and how to use the advanced features of this extension.
Sign up today for your free Azure account and receive 12 months of free popular services, $200 free credit and 25+ always free services 👉 Start Free.
-
Select the button to create a new project in the Azure Resources explorer
-
Select a new, empty folder to contain your project
-
Select your desired programming language
-
Select "HTTP trigger" for your project's first function
-
Use "HttpTrigger1" as the function name
-
Select "Anonymous" for the authorization level, which enables anyone to call your function endpoint without a key.
To learn more about authorization levels, see here.
-
If the selected folder is not already open, select "Open in current window" to open it
This extension integrates with the Azure Functions Core Tools to let you run your project locally before publishing to Azure.
-
To start your project, press F5 or the "play" button
-
If you do not have the Azure Functions Core Tools installed, you will be automatically prompted to install. Follow the specified instructions, or skip to the "Deploy" step if you would rather deploy without running locally.
TIP: The "Terminal" panel should pop up automatically and you know your project is running if you see output
-
Expand your local project in the Azure Workspace explorer to copy your function's url
-
Navigate to a browser, paste the url, and append
?name=worldTIP: Your url should look like this:
http://localhost:7071/api/HttpTrigger1?name=world -
A response of "Hello world" is returned in the browser and you know your function worked!
-
Select the "Detach" button to stop your project from running locally
-
Sign in to your Azure Account by clicking "Sign in to Azure..." in the Azure Resources explorer
If you don't already have an Azure Account, click "Create a Free Azure Account"
-
Select the 'plus' button to open the "Create Resource" menu
-
Choose "Create Function App in Azure..."
-
Enter a globally unique name for your Function App
-
If multiple versions of your language's runtime are supported (i.e. Node.js 10 and Node.js 12), select your desired version (the latest is recommended)
-
Select a location
-
Wait for your Function App to be created. Progress will be shown in the Activity Log panel
-
Once your Function App has been created, reveal the resource in the Resources view.
-
Right click your Function App and select "Deploy to Function App"
-
Once deployment is complete, expand your subscription in the Azure Resources explorer to copy your deployed function's url
-
Navigate to a browser, paste the url, and append
?name=worldTIP: Your url should look like this:
https://<function app name>.azurewebsites.net/api/HttpTrigger1?name=world -
A response of "Hello world" is returned in the browser and you know your function worked!
The Node.js v4 MCP Resource template requires @azure/functions 4.12.0 or later, and the MCP Prompt template requires 4.14.0 or later, for both JavaScript and TypeScript. Function creation checks the SDK installed in the project, not just the version range in package.json. If the SDK is missing or too old, creation stops before writing the function and displays the required version and an npm install command. Run that command in the project folder and retry. The extension does not upgrade dependencies automatically.
If you're on a corporate network that performs HTTPS/SSL inspection (for example Zscaler, Netskope, Cisco Umbrella, or an internal certificate authority), Azure operations may fail with errors like unable to get local issuer certificate or self-signed certificate in certificate chain. This happens because the extension's Azure calls run in the Node.js extension host, which does not use the operating system certificate store by default.
To resolve it, point Node.js and VS Code at your corporate root CA (typically by setting NODE_EXTRA_CA_CERTS). See the certificate troubleshooting guide in the Azure Resources extension README for the full steps.
There are a couple of ways you can contribute to this repo:
- Ideas, feature requests and bugs: We are open to all ideas and we want to get rid of bugs! Use the Issues section to either report a new issue, provide your ideas or contribute to existing threads.
- Documentation: Found a typo or strangely worded sentences? Submit a PR!
- Code: Contribute bug fixes, features or design changes:
- Clone the repository locally and open in VS Code.
- Run "Extensions: Show Recommended Extensions" from the command palette and install all extensions listed under "Workspace Recommendations"
- Open the terminal (press CTRL+ `) and run
npm install. - To build, press F1 and type in
Tasks: Run Build Task. - Debug: press F5 to start debugging the extension.
Keep PR descriptions brief:
Fixes #<issue>for each issue fixed; useFixes owner/repo#numberfor another repository. If no issue is linked, say so rather than inventing one.- A human-readable one- or two-line reason for the change.
- Before: a real screenshot reproducing the bug or showing the missing feature without the candidate changes.
- After: a real screenshot of the same scenario demonstrating the fix or feature with the candidate changes.
Reviews must first exercise that scenario without the candidate changes and capture a baseline screenshot, then exercise it with the candidate changes and capture a screenshot demonstrating the result. Use an isolated checkout or build; do not overwrite existing work. Screenshots supplement, not replace, regression tests and technical review.
Write each finding as one human-readable line describing the scenario and impact, with a file/line reference, severity, and smallest viable fix; attach a real screenshot showing any reported bug. Redact secrets and sensitive customer data, including resource names and user paths, from all evidence before sharing. Never fabricate screenshots or claim unperformed verification. If execution or capture is blocked, state the blocker and what remains unverified. For documentation-only or nonvisual changes, explain why screenshots do not apply and provide relevant diff, test, or other nonvisual evidence instead.
Before we can accept your pull request you will need to sign a Contribution License Agreement. All you need to do is to submit a pull request, then the PR will get appropriately labelled (e.g. cla-required, cla-norequired, cla-signed, cla-already-signed). If you already signed the agreement we will continue with reviewing the PR, otherwise system will tell you how you can sign the CLA. Once you sign the CLA all future PR's will be labeled as cla-signed.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you don’t wish to send usage data to Microsoft, you can set the telemetry.enableTelemetry setting to false. Learn more in our FAQ.
The Azure Functions extension for VS Code follows the Modern Lifecycle Policy. Follow instructions here to get the latest updates of the extension.
| Version | Start Date | Retirement Date |
|---|---|---|
| 1.x | 10/20/2020 | In Support |









