Still no FIFO SNS/SQS?
I saw a previous issue stating that SQS fifo changes were rolled back because SNS fifo wasn't ready. About a year ago now. https://github.com/aws/copilot-cli/issues/2800
I've got heavy pubsub implemented with Copilot and, in fact, the pubsub feature is what drew me in. Now I need FIFO, lol. So I'm faced with:
- Create it all through addons
- Fork Copilot and make the changes I need
- ?
Both are decent sized time investments for me and my small team that rely on Copilot for infrastructure creation.
Has anyone in the community got a recommendation for how they worked around this missing functionality in their project?
Hello @str11ngfello ! Sorry that we haven't been able to get to this feature yet, but thank you very much for resurfacing it! While some features are not currently on our short-term sprint board yet, requests like yours certainly help in prioritizing them!
I can try my best to suggest a workaround for you before we get to the feature. Do all of your SQS/SNS need to use fifo, or only some of them? Do you constantly need to update your services using copilot svc deploy or pipeline?
Hi @Lou1415926, yes all queues and topics will be FIFO. And, yes we deploy manually a couple times per day with 'copilot svc deploy'. We do not use code pipelines.
Thanks for the quick response!
Hello @str11ngfello ! I've experimented around myself - and to be honest, at this moment i can't find a great workaround that is easy and future-proof (such that when Copilot does support fifo, it guarantees a smooth transition😞. My sincere apologies 🙇🏼♀️ !
Other workarounds?
Whether a topic or a queue is FIFO or standard is currently immutable. This is why aws-cli or AWS console doesn't have a way yet to change a topic/queue type from standard to FIFO. CFN could do this it but under the hood it's really creating a new fifo topic/queue and delete the old standard one. Therefore, unfortunately I can't think of a third workaround yet that doesn’t go through copilot/CFN to convert the standard queue/topic to fifo.
Create it all through addons
A slightly good news is that there is a “shortcut” for this approach. You could write CDK codes that defines the a fifo queue and a fifo topic. CDK can then generate the CFN template based on the CDK codes that you have, and you can use the generated CFN template as the addon.
In the meanwhile, I will make sure to update this issue when we do add this FIFO feature onto our sprint board! I am sorry again for the inconvenience!
This feature is now released in v1.22 🚀 !
For the blog post: https://aws.github.io/copilot-cli/blogs/release-v122/ Release notes: https://github.com/aws/copilot-cli/releases/tag/v1.22.0