我有一个用例,当文件到达 blob 容器时我必须对其进行处理。
这些文件是wireshark专有格式,需要使用特定程序(tshark)进行处理。
我的目标是执行将文件转换为csv的shell命令:
tshark -r <input_filename> <some other params> > <output_filename>.csv
然后将输出 csv 文件保存到另一个 blob 容器。
我知道我可以在 azure 函数中设置 blob 触发器来触发该过程,但我不确定如何将输出文件保存到 blob 并确保 tshark 在运行时可用。
另一个问题是:也许有比 azure 函数更好的方法来做到这一点?
有比 azure 函数更好的方法吗?
是的,您可以使用 Azure 逻辑应用和 Azure 自动化帐户。
以下是我获得预期结果的方式:
这将调用自动化帐户。
在自动化帐户中,您可以添加 tshark 模块并使用它们。
然后您可以编辑 Runbook 并在其中包含参数并获取文件名。 在运行书中,使用从逻辑应用程序获取的 blob 名称获取 blob。
这里只是打印名称,您可以编写命令从 blobstorage 获取 blob 并使用 tsharks 。您还可以在 Runbook 中创建临时(SO-Thread,我使用 Temperoroy 文件)文件。