An Azure service that stores unstructured data in the cloud as blobs.
Hello Thomas Bolon,
Welcome to the Microsoft Q&A and thank you for posting your questions here.
I understand that your Azure Storage Action: can't use parenthesis or exclamation mark on blob name match predicate.
What you can do is:
- If the blob name must match the exact literal value
((DEL!(???))), do not usematches(). Useequals(): [[equals(Name, '((DEL!(???)))')]] - If
???is intended to mean exactly three variable characters, and the literal parentheses and!must also be part of the match, Azure Storage Actions currently does not provide a documented reliable escape syntax for that fullmatches()expression. In that case, use a pre-classification step, such as Azure Function, Azure SDK, or automation job, to identify matching blobs and write a blob index tag or metadata value, then target that marker from Storage Actions usingequals().
For an example tag-based Storage Actions condition:
[[equals(Tags.Value[StorageActionMatch], 'DEL')]]
If blob index tags are not suitable for the account type or namespace configuration, use metadata instead:
[[equals(Metadata.Value[StorageActionMatch], 'DEL')]]
After switching exact-name matching to equals(), the Storage Action condition avoids wildcard parsing and should save/deploy successfully. If the wildcard version is required and matches() still fails with parentheses or !, the next action should be a Microsoft support escalation against Azure Storage Actions condition parsing, because the current documentation does not provide a supported syntax to express that pattern safely.
For more reading and steps:
- https://learn.microsoft.com/azure/storage-actions/storage-tasks/storage-task-conditions
- https://learn.microsoft.com/azure/storage-actions/storage-tasks/storage-task-conditions-operations-edit
- https://learn.microsoft.com/rest/api/storageservices/Naming-and-Referencing-Containers--Blobs--and-Metadata
I hope this is helpful. Please! Do not hesitate to let me know if you have any other questions, steps or clarifications.
Please do not close the thread by upvoting and accepting the answer if any part of it is helpful.