* google adk * docs changes * headers * authorizerConfiguration config
5.7 KiB
Java Google ADK Agent example for Amazon Bedrock AgentCore Runtime
This project implements the HTTP protocol contract for Amazon Bedrock AgentCore Runtime using Java Spring Boot. It provides a foundation for integrating Java Google's Agent Development Kit (ADK) with Amazon Bedrock AgentCore Runtime.
| Information | Details |
|---|---|
| Agent type | Synchronous |
| Agentic Framework | Java Google ADK |
| LLM model | Gemini 2.0 Flash |
| Components | AgentCore Runtime |
| Example complexity | Easy |
Overview
Amazon Bedrock AgentCore Runtime provides a secure, serverless hosting environment for deploying AI agents. This implementation creates REST API endpoints that comply with the AgentCore HTTP protocol contract.
Prerequisites
- Java 17 or higher, download
- Maven 3.6+, download
- AWS account: You need an active AWS account with appropriate permissions
- AWS CLI: Install and configure AWS CLI with your credentials
- Google AI API key (for the Gemini model), docs
Project Structure
java_adk/
├── src/
│ ├── main/
│ │ ├── java/com/agentswithek/GoogleADKAgentCore/
│ │ │ ├── controllers/
│ │ │ │ └── AgentCoreRuntimeController.java # REST endpoints
│ │ │ ├── entities/
│ │ │ │ ├── InvocationRequest.java # Request DTO
│ │ │ │ ├── InvocationResponse.java # Response DTO
│ │ │ │ └── PingResponse.java # Health check DTO
│ │ │ └── GoogleAdkAgentCoreApplication.java # Main application
│ │ └── resources/
│ │ └── application.properties # Configuration
│ └── test/
├── Dockerfile # ARM64 Docker build
├── pom.xml # Maven dependencies
└── README.md # This file
Local Development & Testing
git clone https://github.com/awslabs/amazon-bedrock-agentcore-samples.git
cd 03-integrations/agentic-frameworks/java_adk
Google API Key
Important
Make sure to replace
<ValidAPIKey>with valid API key from Google.
export GOOGLE_API_KEY="<ValidAPIKey>"
Build and Run
# Run with Maven
mvn spring-boot:run
The application will start on http://localhost:8080
Test the Endpoints
Test /invocations:
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-H "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: gfmeoagmreaklgmrkleafremoigrmtesogmtrskhmtkrlshmt" \
-d '{"prompt": "Hello, how are you?"}'
Test /ping:
curl http://localhost:8080/ping
Deploy to AgentCore Runtime Using AWS CloudFormation
Step 1: Deploy CloudFormation Stack
Important
Make sure to replace
<ValidAPIKey>with valid API key from Google.
# Deploy the CloudFormation stack
aws cloudformation create-stack \
--stack-name java-adk-agent \
--template-body file://cloudformation/github-source.yaml \
--capabilities CAPABILITY_IAM \
--parameters \
ParameterKey=AgentName,ParameterValue=adkjavaagent \
ParameterKey=GoogleApiKey,ParameterValue=<ValidAPIKey>
# Wait for stack creation to complete
aws cloudformation wait stack-create-complete \
--stack-name java-adk-agent
# Get stack outputs
aws cloudformation describe-stacks \
--stack-name java-adk-agent \
--query "Stacks[0].Outputs" \
--output table
Step 2: Testing
Once your agent is deployed, you can test it using the integration tests.
Step 1: Get Agent Runtime ARN from SSM Parameter Store
# Export the ARN directly (replace 'adkjavaagent' with your agent name)
export AGENT_RUNTIME_ARN=$(aws ssm get-parameter \
--name "/hostagent/agentcore/adkjavaagent/runtime-arn" \
--query "Parameter.Value" \
--output text )
# Verify it's set
echo $AGENT_RUNTIME_ARN
export AWS_REGION="us-west-2"
Step 2: Run Integration Tests
# Run all tests
mvn test -Dtest=AgentRuntimeInvokerTest
Cleanup
To delete all resources created by the CloudFormation stack:
# Delete the CloudFormation stack
aws cloudformation delete-stack \
--stack-name java-adk-agent
# Wait for stack deletion to complete
aws cloudformation wait stack-delete-complete \
--stack-name java-adk-agent
# Verify deletion
aws cloudformation describe-stacks \
--stack-name java-adk-agent | grep -q "does not exist" && echo "Stack successfully deleted"