使用 7zip 在 Azure Functions App 中解压文件

untar files in Azure Functions App using 7zip

是否可以使用 Azure 数据工厂或 Functions App 从 .tar.gz 中提取文件以供 ADF 中的 ETL 进程摄取?

我尝试在 Functions Apps 中使用 7zip,它可以很好地提取测试 .tar.gz 上传到 Functions App 本身的文件,但对于存储在 Blob 容器中的文件会引发错误。

这是我在函数 运行.ps1 中的命令

.za.exe x 1.tar.gz

#below,文件是 Blob 容器中的一个 blob - 不起作用

.za.exe x $InputBlob

我收到上面命令的错误

2020-09-11T16:06:42.721 [Error] ERROR: Program '7za.exe' failed to run: StandardOutputEncoding is only supported when standard output is redirected.At D:\home\site\wwwroot\tools\run.ps1:9 char:1+ .za.exe e $InputBlob+ ~~~~~~~~~~~~~~~~~~~~~~.Exception :Type : System.Management.Automation.ApplicationFailedExceptionErrorRecord :Exception :Type : System.Management.Automation.ParentContainsErrorRecordExceptionMessage : Program '7za.exe' failed to run: StandardOutputEncoding is only supported when standard output is redirected.At D:\home\site\wwwroot\tools\run.ps1:9 char:1+ .za.exe e $InputBlob+ ~~~~~~~~~~~~~~~~~~~~~~.HResult : -2146233087CategoryInfo : ResourceUnavailable: (:) [], ParentContainsErrorRecordExceptionFullyQualifiedErrorId : NativeCommandFailedInvocationInfo :ScriptLineNumber : 9OffsetInLine : 1HistoryId : -1ScriptName : D:\home\site\wwwroot\tools\run.ps1Line : .za.exe e $InputBlobPositionMessage : At D:\home\site\wwwroot\tools\run.ps1:9 char:1+ .za.exe e $InputBlob+ ~~~~~~~~~~~~~~~~~~~~~~PSScriptRoot : D:\home\site\wwwroot\toolsPSCommandPath

Unfortunately there is no out-of-box functionality in Azure Data Factory to extract contents from TAR file.

这是一个现有的用户语音功能请求线程,我鼓励您 up-vote and/or 对功能请求建议发表评论,以提高功能实施的优先级。

https://feedback.azure.com/forums/270578-data-factory/suggestions/34575520-support-extracting-contents-from-tar-file

但作为解决方法,您可以尝试使用 Azure 数据工厂的可扩展性功能来转换不受支持的文件。两个选项包括 Azure Functions 和使用 Azure Batch 的自定义任务(ADF 中的自定义 Activity)。

您的question已在微软问答平台上得到解答