首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsonnet可以使用shell吗?

jsonnet可以使用shell吗?
EN

Stack Overflow用户
提问于 2018-05-27 19:47:00
回答 2查看 1.3K关注 0票数 1

我想用jsonnet写下面这样的代码。jsonnet能支持这一点吗?

代码语言:javascript
复制
local region = `curl http://100.100.100.200/latest/metadata/region_id`

region变量应该是执行curl http://100.100.100.200/latest/metadata/region_id的输出。

EN

回答 2

Stack Overflow用户

发布于 2018-05-27 19:59:38

使用curl获取数据,将其通过管道传输到一个文件中,调用jsonnet,然后调用local region = importstr “path/to/fetched/data”

票数 1
EN

Stack Overflow用户

发布于 2018-05-28 18:32:41

不可能从Jsonnet内部调用外部命令。这是设计出来的(参见密封性https://jsonnet.org/articles/design.html)。

有必要显式地将数据传递给Jsonnet。为此,有三种机制:

1) import / importstr,它最适合与代码并存的静态对象。但是你也可以在其他方面使用它们(参见Kerndog73 73的答案)。

2)外部变量-整个程序中可用的全局参数,例如:

代码语言:javascript
复制
jsonnet --ext-str from_curl="$(curl 'https://example.com')" -e 'std.extVar("from_curl")'

3)顶级参数-如果您的jsonnet程序的计算结果是一个函数,您可以将参数传递给它:

代码语言:javascript
复制
`jsonnet --tla-str from_curl="$(curl 'https://jsonplaceholder.typicode.com/posts/1')" -e 'function(from_curl) from_curl'`

如果您使用的是ksonnet,它可能会有所不同,因为ksonnet有自己的机制来将数据传递给jsonnet AFAIK。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50551803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档