AWS CDK constructs library for OpenAB
Project description
cdk-openab
AWS CDK constructs library for deploying OpenAB aka Agent Broker on AWS ECS Fargate.
Architecture
┌───────────────────────────────────────────────────────────────────┐
│ AWS Cloud │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ VPC (default: 10.168.0.0/16) │ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────────┐ │ │
│ │ │ Public Subnet │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────────────────────────────────────┐ │ │ │
│ │ │ │ ECS Cluster │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ │
│ │ │ │ │ Fargate Service (FARGATE_SPOT | FARGATE) │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ ┌───────────┐ ┌──────────────────────┐ │ │ │ │ │
│ │ │ │ │ │ data-init │─▶│ app container │ │ │ │ │ │
│ │ │ │ │ │ (S3 pull) │ │ (port 80) │ │ │ │ │ │
│ │ │ │ │ └───────────┘ └──────────┬───────────┘ │ │ │ │ │
│ │ │ │ │ │ stops │ │ │ │ │
│ │ │ │ │ ▼ │ │ │ │ │
│ │ │ │ │ ┌───────────────────────┐ │ │ │ │ │
│ │ │ │ │ │ data-backup (sidecar) │ │ │ │ │ │
│ │ │ │ │ │ S3 sync on app stop │ │ │ │ │ │
│ │ │ │ │ └───────────────────────┘ │ │ │ │ │
│ │ │ │ └───────────────────────────────────────────┘ │ │ │ │
│ │ │ └─────────────────────────────────────────────────┘ │ │ │
│ │ └───────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ S3 (config │ │ S3 (data │ │
│ │ asset) │ │ bucket) │ │
│ │ config.toml │ │ /home/agent │ │
│ └──────────────────┘ └──────────────────┘ │
└───────────────────────────────────────────────────────────────────┘
Install
# npm
npm install cdk-openab
# pip
pip install cdk-openab
Usage
import { OpenAB } from 'cdk-openab';
new OpenAB(this, 'Broker', {
configPath: './config.toml', // required: path to your local config.toml
});
// With custom settings
new OpenAB(this, 'Broker', {
cpu: 2048,
memoryLimitMiB: 4096,
dataS3Prefix: 'my-agent-data',
configPath: './config.toml',
});
Props
| Prop | Type | Default | Description |
|---|---|---|---|
vpc |
ec2.IVpc |
New VPC (public subnet) | 自訂 VPC |
vpcCidr |
string |
10.168.0.0/16 |
新建 VPC 的 CIDR |
image |
ecs.ContainerImage |
ghcr.io/openabdev/openab:9c70cdd |
Container image |
memoryLimitMiB |
number |
4096 |
Task memory (MiB) |
cpu |
number |
2048 |
Task CPU units |
assignPublicIp |
boolean |
true |
是否分配 public IP |
enableFargateSpot |
boolean |
true |
啟用 FARGATE_SPOT |
dataBucket |
s3.IBucket |
自動建立 | 持久化資料用的 S3 bucket |
dataS3Prefix |
string |
agent-data |
S3 資料前綴 |
dataLocalPath |
string |
/home/agent |
資料掛載路徑 |
configPath |
string |
必填 | 本地 config.toml 路徑,透過 S3 init container 掛載到 /etc/openab/config.toml |
Exposed Resources
OpenAB construct 暴露以下屬性,方便後續串接:
broker.vpc— VPCbroker.cluster— ECS Clusterbroker.service— Fargate Servicebroker.dataBucket— 持久化資料 S3 Bucket
Container Flow
data-init(init container):從 S3 data bucket 還原/home/agent資料,並從 S3 asset 下載config.tomlapp:主應用容器,等待 init 完成後啟動,掛載資料目錄(read-write)和 config(read-only)data-backup(sidecar):每 10 分鐘定期將/home/agentsync 到 S3 data bucket,並在收到 SIGTERM(app 停止)時執行最後一次備份
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cdk_openab-0.0.8.tar.gz
(40.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cdk_openab-0.0.8.tar.gz.
File metadata
- Download URL: cdk_openab-0.0.8.tar.gz
- Upload date:
- Size: 40.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2db398c002d934d811a91b155ce5f2ac842c1a24764a0a38e996b272e499a2f5
|
|
| MD5 |
39cc45a7bbf3290d8aeb6e5be74d8f25
|
|
| BLAKE2b-256 |
9e419e2ae20901487377dc0188f7fc6c9b672f2ad65a1bffdafb0558c8c06ae4
|
File details
Details for the file cdk_openab-0.0.8-py3-none-any.whl.
File metadata
- Download URL: cdk_openab-0.0.8-py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60587072d778291d74651750a52fcb19ff7366e22a9093f01a8c36a6da5b53b3
|
|
| MD5 |
621cc4faad942f24ac9ab5d7cee15ad3
|
|
| BLAKE2b-256 |
9164e53d05bfec6c8ccb6b8103d9ba36b8b758cd60d4c3970308017e1d6d3dbd
|