gpt4 book ai didi

bash - 在 Bash Azure 函数中使用 JQ

转载 作者:行者123 更新时间:2023-12-03 04:17:21 25 4
gpt4 key购买 nike

目标:

我有一个 Bash 脚本,需要每 5 分钟运行一次。我目前正在 Azure VM 上使用 Windows 任务计划程序执行此操作。我想使用虚拟机的替代方案来节省成本。 Azure Functions 似乎是一种方法。

问题:

我的 Bash 脚本使用 JQ。我想在 Bash Azure 函数 (QueueTriggerBash) 中运行该脚本。该脚本运行但不执行 JQ 命令。我认为这是因为 Azure Function 无法识别 JQ。

我尝试使用 JQ Linux 说明安装 JQ(sudo apt-get install jq - 它无法识别 sudo),使用 npm 安装 JQ 包(它确实无法识别 npm),使用 Chocolatey 安装 JQ(它无法识别 choco),但这些尝试均不成功。我尝试这些的方法是在脚本开头包含该命令并运行 Azure Function。

脚本使用 Bash 的原因是我不懂 PS、C# 或 JS。使用 Azure Functions 的原因是我有 Azure 订阅。该脚本不公开。

感谢您的任何帮助或想法。如果 Azure Function 不是实现我的目标的最佳方式,我将很高兴知道。

最佳答案

从技术上讲,你可以使用 python venv 来安装 jq,但一般来说,你可以使用 python\powershell\whatever 轻松解析 json。不需要进行大量挖掘即可做到这一点。

Powershell解析json:

$json = az bla bla-bla bla-bla-bla
$jsonParsed = $json | ConvertFrom-Json
$jsonParsed.Property1[index].value

没有 jq 的 Python:

import json
j = json.loads('{"one" : "1", "two" : "2", "three" : "3"}')
print j['two']

Python安装模块的方式:

https://github.com/yokawasa/azure-functions-python-samples/blob/master/docs/install-python-modules.md

之后,您只需将 venv 模块添加到路径:

sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '../../../az/Lib/site-packages')))

假设../../../az/Lib/site-packages是从函数根目录到venv site-packages目录的相对路径

关于bash - 在 Bash Azure 函数中使用 JQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51887566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com