Meet the most advanced infrastructure design tool that understands how to define, connect, scale your infrastructure-as-code
Powered by KlothoEngine v0.72
Welcome! The purpose of this page is to help you get started with InfraCopilot. We'll walk you through the steps to create a new deployable architecture on AWS using Lambda, DynamoDB and an API Gateway in 5 minutes.
Get started by visiting InfraCopilot, sign up for a free account in case you haven’t yet. Once you log in, click on the New Architecture
button. You'll be prompted to enter a name for the architecture. Once you've entered the details, click on the Create
button and you'll be taken to the editor page.
The editor is used to create cloud architectures. InfraCopilot has an intelligence engine to autocomplete architectures so you can operate on high level resources without worrying about the low level details. For example, you'll directly connect a Lambda to an RDS without manually creating a VPC, subnets, security groups, etc.
Here's a general guide for what is available on the editor page:
To create your first architecture, follow the following steps starting with finding relevant resources in the left sidebar. When we're done, we'll have created the following architecture:
By default the Rest API will create a single route using ANY protocol when hitting /{proxy+}. This is a catch-all route that will forward all requests to whichever resource you connect it to.
API Gateways are great for routing sub-paths of routes to different compute units. To do that, we need to define which API routes go to which compute units. To do that, we’ll want to change the /{proxy+} catch-all route and replace it with specific routes. To keep the tutorial simple, we’ll have all the routes lead to the same compute unit, but this is how you would connect different routes to different compute units.
GET
and then by changing the path from /{proxy+}
to /html
GET /items
and PUT /items
.TABLE_NAME
. The key name is the environment variable our container expects to be set to find the DynamoDB table name at runtime. The value of the environment variable is a combination of resource name, in this case aws:dynamodb_table:dynamodb_table_5
and its property #Name
atorresklo/lambda-dynamo-example:latest
. This is a simple lambda-based docker image with the 3 endpoints we specified in the Rest API. /html serves a static website, a PUT to /items writes to DynamoDB, and a GET of /items reads from DynamoDB.npm install
pulumi stack init
pulumi config set aws:region us-east-1
change us-east-1 to whichever region you desirepulumi up
yes
to deploy+ api_stage_0_Url: https://your-api-endpoint.com/stage
https://your-api-endpoint.com/stage/html
and you should see a static website / webgl globe demo$ curl -X PUT "https://your-api-endpoint.com/stage/items" \
-H "Content-Type: application/json" \
-d '{"id": "123", "price": 19.99, "name": "Sample Item"}'
"Put item 123"
and
$ curl https://your-api-endpoint.com/stage/items
[{"price":19.99,"id":"123","name":"Sample Item"}]
pulumi destroy
yes
We look forward to seeing what amazing things you build. If you get stuck or want us to support a capability, please join our Community Discord, where the whole team hangs out and is happy to help.
We may have an answer for you. Here are some of our common FAQs:
InfraCopilot is powered by the Klotho engine, an adaptive architectures compiler that undertands cloud architectures and is able to reshape them. NLP is used only to interpret the user intent.
Klotho is the Wolfram Alpha of infrastructure.
AWS support is now in early access, with Azure and Google Cloud support coming soon. For the latest up-to-date list of supported services, ask the Copilot!
We're focused on building a tool that makes your work more enjoyable. We haven't decided on a business model yet, but we do know InfraCopilot will always have a free tier. We'll have more to share in the coming months.
Yes! Klotho is open-source, join us on Discord and we'll help you get up and running!