Getting Started with Ohlala SmartOps
Deploy Ohlala SmartOps and begin managing EC2 instances through Microsoft Teams
Getting Started
Welcome to Ohlala SmartOps! Follow this step-by-step guide to deploy and configure your AI-powered AWS infrastructure management assistant.
🎯 What You’ll Accomplish
By completing this guide, you’ll be able to:
- ✅ Deploy SmartOps in your AWS account
- ✅ Connect it to Microsoft Teams
- ✅ Execute your first EC2 management commands
- ✅ View health reports and cost optimization recommendations
📚 Deployment Steps
The deployment process is organized into clear, manageable steps:
Estimated Time: 15-20 minutes total
Difficulty: Intermediate
Prerequisites: AWS account with admin access, Azure account, Teams workspace
Verify you have everything needed before starting
- AWS account requirements
- Microsoft Teams setup
- Required permissions
Configure AI model access in your AWS account
- Enable Claude Sonnet 4 model
- Verify regional availability
- Understand inference profiles
Get Ohlala SmartOps from AWS Marketplace
- Subscribe to the product
- Download CloudFormation template
- Understand pricing
Create and configure your Teams bot
- Create Azure Bot resource
- Generate authentication credentials
- Configure bot settings
Launch the infrastructure in AWS
- Configure stack parameters
- Deploy resources
- Monitor deployment progress
Integrate the bot with Microsoft Teams
- Configure webhook URL
- Install Teams app
- Test the connection
Confirm everything is working
- Run test commands
- Check health reports
- Troubleshoot common issues
🚀 Quick Start Links
💡 Pro Tips
- Start Simple: Begin with monitoring features before enabling modifications
- Budget Awareness: SmartOps includes intelligent cost tracking with $5 milestone warnings
- Clear Error Messages: The bot provides actionable guidance when issues occur
- Team Collaboration: Share the assistant with your team for maximum productivity
Need Help?
1 - Prerequisites
Check all requirements before deploying Ohlala SmartOps
Prerequisites
Before deploying Ohlala SmartOps, ensure you have all the necessary requirements in place.
✅ AWS Requirements
AWS Account
- Administrative access to create IAM roles, ECS clusters, and other resources
- AWS Marketplace subscription capability
- Billing enabled for AWS services usage
Required AWS Services
Ensure these services are available in your chosen region:
- ✅ Amazon ECS Fargate - Container orchestration
- ✅ Amazon Bedrock - AI model access
- ✅ API Gateway - Teams webhook endpoint
- ✅ CloudFormation - Infrastructure deployment
- ✅ Systems Manager (SSM) - Instance management
Existing Infrastructure
- At least 1 EC2 instance to manage
- SSM Agent installed on instances
✅ Microsoft Teams Requirements
Azure Account
- Azure subscription (Free tier works)
- Ability to create resources in Azure Portal
- Azure AD tenant for authentication
Teams Workspace
- Microsoft Teams installed and configured
- Admin permissions to install custom apps
- Teams channel where you want to add the bot
✅ Knowledge Requirements
Recommended Skills
- Basic understanding of AWS services
- Familiarity with CloudFormation
- Experience with Microsoft Teams administration
- Understanding of bot concepts
Not Required
- Programming knowledge
- Deep AWS expertise
- Infrastructure as Code experience
📋 Pre-Deployment Checklist
Use this checklist to verify readiness:
🌍 Regional Availability
Ohlala SmartOps works in ALL AWS regions through intelligent inference profile selection!
Recommended Regions
For optimal performance, we recommend:
- US East (N. Virginia) - us-east-1
- US West (Oregon) - us-west-2
- Europe (Ireland) - eu-west-1
- Europe (Frankfurt) - eu-central-1
All Supported Regions
The solution works in any region with ECS Fargate support. Bedrock access is automatically handled through cross-region inference profiles.
⏭️ Next Step
Once you’ve verified all prerequisites:
Continue to Bedrock Setup →
2 - Enable Amazon Bedrock
Configure Amazon Bedrock Claude model access for AI capabilities
Enable Amazon Bedrock
Important: You MUST enable Amazon Bedrock Claude model access before deployment. Without this, the bot will display an error message guiding you to enable model access.
🤖 Why Bedrock is Required
Ohlala SmartOps uses Amazon Bedrock with Claude Sonnet 4 to provide:
- Natural language understanding of your commands
- Intelligent analysis of infrastructure issues
- Smart recommendations for optimization
- Context-aware responses based on your environment
📋 Step-by-Step Setup
1. Open Amazon Bedrock Console
Navigate to the Amazon Bedrock console in your deployment region:
Open Amazon Bedrock Console ↗️
Important: Open Bedrock in the same region where you plan to deploy Ohlala SmartOps.
2. Navigate to Model Access
In the left sidebar, click on “Model access”
3. Enable Claude Sonnet 4
- Click “Modify model access”
- Find and enable:
- ✅ Claude Sonnet 4 (anthropic.claude-sonnet-4-20250514-v1:0)
- Click “Submit” to request access
4. Wait for Approval
- Standard models are usually approved immediately
- Wait for status to show “Access granted”
- Refresh the page if needed

🌍 Regional Considerations
How Regional Access Works
Ohlala SmartOps automatically handles regional model access:
- Detects your deployment region
- Uses the optimal inference profile for your location
- No additional configuration needed
- Same performance across all regions
Primary Regions (Native Support)
Best performance in these regions:
- US East (N. Virginia) - us-east-1
- US West (Oregon) - us-west-2
- Europe (Frankfurt) - eu-central-1
- Europe (Ireland) - eu-west-1
- Asia Pacific (Tokyo) - ap-northeast-1
- Asia Pacific (Sydney) - ap-southeast-2
All Other Regions
Supported via cross-region inference profiles:
- Europe (Paris) - eu-west-3
- Europe (London) - eu-west-2
- Asia Pacific (Singapore) - ap-southeast-1
- Asia Pacific (Mumbai) - ap-south-1
- Canada (Central) - ca-central-1
- South America (São Paulo) - sa-east-1
- And more…
🔍 Verify Access
Check Model Status
- Return to the Model access page
- Verify Claude Sonnet 4 shows “Access granted”
- Note the model ID for reference:
anthropic.claude-sonnet-4-20250514-v1:0
❗ Troubleshooting
Model Not Available
- Issue: Claude Sonnet 4 not listed
- Solution: Check you’re in a supported region
Access Denied After Deployment
- Issue: Bot shows “Model access required” error
- Solution:
- Enable model access as shown above
- Wait for “Access granted” status
- No need to redeploy - the bot will work automatically
Request Pending Too Long
- Issue: Status stuck on “Pending”
- Solution:
- Cancel and resubmit the request
- Contact AWS Support if issues persist
💡 Good to Know
Model Costs
- Input: $3.00 per million tokens
- Output: $15.00 per million tokens
- Average command uses ~500-2000 tokens
- Built-in cost tracking alerts you at $5 milestones
Alternative Models
Currently, only Claude Sonnet 4 is supported. Support for additional models may be added in future releases.
⏭️ Next Step
Once Bedrock access is enabled:
Continue to AWS Marketplace →
3 - AWS Marketplace Subscription
Subscribe to Ohlala SmartOps through AWS Marketplace
AWS Marketplace Subscription
Subscribe to Ohlala SmartOps through AWS Marketplace to get the official deployment package.
📦 What You’ll Get
The AWS Marketplace subscription provides:
- ✅ Official CloudFormation template
- ✅ Pre-built container images
- ✅ Automatic updates
- ✅ AWS support integration
- ✅ Simplified billing through AWS
📋 Subscription Steps
1. Navigate to AWS Marketplace
Open the Ohlala SmartOps product page:
AWS Marketplace - Ohlala SmartOps ↗️
2. View Purchase Options
Click “View purchase options” to start the subscription process.

3. Subscribe to the Product
Scroll down and click “Subscribe” to accept the terms.

Note: Subscription activation typically takes 1-2 minutes. Wait for the confirmation before proceeding.
4. Launch Your Software
Once subscribed, click “Launch your software” to proceed with deployment.

- Select “Amazon ECS” as the launch method
- Click the “cloudformation template” link to download
- Save the template file locally - you’ll need it in the next steps
- Alternatively, you can download the cloudformation template here: Download Template

🔍 Verify Subscription
Check Subscription Status
- Go to AWS Marketplace → Manage subscriptions
- Find “Ohlala SmartOps” in your subscriptions
- Verify status shows “Active”
Download Template Backup
Important: Save the CloudFormation template file! You’ll need it for deployment.
❓ Common Questions
Q: Can I cancel anytime?
A: Yes, you can cancel the subscription anytime through AWS Marketplace. You only pay for resources used.
Q: Is there a free trial?
A: Yes, 30 days free trial is available. After that, standard pricing applies.
Q: Can I deploy multiple instances?
A: Yes, you can deploy multiple stacks using the same subscription. Contact us for volume licensing.
Q: How do updates work?
A: Updates are provided through new versions in Marketplace. You can update at your convenience.
⏭️ Next Step
With your subscription active and template downloaded:
Continue to Azure Bot Setup →
4 - Azure Bot Registration
Create and configure your Microsoft Teams bot in Azure
Azure Bot Registration
Set up the Azure Bot that will connect Ohlala SmartOps to Microsoft Teams.
🎯 What You’ll Create
- Azure Bot resource for Teams integration
- Authentication credentials (App ID, Password, Tenant ID)
- Secure communication channel with Teams
📋 Step-by-Step Setup
1. Access Azure Portal
Navigate to Azure Portal and sign in:
https://portal.azure.com ↗️
Free Azure Account: If you don’t have an Azure account, you can create one for free with $200 credits.
2. Create Resource Group (Optional)
It’s recommended to create a dedicated resource group:
- Search for “Resource groups” in the search bar
- Click “Create”
- Configure:
- Subscription: Your Azure subscription
- Resource group:
ohlala-smartops-rg
- Region: Choose any region (e.g., North Europe)
- Click “Review + create” then “Create”

3. Create Azure Bot
Search for Azure Bot
In the Azure Portal search bar, type “Azure Bot” and select it from the marketplace.

Fill in the bot configuration:
Bot handle: OhlalaSmartOps
Subscription: Your Azure subscription
Resource group: ohlala-smartops-rg (or your chosen group)
Location: North Europe (or your preferred region)
Pricing tier: F0 (Free)
Type: Single Tenant (default)
Microsoft App ID: Create new
Bot Handle: Choose a unique name. This won’t be visible to end users.

Click “Review + create” then “Create”. Deployment takes about 1-2 minutes.
4. Get Authentication Credentials
After deployment completes, go to your bot resource.
Navigate to Configuration
- Go to Settings → Configuration
- You’ll see the Microsoft App ID - copy and save this

Create App Password
- Click “Manage Password” next to the App ID
- In the new window, click “New client secret”

- Configure the secret:
- Description:
Ohlala SmartOps Bot Secret
- Expires: Choose duration (recommend 24 months)

- Click “Add”
- IMPORTANT: Copy the secret value immediately!

Critical: Save the password now! You cannot view it again after leaving this page.
Get Tenant ID
The Tenant ID is shown in the Azure Portal:
- Click on your account menu (top right)
- Select “Switch directory”
- Your Tenant ID is displayed there
Alternatively:
- Go to Azure Active Directory
- The Tenant ID is on the overview page
📝 Save Your Credentials
You now have three critical values needed for deployment:
Credential | Where to Find | Example |
---|
Microsoft App ID | Bot Configuration page | 12345678-1234-1234-1234-123456789012 |
Microsoft App Password | Client secrets (copied) | AbC123... (long string) |
Microsoft App Tenant ID | Azure AD or account menu | 87654321-4321-4321-4321-210987654321 |
Security Note: Keep these credentials secure. Never commit them to source control or share them publicly.
1. Open Channels Page
In your Azure Bot resource, navigate to Channels in the left sidebar.

2. Add Microsoft Teams Channel
- Click on the Microsoft Teams icon
- Accept the terms and click “Agree”

- Click on Apply

❓ Common Issues
Issue: Free Tier Not Available
Solution: F0 tier is limited to one per subscription. Use S1 (Standard) tier instead (~$0.50/month).
Issue: Can’t Create App Password
Solution: You need appropriate permissions in Azure AD. Contact your Azure administrator.
Issue: Lost App Password
Solution: You can create a new client secret:
- Go to Bot Configuration → Manage Password
- Create a new client secret
- Update your deployment with the new password
⏭️ Next Step
With your Azure Bot configured and credentials saved:
Continue to CloudFormation Deployment →
5 - Deploy CloudFormation Stack
Deploy the Ohlala SmartOps infrastructure in AWS
Deploy the complete Ohlala SmartOps infrastructure using the CloudFormation template from AWS Marketplace.
📦 What Gets Deployed
The CloudFormation stack creates:
- ECS Fargate cluster with container services
- API Gateway for Teams webhook
- Network infrastructure (VPC, subnets, security groups)
- IAM roles with appropriate permissions
- Secrets Manager for credentials
- CloudWatch logs for monitoring
📋 Deployment Steps
Navigate to CloudFormation in your target region:
https://console.aws.amazon.com/cloudformation/home ↗️
Important: Choose the same region where your EC2 instances are located and where you enabled Bedrock.
2. Create New Stack
Click “Create stack” and choose “With new resources (standard)”

3. Upload Template
- Select “Choose an existing template”
- Select “Upload a template file”
- Click “Choose file” and select the template downloaded from AWS Marketplace
- Click “Next”

Stack Name
Enter a unique stack name: OhlalaSmartOps
(or your preference)
Stack Name: Used to identify resources. Can be anything, but keep it short and memorable.
Required Parameters
Fill in the mandatory parameters:
Parameter | Description | Example/Value |
---|
DeploymentMode | VPC configuration | NewVPC (recommended) |
ContainerImageTag | Version to deploy | v1.0.15 (default) |
MicrosoftAppId | From Azure Bot setup | Your App ID |
MicrosoftAppPassword | From Azure Bot setup | Your App Password |
MicrosoftAppTenantId | From Azure Bot setup | Your Tenant ID |

VPC Configuration (if NewVPC)
Keep defaults or customize:
- VPCCIDR:
10.0.0.0/16
- PublicSubnet1CIDR:
10.0.1.0/24
- PublicSubnet2CIDR:
10.0.2.0/24
- PrivateSubnet1CIDR:
10.0.10.0/24
- PrivateSubnet2CIDR:
10.0.11.0/24
- EnableNATGateway:
true
Click “Next”
On the stack options page:
- Tags: (Optional) Add tags for resource organization
- Permissions: Leave default
- Advanced options: Leave default
Click “Next”
6. Review and Create
- Review all settings
- Check the acknowledgment box:
- ✅ I acknowledge that AWS CloudFormation might create IAM resources with custom names

- Click “Submit”

7. Monitor Deployment
The stack creation takes 5-10 minutes. Monitor progress:
- Select your stack in the CloudFormation console
- Check the Events tab for real-time updates
- Wait for status: CREATE_COMPLETE
Success Indicators:
- Stack status shows
CREATE_COMPLETE
- All resources in the Resources tab show
CREATE_COMPLETE
- No errors in the Events tab
📊 Get Stack Outputs
Once deployment completes, get the important URLs:
- Select your stack
- Go to the Outputs tab
- Save these values:
Output | Description | Use |
---|
TeamsWebhookURL | API Gateway endpoint | Configure in Azure Bot |
APIGatewayEndpoint | Base API URL | Reference only |
ECSCluster | Cluster name | For monitoring |
ECSService | Service name | For monitoring |
🔍 Verify Deployment
Check ECS Service
- Go to ECS Console → Clusters
- Find your cluster (e.g.,
OhlalaSmartOps-Cluster-...
) - Check service shows 1 running task
Check API Gateway
- Go to API Gateway Console
- Find your API (e.g.,
OhlalaSmartOps-API-...
) - Verify endpoints are created
Check Health Endpoint
Test the health endpoint (no authentication required):
curl https://your-api-id.execute-api.region.amazonaws.com/prod-stackname/health
Should return: {"status": "healthy"}
❓ Troubleshooting
Stack Creation Failed
IAM Role Already Exists
Error: “Resource of type ‘AWS::IAM::Role’ with identifier already exists”
Solution: Use a different stack name, or delete the existing role first
Insufficient Permissions
Error: “User is not authorized to perform: iam:CreateRole”
Solution: Ensure you have admin permissions or required IAM policies
Service Quota Exceeded
Error: “Service quota exceeded”
Solution: Request quota increase or deploy in different region
Stack Stuck in CREATE_IN_PROGRESS
- Check Events tab for specific resource causing delay
- ECS service can take 3-5 minutes to stabilize
- If stuck >15 minutes, consider deleting and retrying
⏭️ Next Step
With infrastructure deployed and webhook URL ready:
Continue to Teams Integration →
6 - Connect to Microsoft Teams
Configure the webhook and install the bot in Microsoft Teams
Connect to Microsoft Teams
Link your deployed infrastructure with Microsoft Teams to enable chat-based infrastructure management.
- Azure Bot webhook endpoint
- Teams channel connection
- Bot app installation
- Initial testing
📋 Integration Steps
Get the Webhook URL
From your CloudFormation stack outputs, copy the TeamsWebhookURL:
https://xxx.execute-api.region.amazonaws.com/prod-stackname/api/messages
Update Bot Configuration
- Go to Azure Portal ↗️
- Navigate to your Azure Bot resource
- Go to Configuration under Settings
- Set Messaging endpoint to your webhook URL
- Click Apply to save

Important: The URL must be exactly as shown in CloudFormation outputs, including /api/messages
2. Install Teams App
Download the Teams app package:
Ohlala SmartOps Teams App ↗️
Customize the manifest:
- Extract the zip file
- Edit
manifest.json
- Replace
YOUR_APP_ID
with your Microsoft App ID - Re-zip the files
Install in Teams:
- Open Microsoft Teams
- Go to Apps → Manage your apps
- Click Upload an app
- Select Upload a custom app
- Choose your zip file
- Click Add to install
N.B.: You can also ask your Teams admin to upload the app for you if you lack permissions on Teams Admin portal ↗️
4. Add Bot to Team or Chat
For Personal Use
- Find Ohlala SmartOps in your apps
- Click Add
- Start chatting directly with the bot
For Team Use
- Go to your team
- Click ⋮ (More options) → Manage team
- Go to Apps tab
- Click Upload a custom app
- Select your app
- Click Add to team
Permissions: Team owners can add apps. Members may need approval depending on your Teams settings.
🧪 Test the Connection
Send Test Message
In Teams, message the bot:
@Ohlala SmartOps hello
Expected response:
👋 Hello! I'm Ohlala SmartOps, your AI-powered AWS infrastructure assistant.
Type '/help' to see what I can do for you.
Test Basic Command
Try a simple command:
@Ohlala SmartOps /help

The bot should respond with a help card showing available commands.
🔍 Verify Integration
Check Connection Status
In Azure Portal
- Go to your bot → Channels
- Microsoft Teams should show Running
- Click Microsoft Teams to see activity
In AWS Console
- Go to CloudWatch → Log Groups
- Find
/aws/ecs/ohlala-smartops-...
- Check for incoming request logs
Monitor API Gateway
- Go to API Gateway Console
- Select your API
- Go to Dashboard
- You should see incoming requests when messaging the bot
❓ Troubleshooting
Bot Not Responding
Check Webhook URL
- Verify URL in Azure Bot Configuration matches CloudFormation output exactly
- Ensure it includes the full path with
/api/messages
Check ECS Service
- Go to ECS Console
- Verify service has 1 running task
- Check task logs for errors
Test Health Endpoint
curl https://your-api.execute-api.region.amazonaws.com/prod-stackname/health
“Service Unavailable” Error
Causes:
- ECS task not running
- API Gateway misconfigured
- Authentication failing
Solution:
- Check ECS service is running
- Verify API Gateway deployment
- Check CloudWatch logs for details
Authentication Errors
Symptoms: 401 or 403 errors in logs
Solution:
- Verify Microsoft App credentials in Secrets Manager
- Ensure Tenant ID is correct
- Check Lambda authorizer logs
Teams App Installation Issues
“App not found”:
- Ensure manifest.json has correct App ID
- Verify bot is published in Azure
“Permissions required”:
- Contact Teams admin to allow custom apps
- Check organizational app policies
🎉 Success Checklist
Confirm everything is working:
⏭️ Next Step
Your bot is connected! Now let’s verify everything and run your first commands:
Continue to Verification & Testing →
7 - Verification & Testing
Confirm your deployment and run first commands
Verification & Testing
Congratulations on deploying Ohlala SmartOps! Let’s verify everything is working and explore the capabilities.
✅ Deployment Checklist
Before testing commands, verify each component:
AWS Infrastructure
Azure & Teams
Bedrock
🎯 Your First Commands
1. Test Connection
@Ohlala SmartOps hello
Expected Response: Friendly greeting confirming the bot is working
2. Get Help
@Ohlala SmartOps help
Expected Response: Interactive card with available commands and examples
3. Check Instance Status
@Ohlala SmartOps show me my EC2 instances
Expected Response: List of your EC2 instances with status information
4. Health Report
@Ohlala SmartOps /health
Expected Response: Detailed health metrics for your instances
5. Natural Language Query
@Ohlala SmartOps which instances are running in us-east-1?
Expected Response: Filtered list based on your query
🔍 Advanced Testing
Test SSM Integration
@Ohlala SmartOps check disk space on i-1234567890abcdef0
- Verifies SSM command execution
- Returns disk usage information
Test Cost Analysis
@Ohlala SmartOps analyze my EC2 costs
- Checks CloudWatch metrics access
- Provides cost optimization suggestions
Test Multi-Instance Commands
@Ohlala SmartOps show me all stopped instances
- Tests filtering and analysis capabilities
- Demonstrates natural language understanding
📊 Monitoring Your Deployment
CloudWatch Metrics
Monitor key metrics in CloudWatch:
ECS Service
- CPU utilization (should be <50%)
- Memory utilization (should be <70%)
- Task count (should be 1)
API Gateway
- Request count
- 4XX/5XX errors (should be minimal)
- Latency (should be <3 seconds)
Bedrock Usage
- Token consumption
- API throttling events
- Model invocation errors
🚨 Common Issues & Solutions
Issue: Bot Not Responding
Quick Diagnosis:
# Check health endpoint
curl https://your-api.execute-api.region.amazonaws.com/prod-stackname/health
Solutions:
- Check ECS task is running
- Verify webhook URL in Azure
- Ensure Teams app is installed
- Review CloudWatch logs
Issue: “Model Access Required” Error
Symptom: Bot responds but shows Bedrock error
Solution:
- Go to Bedrock Console → Model access
- Enable Claude Sonnet 4
- Wait for “Access granted”
- Retry command (no restart needed)
Issue: No Instances Found
Symptom: Bot works but doesn’t see EC2 instances
Checks:
- Instances are in same region as deployment
- Instances have SSM agent installed
- IAM permissions are correct
- Try:
@Ohlala SmartOps list all instances in all regions
Issue: Commands Timeout
Symptom: Bot shows “thinking” but never responds
Solutions:
- Check ECS task memory/CPU
- Look for Bedrock throttling
- Verify network connectivity
- Scale ECS service if needed
Issue: Authentication Failures
Symptom: 401/403 errors in logs
Solutions:
- Regenerate Azure Bot credentials
- Update Secrets Manager
- Restart ECS service
- Check tenant ID is correct
Best Practices
- Start simple: Use basic commands first
- Be specific: Include instance IDs for targeted actions
- Use natural language: The bot understands context
- Review suggestions: Always verify before applying changes
🎉 Success Indicators
Your deployment is successful when:
- ✅ Bot responds within 2-3 seconds
- ✅ All test commands work
- ✅ No errors in CloudWatch logs
- ✅ Costs align with expectations
- ✅ Team members can use the bot
📚 Next Steps
Now that your bot is working:
Explore Features
- Try advanced commands
- Experiment with natural language queries
- Review health and cost reports
Train Your Team
- Share the bot with team members
- Create usage guidelines
- Document common workflows
🆘 Getting Help
If you encounter issues:
Check Documentation
Contact Support
Community Resources
🎊 Congratulations!
You’ve successfully deployed Ohlala SmartOps! Your AI-powered infrastructure assistant is ready to help manage your AWS environment through natural language conversations in Microsoft Teams.
Happy automating! 🤖