In this post, let's see how we can create/update Azure API Management APIs
from both classic release pipelines and YAML based pipelines.
Here I am assuming, We have already created Azure API Management Service in
Azure and we have set up Products.
The process is actually quite easy, thanks to this great free
extension API Management Suite by Stephane Eyskens.
First, let's have a look at how we can use this in classic release pipelines.
Once this extension is installed, you should be able to see a bunch of tasks
starting with API Management - *. From there what we need is
API Management - Create or Update API task. We just need to add this
task after the deployment of the API.
Most of the things here are pretty obvious, so I am not going to explain
each one of them. The important ones are,
- Products
- Since I have already created a product in the APIM, I can just enter the name of the Product.
- If you are creating the Product as part of the pipeline (using API Management - Create or update product task), then you need to select Product created by previous task.
- OpenAPI Specification
- The APIM needs to have access to OpenAPI specification in order to create the API. You have several options here. You need to select the version, it's format (json or yaml), any authorization needed to access the specification and the location (URL, Code or Build Artifact)
- Configuration of the API
- Here, the nice thing is you can specify the Policy. I prefer maintaining the policy in the code, so here I have just selected my policy by providing it's path.
So that's basically it. Once the API is deployed, this task will run, it
will pull down the OpenAPI specification, create/update APIM API, apply the
policy and it's all good to go.
If you prefer having deployment steps as part of YAML pipeline, we can
easily set up this task there as well. Basically something like this.
- task: stephane-eyskens.apim.apim.apim@5
displayName: 'API Management - Create/Update API '
inputs:
ConnectedServiceNameARM: ''
ResourceGroupName: ''
ApiPortalName: ''
UseProductCreatedByPreviousTask: false
product1: ''
OpenAPISpec: 'v3'
swaggerlocation: ''
targetapi: ''
DisplayName: ''
pathapi: ''
subscriptionRequired: false
TemplateSelector: Artifact
policyArtifact: '$(Pipeline.Workspace)\scripts\apim\apim-policy.xml'
MicrosoftApiManagementAPIVersion: '2018-01-01'
Don't worry, you have the UI to select the options just like classic releases.
So hope this helps.
Huge thanks to Stephane Eyskens for coming up with this nice set of tasks.
Happy Coding.
Regards,
Jaliya
No comments:
Post a Comment