Grafana IAC - 仪表板创建错误 - 对资源类型的引用必须后跟至少一个指定资源名称的属性访问

问题描述 投票:0回答:1

我正在使用 Crossplane Grafana 提供程序通过 IAC 在我的 Grafana Cloud 实例上创建 Grafana 仪表板。我通过 UI 创建了仪表板,导出了 JSON 并尝试将其输入到 Grafana 仪表板资源

尽管我没有更改任何内容,但我在 Kubernetes 上收到以下错误消息:

Invalid reference: A reference to a resource type must be followed by at least one attribute access, specifying the resource name

每次重试时,此消息都会重复多次。没有更多信息了。

无法通过

.lock
在 Crossplane Grafana Provider 资源上找到
kubectl exec
文件来检查是否还有其他有意义的消息...

我发现这条消息实际上是一条 Terraform 消息,因为 Crossplane 使用 Upbound/upjet 作为 Terraform 的转换层。虽然不是很有帮助...

terraform grafana crossplane
1个回答
0
投票

经过一番研究,我发现 Terraform 错误消息来自于它尝试插入变量,例如

${resource.field}

有了这些信息,查看 3K 行 Json,我发现可以使用以下符号来指向 Grafana 的数据源变量:

${env}
$env
。当第一种情况发生时,它必须触发 Terraform API 来强制插值。

为了绕过这个问题,Terraform 接受

$${env}
,它将被插值为
${env}
,最终被 Grafana API 接受。

所以,快速修复,添加第二个

$

© www.soinside.com 2019 - 2024. All rights reserved.