Skip to content

Commit f57ce87

Browse files
Merge pull request #112394 from vladvino/sputnik-ga
APIM: self-hosted API gateway changes
2 parents b73c416 + d32f5cb commit f57ce87

34 files changed

+666
-278
lines changed

.openpublishing.redirection.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32081,6 +32081,16 @@
3208132081
"redirect_url": "/azure/api-management/mock-api-responses",
3208232082
"redirect_document_id": false
3208332083
},
32084+
{
32085+
"source_path": "articles/api-management/api-management-howto-deploy-self-hosted-gateway-to-k8s.md",
32086+
"redirect_url": "/azure/api-management/how-to-deploy-self-hosted-gateway-kubernetes",
32087+
"redirect_document_id": false
32088+
},
32089+
{
32090+
"source_path": "articles/api-management/api-management-howto-deploy-self-hosted-gateway-to-docker.md",
32091+
"redirect_url": "/azure/api-management/how-to-deploy-self-hosted-gateway-docker",
32092+
"redirect_document_id": false
32093+
},
3208432094
{
3208532095
"source_path": "articles/container-service/kubernetes/container-service-deploy-spring-boot-app-on-kubernetes.md",
3208632096
"redirect_url": "/java/azure/spring-framework/deploy-spring-boot-java-app-on-kubernetes",

articles/api-management/TOC.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,14 @@
102102
href: api-management-howto-deploy-multi-region.md
103103
- name: Provision a self-hosted gateway
104104
href: api-management-howto-provision-self-hosted-gateway.md
105+
- name: Deploy a self-hosted gateway to Azure Kubernetes Service
106+
href: how-to-deploy-self-hosted-gateway-azure-kubernetes-service.md
105107
- name: Deploy a self-hosted gateway to Kubernetes
106-
href: api-management-howto-deploy-self-hosted-gateway-to-k8s.md
108+
href: how-to-deploy-self-hosted-gateway-kubernetes.md
107109
- name: Deploy a self-hosted gateway to Docker
108-
href: api-management-howto-deploy-self-hosted-gateway-to-docker.md
110+
href: how-to-deploy-self-hosted-gateway-docker.md
109111
- name: Configure custom domain for self-hosted gateway
110-
href: api-management-howto-configure-custom-domain-gateway.md
112+
href: api-management-howto-configure-custom-domain-gateway.md
111113
- name: Cache
112114
items:
113115
- name: Add caching to improve performance
@@ -218,6 +220,12 @@
218220
href: api-management-howto-log-event-hubs.md
219221
- name: Log requests with Azure Application Insights
220222
href: api-management-howto-app-insights.md
223+
- name: Configure cloud metrics and logs for self-hosted gateway
224+
href: how-to-configure-cloud-metrics-logs.md
225+
- name: Configure local metrics and logs for self-hosted gateway
226+
href: how-to-configure-local-metrics-logs.md
227+
- name: Log requests with Azure Application Insights
228+
href: api-management-howto-app-insights.md
221229
- name: Set up DR using backup/restore
222230
href: api-management-howto-disaster-recovery-backup-restore.md
223231
- name: Manage user accounts

articles/api-management/add-api-manually.md

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.service: api-management
1111
ms.workload: mobile
1212
ms.tgt_pltfrm: na
1313
ms.topic: tutorial
14-
ms.date: 08/27/2018
14+
ms.date: 04/20/2020
1515
ms.author: apimpm
1616

1717
---
@@ -32,24 +32,14 @@ Complete the following quickstart: [Create an Azure API Management instance](get
3232

3333
## Create an API
3434

35-
1. Select **APIs** from under **API MANAGEMENT**.
35+
1. Navigate to your API Management service in the Azure portal and select **APIs** from the menu.
3636
2. From the left menu, select **+ Add API**.
37-
3. Select **Blank API** from the list.
38-
39-
![Blank API](media/add-api-manually/blank-api.png)
40-
4. Enter settings for the API.
41-
42-
|**Name**|**Value**|**Description**|
43-
|---|---|---|
44-
|**Display name**|*Blank API*|This name is displayed in the Developer portal.|
45-
|**Name**|*blank-api*|Provides a unique name for the API.|
46-
|**Web Service URL** (optional)|*https://httpbin.org*| If you want to mock an API, you might not enter anything. <br/>In this case, we enter [https://httpbin.org](https://httpbin.org). This is a public testing service. <br/>If you want to import an API that is mapped to a back end automatically, see one of the topics in the [related topics](#related-topics) section.|
47-
|**URL scheme**|*HTTPs*|In this case, even though the back end has non-secure HTTP access, we specify a secure HTTPS APIM access to the back end. <br/>This kind of scenario (HTTPS to HTTP) is called HTTPS termination. You might do it if your API exists within a virtual network (where you know the access is secure even if HTTPS is not used). <br/>You might want to use "HTTPS termination" to save on some CPU cycles.|
48-
|**URL suffix**|*hbin*| The suffix is a name that identifies this specific API in this APIM instance. It has to be unique in this APIM instance.|
49-
|**Products**|*Unlimited*|Publish the API by associating the API with a product. If you want for the API to be published and be available to developers, add it to a product. You can do it during API creation or set it later.<br/><br/>Products are associations of one or more APIs. You can include a number of APIs and offer them to developers through the developer portal. <br/>Developers must first subscribe to a product to get access to the API. When they subscribe, they get a subscription key that is good for any API in that product. If you created the APIM instance, you are an administrator already, so you are subscribed to every product by default.<br/><br/> By default, each API Management instance comes with two sample products: **Starter** and **Unlimited**.|
37+
3. Select **Blank API** from the list.
38+
![Blank API](media/add-api-manually/blank-api.png)
39+
4. Enter settings for the API. The settings are explained in the [Import and publish your first API](import-and-publish.md#-import-and-publish-a-backend-api) tutorial.
5040
5. Select **Create**.
5141

52-
At this point, you have no operations in APIM that map to the operations in your back-end API. If you call an operation that is exposed through the back end but not through the APIM, you get a **404**.
42+
At this point, you have no operations in API Management that map to the operations in your back-end API. If you call an operation that is exposed through the back end but not through the API Management, you get a **404**.
5343

5444
>[!NOTE]
5545
> By default, when you add an API, even if it is connected to some back-end service, APIM will not expose any operations until you whitelist them. To whitelist an operation of your back-end service, create an APIM operation that maps to the back-end operation.

articles/api-management/api-management-features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,4 @@ Each API Management [pricing tier](https://aka.ms/apimpricing) offers a distinct
4343

4444
<sup>1</sup> Enables the use of Azure AD (and Azure AD B2C) as an identity provider for user sign in on the developer portal.<br/>
4545
<sup>2</sup> Including related functionality e.g. users, groups, issues, applications and email templates and notifications.<br/>
46-
<sup>3</sup> Limited to a single self-hosted gateway deployment with a single gateway node.<br/>
46+
<sup>3</sup> In the Developer tier self-hosted gateways are limited to single gateway node.<br/>

articles/api-management/api-management-howto-cache-external.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,23 @@ editor: ''
99

1010
ms.assetid: 740f6a27-8323-474d-ade2-828ae0c75e7a
1111
ms.service: api-management
12-
ms.workload: mobile
13-
ms.tgt_pltfrm: na
1412
ms.topic: conceptual
15-
ms.date: 05/15/2019
13+
ms.date: 04/26/2020
1614
ms.author: apimpm
1715

1816
---
1917

20-
# Use an external Azure Cache for Redis in Azure API Management
18+
# Use an external Redis-compatible cache in Azure API Management
2119

22-
In addition to utilizing the built-in cache, Azure API Management also allows for caching responses in an external Azure Cache for Redis.
20+
In addition to utilizing the built-in cache, Azure API Management allows for caching responses in an external Redis-compatible cache, e.g. Azure Cache for Redis.
2321

24-
Using an external cache allows to overcome a few limitations of the built-in cache. It is especially beneficial if you would like to:
22+
Using an external cache allows to overcome a few limitations of the built-in cache:
2523

2624
* Avoid having your cache periodically cleared during API Management updates
2725
* Have more control over your cache configuration
2826
* Cache more data than your API Management tier allows to
2927
* Use caching with the Consumption tier of API Management
28+
* Enable caching in the [API Management self-hosted gateways](self-hosted-gateway-overview.md)
3029

3130
For more detailed information about caching, see [API Management caching policies](api-management-caching-policies.md) and [Custom caching in Azure API Management](api-management-sample-cache-by-key.md).
3231

@@ -50,14 +49,18 @@ This section explains how to create an Azure Cache for Redis in Azure. If you al
5049

5150
[!INCLUDE [redis-cache-create](../../includes/redis-cache-create.md)]
5251

52+
## <a name="create-cache"> </a> Deploy Redis cache to Kubernetes
53+
54+
For caching, self-hosted gateways rely exclusively on external caches. For caching to be effective self-hosted gateways and the cache they rely on must be located close to each other to minimize lookup and store latencies. Deploying a Redis cache into the same Kubernetes cluster or in a separate cluster nearby are the best options. Follow this [link](https://github.com/kubernetes/examples/tree/master/guestbook) to learn how to deploy Redis cache to a Kubernetes cluster.
55+
5356
## <a name="add-external-cache"> </a>Add an external cache
5457

5558
Follow the steps below to add an external Azure Cache for Redis in Azure API Management.
5659

5760
![Bring your own cache to APIM](media/api-management-howto-cache-external/add-external-cache.png)
5861

5962
> [!NOTE]
60-
> The **Use from** setting specifies which API Management regional deployment will communicate with the configured cache in case of a multi-regional configuration of API Management. The caches specified as **Default** will be overridden by caches with a regional value.
63+
> The **Use from** setting specifies an Azure region or a self-hosted gateway location that will use the configured cache. The caches configured as **Default** will be overridden by caches with a specific matching region or location value.
6164
>
6265
> For example, if API Management is hosted in the East US, Southeast Asia and West Europe regions and there are two caches configured, one for **Default** and one for **Southeast Asia**, API Management in **Southeast Asia** will use its own cache, while the other two regions will use the **Default** cache entry.
6366
@@ -80,6 +83,16 @@ Follow the steps below to add an external Azure Cache for Redis in Azure API Man
8083
6. Provide your Azure Cache for Redis connection string in the **Connection string** field.
8184
7. Click **Save**.
8285

86+
### Add a Redis cache to a self-hosted gateway
87+
88+
1. Browse to your API Management instance in the Azure portal.
89+
2. Select the **External cache** tab from the menu on the left.
90+
3. Click the **+ Add** button.
91+
4. Select **Custom** in the **Cache instance** dropdown field.
92+
5. Specify the desired self-hosted gateway location or **Default** in the **Use from** dropdown field.
93+
6. Provide your Redis cache connection string in the **Connection string** field.
94+
7. Click **Save**.
95+
8396
## Use the external cache
8497

8598
Once the external cache is configured in Azure API Management, it can be used through caching policies. See [Add caching to improve performance in Azure API Management](api-management-howto-cache.md) for detailed steps.

articles/api-management/api-management-howto-configure-custom-domain-gateway.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@ editor: ''
1111
ms.service: api-management
1212
ms.workload: integration
1313
ms.topic: article
14-
ms.date: 10/31/2019
14+
ms.date: 03/31/2020
1515
ms.author: apimpm
1616
---
1717

1818
# Configure a custom domain name
1919

2020
When you provision a [self-hosted Azure API Management gateway](self-hosted-gateway-overview.md) it is not assigned host name and has to be referenced by its IP address. This article shows how to map an existing custom DNS name (also referred to as hostname) a self-hosted gateway.
2121

22-
> [!NOTE]
23-
> Self-hosted gateway feature is in preview. During the preview, the self-hosted gateway is available only in the Developer and Premium tiers at no additional charge. Developer tier is limited to a single self-hosted gateway deployment.
24-
2522
## Prerequisites
2623

2724
To perform the steps described in this article, you must have:
@@ -42,7 +39,7 @@ To perform the steps described in this article, you must have:
4239

4340
1. Select **Certificates** from under **Security**.
4441
2. Select **+ Add**.
45-
3. Enter a resource name for the certificate into **Id** field.
42+
3. Enter a resource name for the certificate into **ID** field.
4643
4. Select the file containing the certificate (.PFX) by selecting the **Certificate** field or the folder icon adjacent to it.
4744
5. Enter the password for the certificate into the **Password** field.
4845
6. Select **Create** to add the certificate to your API Management service.

articles/api-management/api-management-howto-deploy-multi-region.md

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.service: api-management
1212
ms.workload: mobile
1313
ms.tgt_pltfrm: na
1414
ms.topic: article
15-
ms.date: 08/12/2019
15+
ms.date: 04/20/2020
1616
ms.author: apimpm
1717
---
1818

@@ -27,36 +27,23 @@ A new Azure API Management service initially contains only one [unit][unit] in a
2727
2828
[!INCLUDE [premium.md](../../includes/api-management-availability-premium.md)]
2929

30-
## <a name="add-region"> </a>Deploy an API Management service instance to a new region
30+
## <a name="add-region"> </a>Deploy API Management service to a new region
3131

3232
> [!NOTE]
3333
> If you have not yet created an API Management service instance, see [Create an API Management service instance][create an api management service instance].
3434
35-
In the Azure portal, navigate to the **Scale and pricing** page for your API Management service instance.
35+
1. In the Azure portal, navigate to your API Management service and click on the **Locations** entry in the menu.
36+
2. Click **+ Add** in the top bar.
37+
3. Select the location from the drop-down list and set the number of units with the slider.
38+
4. Click the **Add** button to confirm.
39+
5. Repeat this process until you configure all locations.
40+
6. Click **Save** in the top bar to start the deployment process.
3641

37-
![Scale tab][api-management-scale-service]
42+
## <a name="remove-region"> </a>Delete an API Management service location
3843

39-
To deploy to a new region, click on **+ Add region** from the toolbar.
40-
41-
![Add region][api-management-add-region]
42-
43-
Select the location from the drop-down list and set the number of units for with the slider.
44-
45-
![Specify units][api-management-select-location-units]
46-
47-
Click **Add** to place your selection in the Locations table.
48-
49-
Repeat this process until you have all locations configured and click **Save** from the toolbar to start the deployment process.
50-
51-
## <a name="remove-region"> </a>Delete an API Management service instance from a location
52-
53-
In the Azure portal, navigate to the **Scale and pricing** page for your API Management service instance.
54-
55-
![Scale tab][api-management-scale-service]
56-
57-
For the location you would like to remove, open the context menu using the **...** button at the right end of the table. Select the **Delete** option.
58-
59-
Confirm the deletion and click **Save** to apply the changes.
44+
1. In the Azure portal, navigate to your API Management service and click on the **Locations** entry in the menu.
45+
2. For the location you would like to remove, open the context menu using the **...** button at the right end of the table. Select the **Delete** option.
46+
3. Confirm the deletion and click **Save** to apply the changes.
6047

6148
## <a name="route-backend"> </a>Route API calls to regional backend services
6249

@@ -115,11 +102,6 @@ API Management routes the requests to a regional _gateway_ based on [the lowest
115102
1. [Configure the API Management regional status endpoints in Traffic Manager](../traffic-manager/traffic-manager-monitoring.md). The regional status endpoints follow the URL pattern of `https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef`, for example `https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef`.
116103
1. Specify [the routing method](../traffic-manager/traffic-manager-routing-methods.md) of the Traffic Manager.
117104

118-
[api-management-management-console]: ./media/api-management-howto-deploy-multi-region/api-management-management-console.png
119-
[api-management-scale-service]: ./media/api-management-howto-deploy-multi-region/api-management-scale-service.png
120-
[api-management-add-region]: ./media/api-management-howto-deploy-multi-region/api-management-add-region.png
121-
[api-management-select-location-units]: ./media/api-management-howto-deploy-multi-region/api-management-select-location-units.png
122-
[api-management-remove-region]: ./media/api-management-howto-deploy-multi-region/api-management-remove-region.png
123105
[create an api management service instance]: get-started-create-service-instance.md
124106
[get started with azure api management]: get-started-create-service-instance.md
125107
[deploy an api management service instance to a new region]: #add-region

0 commit comments

Comments
 (0)