On this page, you will find a step-by-step guide on how to connect your AWS API Gateway to APIIDA's API Control Plane.
Prerequisites
To proceed, you will need the following:
A running instance of APIIDA´s API Control Plane
Access to the Amazon API Gateway Service with at least one API deployed in a stage
Docker to utilize the image of our agent, which acts as an intermediary.
Any other container environment is also possible. Helm Charts are available here:
https://github.com/apiida/CPagent-Helm
Create a new Environment
To get started, simply open your API Control Plane instance and follow the instructions below.
Add an Environment
Navigate to “Environments” in the menu on the left side
Click on the “Create New Environment” button in the top right corner
Choose your provider by clicking on it
Confirm by clicking on the "Next" button
Add Environment Information
Complete the form below following the example below:
Confirm by clicking on the "Register Environment" button
Click Next here to start the Connection Wizard.
You’ve completed the first step!
Provide the Gateway Information
The following describes how to create the gateway configuration for an AWS API Gateway Agent.
Gateway Configuration
You have two options to grant your agent access to your AWS API Gateway, depending on wheter you plan to host the agent inside AWS itself or elsewhere.
Agents running outside AWS
This is the default, where you run the agent container outside of AWS, e.g. inside your local network or within another cloud provider. For the agent to be able to access the AWS API Gateway, you must provide credentials in form of Access Key and Secret Access Key.
Agents running inside AWS
For agents running within one of the AWS container services (e.g. ECS or EKS) and pointing to AWS API Gateway you can choose to 'Use AWS Internal Access' instead of providing explicit credentials. This eliminates the storing or transmission of gateway credentials by the agent - Hence tighter security.
In this case you must configure a Task IAM Role for your container in AWS which has the necessary permissions to access the API Gateway.
Here is the documentation from Amazon describing the process:
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
Use AWS Internal Access:
Enable this if you intend to run your agent container inside AWS and want to use a Task IAM Role instead of providingaccessKey
andsecretAccessKey
.accessKey
/secretAccessKey
: Id and secret access key of an AWS long-term access key for programmatic access.region
: The region in which your AWS API Gateway is hosted.stage
: The stage to which your APIs are deployed in AWS.
See our Q&A below if you want to learn more about how to get these values.
Currently, each AWS agent is specific to one region and one stage.
If you want to manage multiple stages or regions, you will require an agent instance for each combination.
Your configuration file will download automatically.
Confirm by clicking on the "Download and Next" button
You’ve completed the second step!
Create an Agent as Intermediary
The following describes how to create a Docker container for the agent. It is described using a Docker compose file so that additional agents can be easily added to your docker stack later.
image
: The docker image of the API Control Plane Agentcontainer_name
: You can freely choose the name of your Agent here as well as in line 3.environment
backendUrl
: The agent will establish a web-socket to this URL and thereby connect to your API Control Plane.gateway-config
: The path inside the container to the configuration you downloaded in step 2.
volumes
The outer path of the configuration file : The inner path of the configuration file
Click on “Download and Next” to download your agent docker compose
Put both files in the same folder. Then run the following commands.
docker pull apiida/controlplane-agent
Download the latest image of the agent.
docker compose up
Starts the agent. It will connect automatically.
You’ve completed the third step!
Check the Agent's Status
Head over to your API Control Plane instance
Select “Environments” in the menu on the left side
Your Agent should now be connected to API Control Plane
Click on the tile or the entry in the table to get more detailed information about the status of the connection. This can be very useful in case of an error.
You’ve completed the last step!
You can now interact with your Gateways through APIIDA´s API Control Plane.
Try it right now and discover your APIs!
💡 Tip: It is easy to add more agents!
Repeat this guide or that of another gateway and simply add the agents to the existing Docker compose file.