Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ You can monitor prebuild status in several ways:
- Click on "View all" to see prebuild status

2. **Codespaces Settings**:
- Visit [github.com/codespaces](https://github.com/codespaces)
- Visit [github.com/codespaces][github-codespaces]
- Check the "Repository prebuilds" section
- View build logs and status

Expand Down Expand Up @@ -273,7 +273,7 @@ The `devcontainer.json` includes specific Jupyter settings to ensure proper kern
]
```

For more details on kernel configuration in VS Code, see: [VS Code Issue #130946](https://github.com/microsoft/vscode/issues/130946#issuecomment-1899389049)
For more details on kernel configuration in VS Code, see: [VS Code Issue #130946][vscode-issue-130946]

## 🛠️ Troubleshooting

Expand Down Expand Up @@ -386,3 +386,8 @@ When modifying the dev container setup:
---

*This dev container configuration is optimized for Azure API Management samples development with fast startup times and comprehensive tooling support.*



[github-codespaces]: https://github.com/codespaces
[vscode-issue-130946]: https://github.com/microsoft/vscode/issues/130946#issuecomment-1899389049
6 changes: 5 additions & 1 deletion .vscode/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## Fixing Pylance unresolved import warnings

Follow [this documentation](https://github.com/microsoft/pylance-release/blob/main/TROUBLESHOOTING.md#unresolved-import-warnings).
Follow [this documentation][pylance-troubleshooting].



[pylance-troubleshooting]: https://github.com/microsoft/pylance-release/blob/main/TROUBLESHOOTING.md#unresolved-import-warnings
111 changes: 74 additions & 37 deletions README.md

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion assets/diagrams/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# PlantUML Diagrams

This directory contains PlantUML diagrams for the Azure API Management architecture.
Azure Symbols are on [GitHub](https://github.com/plantuml-stdlib/Azure-PlantUML/blob/master/AzureSymbols.md)
Azure Symbols are on [GitHub][azure-symbols].

## Using PlantUML in VS Code

Expand Down Expand Up @@ -46,3 +46,7 @@ If you encounter issues with PlantUML:
3. **Alternative Rendering**:
- If local rendering fails, try using the PlantUML server:
- Change "plantuml.render" setting to "PlantUMLServer"



[azure-symbols]: https://github.com/plantuml-stdlib/Azure-PlantUML/blob/master/AzureSymbols.md
9 changes: 7 additions & 2 deletions infrastructure/afd-apim-pe/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,15 @@ Secure architecture that takes all traffic off the public Internet once Azure Fr

## ⚙️ Configuration

Adjust the `user-defined parameters` in this lab's Jupyter Notebook's [Initialize notebook variables](./create.ipynb#initialize-notebook-variables) section.
Adjust the `user-defined parameters` in this lab's Jupyter Notebook's [Initialize notebook variables][init-notebook-variables] section.

## ▶️ Execution

👟 **Expected *Run All* runtime: ~13 minutes**

1. Execute this lab's [Jupyter Notebook](./create.ipynb) step-by-step or via _Run All_.
1. Execute this lab's [Jupyter Notebook][infra-notebook] step-by-step or via _Run All_.



[init-notebook-variables]: ./create.ipynb#initialize-notebook-variables
[infra-notebook]: ./create.ipynb
9 changes: 7 additions & 2 deletions infrastructure/apim-aca/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,15 @@ This architecture secures API traffic by routing requests through Azure API Mana

## ⚙️ Configuration

Adjust the `user-defined parameters` in this lab's Jupyter Notebook's [Initialize notebook variables](./create.ipynb#initialize-notebook-variables) section.
Adjust the `user-defined parameters` in this lab's Jupyter Notebook's [Initialize notebook variables][init-notebook-variables] section.

## ▶️ Execution

👟 **Expected *Run All* runtime: ~5 minutes**

1. Execute this lab's [Jupyter Notebook](./create.ipynb) step-by-step or via _Run All_.
1. Execute this lab's [Jupyter Notebook][infra-notebook] step-by-step or via _Run All_.



[init-notebook-variables]: ./create.ipynb#initialize-notebook-variables
[infra-notebook]: ./create.ipynb
9 changes: 7 additions & 2 deletions infrastructure/simple-apim/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,15 @@ This architecture provides a basic API gateway using Azure API Management, suita

## ⚙️ Configuration

Adjust the `user-defined parameters` in this lab's Jupyter Notebook's [Initialize notebook variables](./create.ipynb#initialize-notebook-variables) section.
Adjust the `user-defined parameters` in this lab's Jupyter Notebook's [Initialize notebook variables][init-notebook-variables] section.

## ▶️ Execution

👟 **Expected *Run All* runtime: ~3 minutes**

1. Execute this lab's [Jupyter Notebook](./create.ipynb) step-by-step or via _Run All_.
1. Execute this lab's [Jupyter Notebook][infra-notebook] step-by-step or via _Run All_.



[infra-notebook]: ./create.ipynb
[init-notebook-variables]: ./create.ipynb#initialize-notebook-variables
11 changes: 8 additions & 3 deletions samples/azure-maps/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ This lab sets up:

## ⚙️ Configuration

1. Decide which of the [Infrastructure Architectures](../../README.md#infrastructure-architectures) you wish to use.
1. If the infrastructure _does not_ yet exist, navigate to the desired [infrastructure](../../infrastructure/) folder and follow its README.md.
1. If the infrastructure _does_ exist, adjust the `user-defined parameters` in the _Initialize notebook variables_ below. Please ensure that all parameters match your infrastructure.
1. Decide which of the [Infrastructure Architectures][infrastructure-architectures] you wish to use.
1. If the infrastructure _does not_ yet exist, navigate to the desired [infrastructure][infrastructure-folder] folder and follow its README.md.
1. If the infrastructure _does_ exist, adjust the `user-defined parameters` in the _Initialize notebook variables_ below. Please ensure that all parameters match your infrastructure.



[infrastructure-architectures]: ../../README.md#infrastructure-architectures
[infrastructure-folder]: ../../infrastructure/
8 changes: 6 additions & 2 deletions samples/general/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Sets up a simple APIM instance with a variety of policies to experiment.

## 🎯 Objectives

1. Experience a variety of policies in any of the infrastructure architectures. You may see several examples from our [APIM policy snippets repo](https://github.com/Azure/api-management-policy-snippets).
1. Experience a variety of policies in any of the infrastructure architectures. You may see several examples from our [APIM policy snippets repo][apim-policy-snippets].
1. Become proficient with how policies operate.
1. Gain confidence in setting up and configuring policies appropriately.

Expand All @@ -22,4 +22,8 @@ Sets up a simple APIM instance with a variety of policies to experiment.
## ⚙️ Configuration

1. Decide which of the [Infrastructure Architectures](../../README.md#infrastructure-architectures) you wish to use.
1. Press `Run All` in this sample's `create.ipynb` notebook.
1. Press `Run All` in this sample's `create.ipynb` notebook.



[apim-policy-snippets]: https://github.com/Azure/api-management-policy-snippets
21 changes: 15 additions & 6 deletions samples/oauth-3rd-party/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Samples: OAuth 2.0 with 3rd Party

Sets up a 3rd party integration via [Azure API Management Credential Manager](https://learn.microsoft.com/azure/api-management/credentials-overview).
Sets up a 3rd party integration via [Azure API Management Credential Manager][apim-credential-manager].

***This sample has prerequisites! Please follow the instructions below.***

Expand All @@ -19,7 +19,7 @@ Sets up a 3rd party integration via [Azure API Management Credential Manager](ht

## 📝 Scenario

We chose Spotify as it provides an extensive [REST API](https://developer.spotify.com/documentation/web-api) and has relatively generous limits on free API access. This makes for a relatively straight-forward experience for this sample.
We chose Spotify as it provides an extensive [REST API][spotify-rest-api] and has relatively generous limits on free API access. This makes for a relatively straight-forward experience for this sample.
Specifically, this sample uses Spotify's REST API to obtain information about its deep music and artist catalog. API Management is registered as an application in Spotify's applications with its own client ID and client secret for a given scope. This application is then set up as a generic OAuth 2.0 integration in Credential Manager.
Furthermore, we build on the knowledge gained from the _AuthX_ and _AuthX-Pro_ samples to authentication callers and authorize their use of the Spotify integration.

Expand All @@ -42,17 +42,17 @@ This sample requires a little bit of manual pre-work in order to create a high-f

### A Spotify Account

1. You can use your existing Spotify account or sign up for a new one [here](https://www.spotify.com/us/signup). Please ensure you adhere to Spotify's terms & conditions of use.
1. You can use your existing Spotify account or sign up for a new one [here][spotify-signup]. Please ensure you adhere to Spotify's terms & conditions of use.

### A Spotify Application

In order for API Management to gain access to Spotify's API, we need to create an application that represents API Management.

1. Open or log into the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard).
1. Open or log into the [Spotify Developer Dashboard][spotify-dashboard].
1. Review and accept the _Spotify Developer Terms of Service_, if required.
1. Proceed with verifying your email address, if required.
1. If the Dashboard does not open immediately, select it from the menu after clicking on your profile name (top-right corner).
1. [Create the app](https://developer.spotify.com/dashboard/create):
1. [Create the app][spotify-create-app]:
- **App Name**: _APIM_
- **App Description**: _API Management_
- **Redirect URIs**: https://localhost:8080/callback
Expand All @@ -64,4 +64,13 @@ In order for API Management to gain access to Spotify's API, we need to create a

## Acknowledgement

We thank [Spotify](https://www.spotify.com) for access to their API. Keep building great products!
We thank [Spotify][spotify] for access to their API. Keep building great products!



[apim-credential-manager]: https://learn.microsoft.com/azure/api-management/credentials-overview
[spotify]: https://www.spotify.com
[spotify-create-app]: https://developer.spotify.com/dashboard/create
[spotify-dashboard]: https://developer.spotify.com/dashboard
[spotify-rest-api]: https://developer.spotify.com/documentation/web-api
[spotify-signup]: https://www.spotify.com/signup
6 changes: 5 additions & 1 deletion samples/secure-blob-access/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This sample demonstrates implementing the **valet key pattern** with Azure API M

## 🎯 Objectives

1. Learn how the [valet key pattern](https://learn.microsoft.com/azure/architecture/patterns/valet-key) works.
1. Learn how the [valet key pattern][valet-key-pattern] works.
1. Understand how APIM provides the SAS token for direct download from storage.
1. Experience how you can secure the caller from APIM with your own mechanisms and use APIM's managed identity to interact with Azure Storage.

Expand All @@ -28,3 +28,7 @@ This lab sets up:
- APIM managed identity with Storage Blob Data Reader permissions
- An API that generates secure blob access URLs using the valet key pattern
- Sample files: a text file for testing



[valet-key-pattern]: https://learn.microsoft.com/azure/architecture/patterns/valet-key
Loading