Thank you very much, James! First of all, nice video quality and amazing explanation! It helped me a lot. I was looking for a way to connect an SQS queue with a Step Function and I'm happy to know that it is possible to solve this problem without having to develop a lambda function.
Great video! How do I go about implementing the filter for the pipe? For example, I would like to implement a filter that will only accept sqs messages with an eventType equal to "SampleEvent".
You can see an example of adding a filter in the below code sample. I'll probably create a video on it at some point because filtering is really important with Pipes, as you only pay for what comes after the filter. github.com/jeastham1993/aws-lambda-dotnet-handler-cookbook/blob/main/cdk/src/SharedConstructs/PointToPointChannel.cs#L294
@@serverlessjames Thanks for replying. Concatenating dictionary keys and values is a neat trick. So far I've just used a hard coded string but your method is probably the better practice in a professional setting.
What would happen if any of the StepFunctions tasks fail? Is the message returned to the queue? Are there any built-in retries? How do you handle that?
Once the message is successfully delivered to the Step Function and the workflow starts the pipe considers that a success and will delete the message from the queue. You'll need to handle workflow errors within the workflow itself.