I’ve been setting up a local Docker Compose environment to mock out Genesys Cloud events for my Terraform integration tests. The goal is to trigger a lambda when a conversation updates, but the EventBridge rule just sits there doing nothing.
Here is the rule pattern I am using in my terraform.tfstate equivalent config:
{
"source": ["genesys.cloud"],
"detail-type": ["Conversation Event"],
"detail": {
"eventType": ["conversation:updated"]
}
}
And this is the payload my mock server is pushing via the local HTTP endpoint:
{
"id": "abc-123",
"source": "genesys.cloud",
"account": "12345",
"time": "2023-10-27T10:00:00Z",
"region": "us-east-1",
"detail-type": "Conversation Event",
"detail": {
"eventType": "conversation:updated",
"conversationId": "conv-999"
}
}
The mock server returns a 200 OK, so the delivery seems fine. But the rule metrics show zero matches. I’ve checked the AWS docs and it looks right on the surface.
I tried adding a wildcard for the account field in the pattern, but that didn’t help either. Is there something specific about how EventBridge parses nested objects in the detail field that I’m missing? Or maybe the detail-type casing is tripping it up?
Also, my local time is PST, so I’ve been testing during off-hours when the actual GC traffic is low, just to avoid noise. But this is all local mocks anyway.
Any ideas on how to debug the pattern matching itself? I can’t find a way to test the pattern against a sample event without deploying it.