Skip to content

Commit 31f6e40

Browse files
authored
Merge pull request #54027 from MicrosoftDocs/NEW-lp4m3-guided
New lp4m3 guided
2 parents 9da3a9c + 707cdd2 commit 31f6e40

18 files changed

Lines changed: 601 additions & 0 deletions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.introduction
3+
title: Introduction
4+
metadata:
5+
title: Introduction
6+
description: "Introduction"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 2
14+
content: |
15+
[!include[](includes/1-introduction.md)]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.exercise-create-function-app
3+
title: Exercise - Create the function app
4+
metadata:
5+
title: Exercise - Create the Function App
6+
description: "Exercise - Create the Function App"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 7
14+
content: |
15+
[!include[](includes/2-exercise-create-function-app.md)]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.exercise-create-http-trigger-function
3+
title: Exercise - Create an HTTP-trigger function
4+
metadata:
5+
title: Exercise - Create an HTTP-trigger function
6+
description: "Exercise - Create an HTTP-trigger function"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 7
14+
content: |
15+
[!include[](includes/3-exercise-create-http-trigger-function.md)]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.exercise-test-endpoint-logs
3+
title: Exercise - Test endpoint and review logs
4+
metadata:
5+
title: Exercise - Test endpoint and review logs
6+
description: "Exercise - Test endpoint and review logs"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 6
14+
content: |
15+
[!include[](includes/4-exercise-test-endpoint-logs.md)]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.validate-success
3+
title: Validate success
4+
metadata:
5+
title: Validate success
6+
description: "Validate success"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 2
14+
content: |
15+
[!include[](includes/5-validate-success.md)]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.clean-up-resources
3+
title: Clean up resources
4+
metadata:
5+
title: Clean up resources
6+
description: "Clean up resources"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 5
14+
content: |
15+
[!include[](includes/6-clean-up-resources.md)]
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.knowledge-check
3+
title: Knowledge check
4+
metadata:
5+
title: Knowledge check
6+
description: "Knowledge check"
7+
ms.date: 03/29/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 5
14+
content: |
15+
[!include[](includes/7-knowledge-check.md)]
16+
quiz:
17+
title: "Check your knowledge"
18+
questions:
19+
- content: "What type of trigger allows an Azure Function to respond to web requests?"
20+
choices:
21+
- content: "Timer trigger"
22+
isCorrect: false
23+
explanation: "A timer trigger runs on a schedule, not in response to web requests."
24+
- content: "HTTP trigger"
25+
isCorrect: true
26+
explanation: "An HTTP trigger runs the function when it receives an HTTP request, making it suitable for web endpoints."
27+
- content: "Blob trigger"
28+
isCorrect: false
29+
explanation: "A blob trigger fires when a file is added or updated in Blob Storage, not when a web request arrives."
30+
- content: "What is the main advantage of using Azure Functions for a simple website endpoint?"
31+
choices:
32+
- content: "It provides a dedicated virtual machine for the endpoint."
33+
isCorrect: false
34+
explanation: "Azure Functions is a serverless service. You do not manage or provision virtual machines."
35+
- content: "You do not need to manage any infrastructure."
36+
isCorrect: true
37+
explanation: "Azure Functions is serverless, meaning Azure handles all infrastructure. You focus only on the code."
38+
- content: "It automatically creates a custom domain name."
39+
isCorrect: false
40+
explanation: "Azure Functions provides a default endpoint URL. Custom domains require separate configuration."
41+
- content: "What Azure service lets you monitor function invocations and view execution logs?"
42+
choices:
43+
- content: "Azure Monitor metrics"
44+
isCorrect: false
45+
explanation: "Azure Monitor metrics can show high-level data, but detailed invocation logs for Functions come from Application Insights."
46+
- content: "Azure Activity Log"
47+
isCorrect: false
48+
explanation: "The Activity Log tracks management operations on resources, not individual function invocations."
49+
- content: "Application Insights"
50+
isCorrect: true
51+
explanation: "Application Insights provides detailed telemetry including invocation logs, response codes, and execution times for Azure Functions."
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.guided-project-build-basic-website-endpoint-with-functions.summary
3+
title: Summary
4+
metadata:
5+
title: Summary
6+
description: "Summary"
7+
ms.date: 03/16/2026
8+
author: wwlpublish
9+
ms.author: robbarefoot
10+
ms.topic: unit
11+
ms.custom:
12+
- N/A
13+
durationInMinutes: 2
14+
content: |
15+
[!include[](includes/8-summary.md)]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
This guided project focuses on building a simple HTTP endpoint using Azure Functions.
2+
3+
Azure Functions is a serverless compute service that lets you run code in response to events without managing infrastructure. You write a function, deploy it, and Azure handles the scaling and hosting. With an HTTP trigger, your function gets its own URL that anyone can call from a browser.
4+
5+
## Scenario
6+
7+
Your team needs a lightweight endpoint for a contact page without maintaining servers. You create a Function App, deploy an HTTP-triggered function using Cloud Shell, and then test, secure, and monitor the endpoint—all in one session.
8+
9+
- Exercise 1 - Create a Function App with the serverless Flex Consumption plan.
10+
- Exercise 2 - Deploy an HTTP-trigger function from Cloud Shell.
11+
- Exercise 3 - Test the endpoint, add security, and review logs.
12+
13+
:::image type="content" source="../media/overview-architecture.png" alt-text="Diagram of a serverless HTTP endpoint using Azure Functions with an HTTP trigger, function key, and Application Insights." border="false":::
14+
15+
By the end of this project, you have a live HTTP endpoint that responds to requests, requires an access key for security, and logs every invocation to Application Insights.
16+
17+
> [!NOTE]
18+
> This is a guided project module where you complete a project by following step-by-step instructions.
19+
20+
## Skilling areas
21+
22+
In this project, you practice skills in the following areas:
23+
24+
**Create and configure a Function App**
25+
+ Create a resource group and a Function App.
26+
+ Select the Flex Consumption hosting plan.
27+
+ Verify deployment status in the portal.
28+
29+
**Deploy a function using Cloud Shell**
30+
+ Open Cloud Shell and initialize a function project.
31+
+ Create an HTTP-triggered function.
32+
+ Deploy the function to Azure from the command line.
33+
34+
**Test, secure, and monitor a function**
35+
+ Call the HTTP endpoint from a browser.
36+
+ Enable Application Insights for monitoring.
37+
+ Change the authorization level to require a function key.
38+
+ Review invocation logs and execution details.
39+
40+
> [!IMPORTANT]
41+
> This project uses the Azure portal for every step. No prior Azure experience is required.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
This guided project consists of the following exercises:
2+
3+
- **Create the Function App**
4+
- Deploy an HTTP-trigger function
5+
- Test endpoint and review logs
6+
7+
In this exercise, you create a resource group and deploy a Function App using the serverless Flex Consumption plan. When you're done, you have a running Function App ready to host your first function.
8+
9+
This exercise includes the following tasks:
10+
11+
- Prepare the environment
12+
- Configure the Function App
13+
- Verify the deployment
14+
15+
**Outcome:** A running Function App that uses the serverless consumption plan.
16+
17+
> [!TIP]
18+
> Pause after each major action and confirm the page status before moving on. This habit prevents compounding mistakes.
19+
20+
## Task 1: Prepare the environment
21+
22+
Set up your Azure environment before you begin. You create a resource group to organize all the resources for this project together.
23+
24+
> [!WARNING]
25+
> This project creates Azure resources that may incur charges. Complete the clean-up unit when you're done to avoid unintended expenses.
26+
27+
1. Sign in to the [Azure portal](https://portal.azure.com) with an account that has permissions to create Function App resources.
28+
2. In the portal search bar, search for **Resource groups** and select **Resource groups**.
29+
3. Select **+ Create**. Name the resource group **rg-gp-functions-endpoint**, choose your preferred region, and select **Review + create** then **Create**.
30+
31+
## Task 2: Configure the Function App
32+
33+
Set up the Function App with serverless hosting. The Flex Consumption plan ensures you pay only for the execution time of your functions, making it cost-effective for occasional workloads.
34+
35+
1. In the portal search bar, search for **Function App** and select **Function App**.
36+
2. Select **Create**.
37+
3. Select **Flex Consumption** as the hosting option and select **Select**.
38+
4. On the Basics tab, select **rg-gp-functions-endpoint** as the resource group.
39+
5. For **Function App name**, enter a globally unique name (for example, **func-gp-endpoint-** followed by your initials and a number).
40+
6. For **Secure unique default host name**, leave the default (**On**).
41+
7. For **Region**, keep the default or choose your preferred region.
42+
8. For **Runtime stack**, select **Node.js**.
43+
9. For **Version**, keep the latest available LTS option.
44+
10. For **Instance size**, leave the default (**2048 MB**).
45+
11. Select **Review + create** and then select **Create**.
46+
47+
> [!NOTE]
48+
> **Validation step:** Verify you selected all required settings before deployment: resource group, runtime stack (Node.js), region, and Flex Consumption hosting plan.
49+
50+
> [!NOTE]
51+
> Each exercise includes validation steps like this one. Track your results as you go—you'll review them all in the validation unit at the end of this module.
52+
53+
## Task 3: Verify the deployment
54+
55+
Confirm that your Function App deployed successfully and is running.
56+
57+
1. When deployment completes, select **Go to resource**.
58+
2. Confirm the Function App Overview page shows a **Running** status.
59+
60+
> [!NOTE]
61+
> **Validation step:** Confirm the Function App Overview page shows **Running** status and note the resource URL.

0 commit comments

Comments
 (0)