This repository holds an agent implementation Java project for connecting Azure API Management Service with API Control Plane, utilizing the Agent SDK. The key functionalities include:
- Registering Azure API Management Service with API Control Plane.
- Retrieving Azure API Management Service’s health status and sending it to API Control Plane.
- Publishing Azure API Management Service’s assets to API Control Plane.
- Synchronizing assets between Azure API Management Service and API Control Plane.
- Retrieving metrics from Azure API Management Service to API Control Plane.
This project is developed using Java 17 and Gradle 7.4.2
If you plan to upgrade Gradle, ensure that you also upgrade the supported Java version accordingly. For details about the compatibility between Java and Gradle versions, see Compatibility Matrix.
- Implementation Overview
- How is this Repository Structured?
- Co-relation Between Azure API Management Service and API Control Plane Terminologies
- How to Build the Gradle Project?
- How to Deploy and Run the Azure Agent as a Spring Boot application in Docker?
- How to Deploy and Run the Azure Agent in Azure Functions?
- Best Practices
The implementation utilizes the Manual approach of the Agent SDK, providing options for deploying the Azure agent as a stand-alone application. For details about the Agent SDK implementation approaches and deployment modes, see Agent SDK documentation. The implementation leverages Azure SDK for API Management Service to:
- Manage connections and authentication for Azure API Management Service
- Retrieve APIs and metrics from Azure API Management Service
Note: The agent implementation is compatible with API Control Plane version, 11.0.4 and currently supports only the REST, SOAP, and Graph QL APIs of Azure API Management Service.
The Azure agent can be deployed in the following ways:
- Spring Boot application
- Azure Functions
For a detailed understanding of how the agent for Azure API Management service is implemented, see Core Implementation Logic.
The Azure agent developer can utilize this repository in the following ways:
- Use the repository directly to build and deploy the Azure agent.
- Fork the repository, customize the code as required, and then build and deploy the Azure agent.
This section outlines the Git repository's structure, highlighting the purpose of each directory. For details, see Repository structure.
This section details the relationship and equivalence between the terminologies used in Azure API Management service and the API Control Plane. For details, see Co-relation.
For details, see How to build?
This section details how to deploy the Azure agent as a stand-alone application. For details, see How to deploy?
Azure Functions is a cloud service provided by Azure that lets you deploy and run your application without provisioning or managing servers. You are responsible only for the agent application code that you provide to Functions and the configuration of how the Function runs that code on your behalf. For details about Azure Functions, see Azure documentation.
Deploying an Azure agent using Azure Functions lets you run the agent virtually without the need for administration of the underlying infrastructure. Azure Functions support various tools for creating and deploying Functions in Java. For details, see Azure documentation. This tutorial specifically covers the creation and deployment of Azure Functions in Java using the following tools:
- Visual Studio Code
- Azure CLI
For details about how to deploy and run the Azure agent in Azure Functions, see How to deploy?
This section outlines the essential best practices for using this implementation and deploying the Azure agent. For details, see Best Practices.
- To learn how to create the runtime type in the API Control Plane, see Runtime Type Management Service API.