I have a REST point say xyz.com/getValues as a back end service. This is not a resouce of azure. I can call this end point from postman with proper BODY as a POST request. It works generally fine. Now I have got an OPEN API specification for this and I imported onto Azure API management. I set the backend service to xyz.com. But while testing it, I received 500 Internal server error. And in traces I found below error.
forward-request (139.450 ms)
{
"messages": [
"Error occured while calling backend service.",
"The remote name could not be resolved: 'xyz.com'"
]
}
There are some points I would like to mention.
I am using consumption tier of Azure API management.
xyz.com is not a public service. It is just an application deployed in company network.
I need suggestion on how to reach this as a solution. I am doing a POC and new to Azure API Management. Any help would be appreciated.
Thank you Melissa. Posting your suggestions as answer to help other community members.
Need to put non-azure API's into VNET and then you can use that in APIM on azure
We can use Non Azure APIM's
Azure Arc enabled API Management allows customers to leverage a self-hosted API gateway, that expands API Management support for hybrid and multi-cloud environments and enables Azure customers to efficiently and securely manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
Click Here for VNET configuration with APIM
Check Non-Azure APIM to use APIs
Open the SO for further inputs.
Related
So, I was following this tutorial and successfully published the web API to both Azure App Service and Azure API Management. Then (going beyond tutorial) I added a rate-limit policy to the API in API Management service.
I tested it successfully on API management Test tab. However, if I access the App Service route URL (https://***.azurewebsites.net/) it will not throttle.
What am I missing here?
How do I make the policy active for the App Service URL?
Markus Meyer did a good job explaining how it's supposed to be used.
I think that you might benefit from this diagram showing the differences between calling your service through APIM or directly.
"What am I missing here?"
I think you're missing that API Management is a service, totally separate from you App Service. You do not "extend" the features of the App Service with APIM, you instead put APIM infront of your App Service and call your API through APIM to gain the benefits (of rate limiting in this example).
Requests to https://***.azurewebsites.net/ belong to Azure App Service.
If you want to do requests to API Management, the default hostname is azure-api.net:
https://***.azure-api.net/
If you want to use throttling from API Management, you have to the API Management URL like you did in the test tab:
I need to add pages (kind of static web pages) in Azure APIM Developer Portal to display documentation. Is there any tutorial to explain how to achieve it?
Is there a way I can read the text content from REST API calls and populate the pages in Dev portal?
I believe the issue is more or less similar to this where you are trying to update documentation properly at Azure Api Managment developer portal.
In that case, as mentioned in the thread, you can try with swagger but in APIM portal it might not work immediately. Microsoft product team has confirmed that they working on improvig support for OpenAPIv3. The ETA is about end of September.
However, you may also check the self-hosted gateway feature
The self-hosted gateway feature expands API Management support for hybrid and multi-cloud environments and enables organizations to efficiently and securely manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
Overview
I am looking for scalable hosting for an API but I am getting a little confused with Azure. Ideally I want something that means I don't have to manage OS updates and security, just deploy my API code.
Is this possible with Azure? What do I need to sign up for?
In general, you are looking for the Platform as a service offer. Check What is PaaS?. For the API deployment you should check the Azure App Services. Azure API Management is for advanced API management or when you want to expose multiple APIs using a single gateway.
In a multi region azure api management setup there is two different subscription keys for same api. What is the best practice client must use to pass api subscription keys so that api call works properly even if request is processed by any of the apim instance in multiregion setup.
below is response from microsoft
https://feedback.azure.com/forums/248703-api-management/suggestions/34340350-subscription-key-client-should-pass-for-api-deploy
I am new to AZure , I am just trying the few services of Azure. So, I have created one REst Service Application and now I want to add it in Azure APi Management Service. Its asking for Web Public API URL/Suffix . How I will get it ?
In the Azure API Management, the suffix is your public facing URI. It appends to https://myAPIexampleManagement.azure-api.net/.
In this case for developers to access your service which is located at http://my.backend.service.io (Your REST application) they would have to address to https://myAPIexampleManagement.azure-api.net/root
In conclusion, your Web API URL suffix can be whatever you want it to be.