This Lightweight solution monitors Iceberg table schema changes in AWS Glue catalog and sends notifications via Slack webhooks when changes are detected.
- AWS CLI configured with appropriate permissions
- Slack workspace with webhook integration capability
- Access to AWS Glue catalog with Iceberg tables
- Python 3.11+ for local development/testing
- Go to your Slack workspace settings
- Navigate to Apps → Manage → Custom Integrations → Incoming Webhooks
- Click Add Configuration
- Select the channel where you want notifications
- Copy the webhook URL (format:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX)
# Clone or download the CloudFormation template
aws cloudformation create-stack \
--stack-name iceberg-tables-schema-drift-alerts \
--template-body file://./deployment/cloudformation.yaml \
--parameters \
ParameterKey=TargetDatabase,ParameterValue=DATABASE_NAME \
ParameterKey=SlackWebhookUrl,ParameterValue=SLACK_WEBHOOK_URL \
ParameterKey=ScheduleExpression,ParameterValue="rate(1 hour)" \
--capabilities CAPABILITY_NAMED_IAM# Create deployment directory
sh deploy_lambda.sh# Test the Lambda function
aws lambda invoke \
--function-name iceberg-tables-schema-drift-alerts \
--payload '{}' \
response.json
# Check the response
cat response.json# View recent logs
aws logs describe-log-streams \
--log-group-name /aws/lambda/iceberg-schema-monitor \
--order-by LastEventTime \
--descending