Skip to content

Commit 226d88f

Browse files
Merge pull request #53590 from MicrosoftDocs/NEW-sql-dev-module-6
DP-800 new module: [Integrate SQL solutions with Azure services]
2 parents dcd5740 + b9a2c75 commit 226d88f

21 files changed

Lines changed: 1638 additions & 0 deletions
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.introduction
3+
title: Introduction
4+
metadata:
5+
title: Introduction to integrating SQL solutions with Azure services
6+
description: Learn how Data API Builder enables REST and GraphQL APIs for SQL databases and how to integrate with Azure monitoring and event services.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 2
12+
content: |
13+
[!include[](includes/1-introduction.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.summary
3+
title: Summary
4+
metadata:
5+
title: Summary
6+
description: Summary of integrating SQL solutions with Azure services using Data API Builder and event-driven patterns.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 2
12+
content: |
13+
[!include[](includes/10-summary.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.create-configuration-files-data-api-builder
3+
title: Create configuration files for Data API Builder
4+
metadata:
5+
title: Create configuration files for Data API Builder
6+
description: Learn how to create and configure Data API Builder configuration files for SQL database integration with REST and GraphQL endpoints.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 10
12+
content: |
13+
[!include[](includes/2-create-configuration-files-data-api-builder.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.define-entities-rest-graphql
3+
title: Define entities for REST and GraphQL
4+
metadata:
5+
title: Define entities for REST and GraphQL
6+
description: Learn how to define and configure entities in Data API Builder including field mappings, caching, pagination, filtering, and relationships.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 12
12+
content: |
13+
[!include[](includes/3-define-entities-rest-graphql.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.expose-database-objects-stored-procedures-views
3+
title: Expose database objects, stored procedures, and views
4+
metadata:
5+
title: Expose database objects, stored procedures, and views
6+
description: Learn how to expose SQL Server views, stored procedures, and configure GraphQL relationships in Data API Builder.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 12
12+
content: |
13+
[!include[](includes/4-expose-database-objects-stored-procedures-views.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.deploy-data-api-builder-azure-services
3+
title: Explore deployment options for Data API Builder
4+
metadata:
5+
title: Explore deployment options for Data API Builder
6+
description: Learn how to deploy Data API Builder to Azure Container Apps, App Service, and Static Web Apps with CI/CD automation.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 10
12+
content: |
13+
[!include[](includes/5-deploy-data-api-builder-azure-services.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.recommend-azure-monitor-configurations
3+
title: Recommend Azure Monitor configurations
4+
metadata:
5+
title: Recommend Azure Monitor configurations
6+
description: Learn how to configure Azure Monitor, Application Insights, and Log Analytics for monitoring Data API Builder deployments.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 10
12+
content: |
13+
[!include[](includes/6-recommend-azure-monitor-configurations.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.handle-changes-event-driven-patterns
3+
title: Handle changes with event-driven patterns
4+
metadata:
5+
title: Handle changes with event-driven patterns
6+
description: Learn how to handle database changes using Change Data Capture, Change Tracking, Azure Functions SQL triggers, and Change Event Streaming.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 12
12+
content: |
13+
[!include[](includes/7-handle-changes-event-driven-patterns.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.exercise-data-api-builder
3+
title: Exercise - Configure Data API Builder for a product catalog
4+
metadata:
5+
title: Exercise - Configure Data API Builder for a product catalog
6+
description: Hands-on exercise for creating a Data API Builder configuration with entities, relationships, and REST/GraphQL endpoints.
7+
ms.date: 02/05/2026
8+
author: JulianePadrao
9+
ms.author: jupadrao
10+
ms.topic: unit
11+
durationInMinutes: 30
12+
content: |
13+
[!include[](includes/8-exercise-data-api-builder.md)]
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.wwl.integrate-sql-solutions-azure-services.knowledge-check
3+
title: Module assessment
4+
metadata:
5+
ai_generated_module_assessment: true
6+
title: Module assessment
7+
description: Knowledge check for integrating SQL solutions with Azure services using Data API Builder
8+
ms.date: 02/05/2026
9+
author: JulianePadrao
10+
ms.author: jupadrao
11+
ms.topic: unit
12+
module_assessment: false
13+
azureSandbox: false
14+
labModal: false
15+
durationInMinutes: 5
16+
quiz:
17+
questions:
18+
- content: "You're creating a Data API Builder configuration and need to store the database connection string securely without hardcoding it. Which approach should you use?"
19+
choices:
20+
- content: "Store the connection string directly in the dab-config.json file for easy access"
21+
isCorrect: false
22+
explanation: "Incorrect. Storing connection strings directly in configuration files exposes credentials in source control and is a security risk."
23+
- content: "Use the @env() syntax to reference an environment variable containing the connection string"
24+
isCorrect: true
25+
explanation: "Correct. The @env() syntax allows you to reference environment variables, keeping sensitive credentials out of configuration files and source control."
26+
- content: "Create a separate credentials.json file and import it into the configuration"
27+
isCorrect: false
28+
explanation: "Incorrect. Data API Builder doesn't support importing separate credential files. Environment variable references are the recommended approach."
29+
- content: "Encrypt the connection string using Base64 encoding before adding it to the configuration"
30+
isCorrect: false
31+
explanation: "Incorrect. Base64 encoding isn't encryption and provides no security. Environment variable references with proper secret management are the correct approach."
32+
- content: "A development team wants to ensure their Data API Builder entity only allows clients to retrieve data, not modify it. Which permission configuration achieves this?"
33+
choices:
34+
- content: "Configure permissions with only the 'read' action for the appropriate roles"
35+
isCorrect: true
36+
explanation: "Correct. Setting permissions to only include the 'read' action restricts the entity to read-only operations, preventing create, update, and delete actions."
37+
- content: "Set the source type to 'view' which automatically prevents all write operations"
38+
isCorrect: false
39+
explanation: "Incorrect. While views are often read-only, the source type alone doesn't control permissions. You must explicitly configure permissions to restrict actions."
40+
- content: "Disable REST and only enable GraphQL with operation set to 'mutation'"
41+
isCorrect: false
42+
explanation: "Incorrect. Setting operation to 'mutation' indicates write operations, which is the opposite of read-only. Use 'query' for read operations and configure permissions appropriately."
43+
- content: "Use the 'anonymous' role which only supports read operations by default"
44+
isCorrect: false
45+
explanation: "Incorrect. The 'anonymous' role doesn't have default permissions. You must explicitly define which actions each role can perform."
46+
- content: "Your organization is deploying Data API Builder to production and needs to use managed identity for database authentication. Which Azure hosting option supports this requirement while also providing automatic scaling based on request volume?"
47+
choices:
48+
- content: "Azure Virtual Machines with autoscale sets"
49+
isCorrect: false
50+
explanation: "Incorrect. While VMs support managed identity, they require manual configuration and don't provide the same level of managed scaling as container-based services."
51+
- content: "Azure Container Apps with system-assigned managed identity"
52+
isCorrect: true
53+
explanation: "Correct. Azure Container Apps supports managed identity for secure database authentication and provides automatic scaling from zero based on HTTP request volume."
54+
- content: "Azure Functions consumption plan"
55+
isCorrect: false
56+
explanation: "Incorrect. While Azure Functions supports managed identity and scaling, Data API Builder runs as a container or standalone process, not as a Functions app."
57+
- content: "Azure Static Web Apps database connections"
58+
isCorrect: false
59+
explanation: "Incorrect. While Static Web Apps has built-in DAB integration, it has limitations compared to standalone deployments and can't support all managed identity scenarios."
60+
- content: "You need to monitor your Data API Builder deployment and create alerts when the 95th percentile response time exceeds 2 seconds. Which Azure service and query approach should you use?"
61+
choices:
62+
- content: "Azure Monitor metrics with a threshold alert on average response time"
63+
isCorrect: false
64+
explanation: "Incorrect. Average response time doesn't capture the 95th percentile. You need log-based queries in Application Insights to calculate percentile metrics."
65+
- content: "Application Insights with a Kusto query using the percentile() function on request duration"
66+
isCorrect: true
67+
explanation: "Correct. Application Insights captures request telemetry, and Kusto queries with percentile(duration, 95) let you create alerts based on the 95th percentile latency."
68+
- content: "Log Analytics with container CPU metrics"
69+
isCorrect: false
70+
explanation: "Incorrect. CPU metrics don't measure response time. You need Application Insights request telemetry to track API response durations."
71+
- content: "Azure Monitor health probes configured with a 2-second timeout"
72+
isCorrect: false
73+
explanation: "Incorrect. Health probes check availability, not response time distribution. You need Application Insights analytics for percentile-based monitoring."

0 commit comments

Comments
 (0)