This CDK stack deploys a basic Amazon Bedrock AgentCore Runtime with a simple Strands agent. This is the simplest possible AgentCore deployment, perfect for getting started and understanding the core concepts without additional complexity.
- Overview
- Architecture
- Prerequisites
- Deployment
- Testing
- Sample Queries
- Cleanup
- Cost Estimate
- Troubleshooting
- 🤝 Contributing
- 📄 License
This CDK stack creates a minimal AgentCore deployment that includes:
- AgentCore Runtime: Hosts a simple Strands agent
- ECR Repository: Stores the Docker container image
- IAM Roles: Provides necessary permissions
- CodeBuild Project: Automatically builds the ARM64 Docker image
- Lambda Functions: Custom resources for automation
This makes it ideal for:
- Learning AgentCore basics
- Quick prototyping
- Understanding the core deployment pattern
- Building a foundation before adding complexity
The architecture consists of:
- User: Sends questions to the agent and receives responses
- AWS CodeBuild: Builds the ARM64 Docker container image with the agent code
- Amazon ECR Repository: Stores the container image
- AgentCore Runtime: Hosts the Basic Agent container
- Basic Agent: Simple Strands agent that processes user queries
- Invokes Amazon Bedrock LLMs to generate responses
- IAM Roles:
- IAM role for CodeBuild (builds and pushes images)
- IAM role for Agent Execution (runtime permissions)
-
AWS Account: You need an active AWS account with appropriate permissions
-
AWS CLI: Install and configure AWS CLI with your credentials
aws configure
-
Python 3.10+ and AWS CDK v2 installed
# Install CDK npm install -g aws-cdk # Verify installation cdk --version
-
CDK version 2.220.0 or later (for BedrockAgentCore support)
-
Bedrock Model Access: Enable access to Amazon Bedrock models in your AWS region
-
Required Permissions: Your AWS user/role needs permissions for:
- CloudFormation stack operations
- ECR repository management
- IAM role creation
- Lambda function creation
- CodeBuild project creation
- BedrockAgentCore resource creation
This is the CDK version of the basic AgentCore runtime. If you prefer CloudFormation, see the CloudFormation version.
# Install dependencies
pip install -r requirements.txt
# Bootstrap CDK (first time only)
cdk bootstrap
# Deploy
cdk deploy# 1. Create and activate Python virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 2. Install Python dependencies
pip install -r requirements.txt
# 3. Bootstrap CDK in your account/region (first time only)
cdk bootstrap
# 4. Synthesize the CloudFormation template (optional)
cdk synth
# 5. Deploy the stack
cdk deploy --require-approval never
# 6. Get outputs
cdk list- Expected Duration: 8-12 minutes
- Main Steps:
- Stack creation: ~2 minutes
- Docker image build (CodeBuild): ~5-8 minutes
- Runtime provisioning: ~1-2 minutes
# Get the Runtime ARN from CDK outputs
RUNTIME_ARN=$(aws cloudformation describe-stacks \
--stack-name BasicAgentDemo \
--region us-east-1 \
--query 'Stacks[0].Outputs[?OutputKey==`AgentRuntimeArn`].OutputValue' \
--output text)
# Invoke the agent
aws bedrock-agentcore invoke-agent-runtime \
--agent-runtime-arn $RUNTIME_ARN \
--qualifier DEFAULT \
--payload $(echo '{"prompt": "Hello, how are you?"}' | base64) \
response.json
# View the response
cat response.json- Navigate to Bedrock AgentCore Console
- Go to "Runtimes" in the left navigation
- Find your runtime (name starts with
BasicAgentDemo_) - Click on the runtime name
- Click "Test" button
- Enter test payload:
{ "prompt": "Hello, how are you?" } - Click "Invoke"
Try these queries to test your basic agent:
-
Simple Greeting:
{"prompt": "Hello, how are you?"} -
Question Answering:
{"prompt": "What is the capital of France?"} -
Creative Writing:
{"prompt": "Write a short poem about clouds"} -
Problem Solving:
{"prompt": "How do I bake a chocolate cake?"}
cdk destroyaws cloudformation delete-stack \
--stack-name BasicAgentDemo \
--region us-east-1
# Wait for deletion to complete
aws cloudformation wait stack-delete-complete \
--stack-name BasicAgentDemo \
--region us-east-1- Navigate to CloudFormation Console
- Select the
BasicAgentDemostack - Click "Delete"
- Confirm deletion
| Service | Usage | Monthly Cost |
|---|---|---|
| AgentCore Runtime | 1 runtime, minimal usage | ~$5-10 |
| ECR Repository | 1 repository, <1GB storage | ~$0.10 |
| CodeBuild | Occasional builds | ~$1-2 |
| Lambda | Custom resource executions | ~$0.01 |
| CloudWatch Logs | Agent logs | ~$0.50 |
| Bedrock Model Usage | Pay per token | Variable* |
Estimated Total: ~$7-13/month (excluding Bedrock model usage)
*Bedrock costs depend on your usage patterns and chosen models. See Bedrock Pricing for details.
- Delete when not in use: Use
cdk destroyto remove all resources - Monitor usage: Set up CloudWatch billing alarms
- Choose efficient models: Select appropriate Bedrock models for your use case
If you see bootstrap errors:
cdk bootstrap aws://ACCOUNT-NUMBER/REGIONEnsure your IAM user/role has:
CDKToolkitpermissions or equivalent- Permissions to create all resources in the stack
iam:PassRolefor service roles
Install dependencies in the project directory:
pip install -r requirements.txtCheck CodeBuild logs in the AWS Console:
- Go to CodeBuild console
- Find the build project (name contains "basic-agent-build")
- Check build history and logs
If the runtime fails to start:
- Check CloudWatch logs for the runtime
- Verify the Docker image was built successfully
- Ensure IAM permissions are correct
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
