You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+44-42Lines changed: 44 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,38 +14,6 @@ _If you are interested in APIM & Azure OpenAI integrations, please check out the
14
14
15
15
_Try it out, learn from it, apply it in your setups._
16
16
17
-
## Repo Structure
18
-
19
-
### High-level
20
-
21
-
- All _samples_ can be found in the `samples` folder. Samples showcase functionality and provide a baseline for your experimentation.
22
-
- All _infrastructures_ can be found in the `infrastructure` folder. They provide the architectural underpinnings.
23
-
- All shared code, modules, functionality, policies, etc. can be found in the `shared` folder.
24
-
- Bicep _modules_ are versioned in the `bicep/modules` folder. Major changes require versioning.
25
-
- Python _modules_ are found in the `python` folder. _They are not versioned yet but may be in the future._
26
-
- Reusable _APIM policies_ are found in the `apim-policies` folder.
27
-
- Reusable Jupyter notebooks are found in the `jupyter` folder.
28
-
29
-
### Sample Setup
30
-
31
-
- Each sample uses an architecture infrastructure. This keeps the samples free of almost all setup.
32
-
- Each infrastructure and sample features a `create.ipynb` for creation (and running) of the sample setup and a `main.bicep` file for IaC configuration.
33
-
- Each infrastructure contains a `clean-up.ipynb` file to tear down everything in the infrastructure and its resource group. This reduces your Azure cost.
34
-
- Samples (and infrastructures) may contain additional files specific to their use cases.
35
-
36
-
### Infrastructure Architectures
37
-
38
-
We provide several common architectural approaches to integrating APIM into your Azure ecosystem. While these are high-fidelity setups, they are not production-ready. Please refer to the [Azure API Management landing zone accelerator](https://learn.microsoft.com/azure/cloud-adoption-framework/scenarios/app-platform/api-management/landing-zone-accelerator) for up-to-date production setups.
39
-
40
-
-[Simple API Management](./infrastructure/simple-apim) (simple-apim)
41
-
- Just the basics with a publicly accessible API Management intance fronting your APIs. This is the innermost way to experience and experiment with the APIM policies.
- APIs are often times implemented in containers that are running in Azure Container Apps. This architecture accesses the container apps publicly. It's beneficial to test both APIM and container app URLs here to contrast and compare experiences of API calls through and bypassing APIM. It is not intended to be a security baseline.
45
-
46
-
-[Secure Front Door & API Management & Container Apps](./infrastructure/afd-apim) (afd-apim)
47
-
- A higher-fidelity implementation of a secured setup in which Azure Front Door connects to APIM via the new private link integration. This traffic, once it traverses through Front Door, rides entirely on Microsoft-owned and operated networks. Similarly, the connection from APIM to Container Apps is secured but through a VNet configuration (it is also entirely possible to do this via private link). It's noteworthy that we are using APIM Standard V2 here as we need the ability to accept a private link from Front Door.
48
-
49
17
---
50
18
51
19
## Getting Started
@@ -90,17 +58,39 @@ The first time you run a Jupyter notebook, you'll be asked to install the Jupyte
90
58
91
59
Now that infrastructure and sample have been stood up, you can experiment with the policies, make requests against APIM, etc.
92
60
93
-
### Adding a Sample
61
+
---
94
62
95
-
Adding a new sample is relatively straight-forward.
63
+
## Repo Structure
96
64
97
-
1. Create a new feature branch for the new sample.
98
-
1. Copy the `/samples/_TEMPLATE` folder.
99
-
1. Rename the copied folder to a name representative of the sample (e.g. "load-balancing", "authX", etc.)
100
-
1. Change the `create.ipynb` and `main.bicep` files. Look for the brackets (`[ ]`) brackets for specific inputs.
101
-
1. Add any policy.xml files to the same folder if they are specific to this sample. If they are to be reused, place them into the `/shared/apim-policies` folder instead.
102
-
1. Test the sample with all supported infrastructures.
103
-
1. Create a pull request for merge.
65
+
### High-level
66
+
67
+
- All _samples_ can be found in the `samples` folder. Samples showcase functionality and provide a baseline for your experimentation.
68
+
- All _infrastructures_ can be found in the `infrastructure` folder. They provide the architectural underpinnings.
69
+
- All shared code, modules, functionality, policies, etc. can be found in the `shared` folder.
70
+
- Bicep _modules_ are versioned in the `bicep/modules` folder. Major changes require versioning.
71
+
- Python _modules_ are found in the `python` folder. _They are not versioned yet but may be in the future._
72
+
- Reusable _APIM policies_ are found in the `apim-policies` folder.
73
+
- Reusable Jupyter notebooks are found in the `jupyter` folder.
74
+
75
+
### Sample Setup
76
+
77
+
- Each sample uses an architecture infrastructure. This keeps the samples free of almost all setup.
78
+
- Each infrastructure and sample features a `create.ipynb` for creation (and running) of the sample setup and a `main.bicep` file for IaC configuration.
79
+
- Each infrastructure contains a `clean-up.ipynb` file to tear down everything in the infrastructure and its resource group. This reduces your Azure cost.
80
+
- Samples (and infrastructures) may contain additional files specific to their use cases.
81
+
82
+
### Infrastructure Architectures
83
+
84
+
We provide several common architectural approaches to integrating APIM into your Azure ecosystem. While these are high-fidelity setups, they are not production-ready. Please refer to the [Azure API Management landing zone accelerator](https://learn.microsoft.com/azure/cloud-adoption-framework/scenarios/app-platform/api-management/landing-zone-accelerator) for up-to-date production setups.
85
+
86
+
-[Simple API Management](./infrastructure/simple-apim) (simple-apim)
87
+
- Just the basics with a publicly accessible API Management intance fronting your APIs. This is the innermost way to experience and experiment with the APIM policies.
- APIs are often times implemented in containers that are running in Azure Container Apps. This architecture accesses the container apps publicly. It's beneficial to test both APIM and container app URLs here to contrast and compare experiences of API calls through and bypassing APIM. It is not intended to be a security baseline.
91
+
92
+
-[Secure Front Door & API Management & Container Apps](./infrastructure/afd-apim) (afd-apim)
93
+
- A higher-fidelity implementation of a secured setup in which Azure Front Door connects to APIM via the new private link integration. This traffic, once it traverses through Front Door, rides entirely on Microsoft-owned and operated networks. Similarly, the connection from APIM to Container Apps is secured but through a VNet configuration (it is also entirely possible to do this via private link). It's noteworthy that we are using APIM Standard V2 here as we need the ability to accept a private link from Front Door.
104
94
105
95
---
106
96
@@ -110,7 +100,19 @@ As you work with this repo, you will likely want to make your own customizations
110
100
111
101
The repo uses the bicep linter and has rules defined in `bicepconfig.json`. See the [bicep linter documentation](https://learn.microsoft.com/azure/azure-resource-manager/bicep/bicep-config-linter) for details.
112
102
113
-
We welcome contributions! Please consider forking the repo and creating issues and pull requests to share your samples. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details. Thank you!
103
+
**We welcome contributions!** Please consider forking the repo and creating issues and pull requests to share your samples. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details. Thank you!
104
+
105
+
### Adding a Sample
106
+
107
+
Adding a new sample is relatively straight-forward.
108
+
109
+
1. Create a new feature branch for the new sample.
110
+
1. Copy the `/samples/_TEMPLATE` folder.
111
+
1. Rename the copied folder to a name representative of the sample (e.g. "load-balancing", "authX", etc.)
112
+
1. Change the `create.ipynb` and `main.bicep` files. Look for the brackets (`[ ]`) brackets for specific inputs.
113
+
1. Add any policy.xml files to the same folder if they are specific to this sample. If they are to be reused, place them into the `/shared/apim-policies` folder instead.
114
+
1. Test the sample with all supported infrastructures.
0 commit comments