rohillasandeep 17a75597fe
fix (02-use-cases): AWS Operations Agent updated with AgentCore Runtime (#177)
* feat: Add AWS Operations Agent with AgentCore Runtime

- Complete rewrite of AWS Operations Agent using Amazon Bedrock AgentCore
- Added comprehensive deployment scripts for DIY and SDK runtime modes
- Implemented OAuth2/PKCE authentication with Okta integration
- Added MCP (Model Context Protocol) tool support for AWS service operations
- Sanitized all sensitive information (account IDs, domains, client IDs) with placeholders
- Added support for 17 AWS services: EC2, S3, Lambda, CloudFormation, IAM, RDS, CloudWatch, Cost Explorer, ECS, EKS, SNS, SQS, DynamoDB, Route53, API Gateway, SES, Bedrock, SageMaker
- Includes chatbot client, gateway management scripts, and comprehensive testing
- Ready for public GitHub with security-cleared configuration files

Security: All sensitive values replaced with <YOUR_AWS_ACCOUNT_ID>, <YOUR_OKTA_DOMAIN>, <YOUR_OKTA_CLIENT_ID> placeholders

* Update AWS Operations Agent architecture diagram

---------

Co-authored-by: name <alias@amazon.com>
2025-07-31 14:59:30 -04:00

34 lines
1.3 KiB
Docker

FROM --platform=linux/arm64 python:3.11-slim
WORKDIR /app
# Copy requirements first for better caching
COPY requirements.txt .
RUN pip install -r requirements.txt
# Copy shared configuration manager (project-wide)
COPY shared/ ./shared/
# Copy static configuration (embedded in container)
COPY config/static-config.yaml ./config/
# Copy dynamic configuration (contains gateway URL and runtime info)
COPY config/dynamic-config.yaml ./config/
# Copy agent-specific shared helper functions to agent_shared directory (avoid overwrite)
COPY agentcore-runtime/src/agent_shared/ ./agent_shared/
# Copy agent implementation
COPY agentcore-runtime/src/agents/sdk_agent.py .
# Validate static configuration at build time
RUN python -c "from shared.config_manager import AgentCoreConfigManager; config = AgentCoreConfigManager(); print('✅ Static configuration validated')"
# Validate that gateway URL and OAuth settings are accessible
RUN python -c "from shared.config_manager import AgentCoreConfigManager; config = AgentCoreConfigManager(); gateway_url = config.get_gateway_url(); oauth = config.get_oauth_settings(); print(f'✅ Gateway URL: {gateway_url}'); print(f'✅ OAuth domain: {oauth.get(\"domain\", \"Not configured\")}')"
# Expose port 8080 (AgentCore requirement)
EXPOSE 8080
# Run the agent using BedrockAgentCoreApp
CMD ["python", "sdk_agent.py"]