无法读取全局配置字符串
我正在使用 Pulumi 的 typescript SDK 为我的项目设置 azure 基础设施。我一直在尝试在 my 中获取一些配置值index.ts,如下面的代码所示:
import * as pulumi from "@pulumi/pulumi";
const config = new pulumi.Config();
export const domain = config.require('azure:location')
不幸的是,这段代码触发了以下错误:
error: Missing required configuration variable 'my-project:azure:location'
please set a value using the command `pulumi config set my-project:azure:location <value>`
作为补充说明,我正在使用azure:location作为示例(我还需要其他一些配置),因此很遗憾,从其他地方获取位置的明显解决方法是不够的。
它看起来像config.require使用项目名称作为配置键的前缀。虽然 的构造函数Config允许传递替代前缀,但似乎没有选项可以在不添加前缀的情况下检索密钥。有解决方法吗?我错过了什么吗?这是一个错误吗?
普鲁米文件
如果您需要更多上下文,这里是我用来触发此问题的 pulumi 文件的最小版本:
Pulumi.yaml:
name: my-project
runtime: nodejs
description: No description
Pulumi.dev.yaml:
config:
azure:environment: public
azure:location: WestEurope
回答
如果您使用new pulumi.Config()pulumi创建一个配置对象,那么 pulumi 将假定您需要项目的配置(所有以项目名称为前缀的内容)。如果你想要 azure 配置,那么我认为你可以使用额外的配置对象来做到这一点:
const projectConfig = new pulumi.Config();
const azureConfig = new pulumi.Config("azure");
const azureLocation = azureConfig.get("location");