如何向Pulumi代码传递CLI参数?自定义参数使用可行性问询
如何在Pulumi中传递自定义参数
Pulumi CLI本身不支持直接通过-参数名=值的形式传递自定义参数,但可以通过以下几种方式实现类似需求:
1. 使用环境变量
执行命令时直接设置环境变量,代码中读取该变量即可:
- 命令行:
EC2_COUNT=15 pulumi up - 代码示例(Python):
import os ec2_count = int(os.getenv("EC2_COUNT", "1")) # 1为默认值 - 代码示例(TypeScript):
const ec2Count = parseInt(process.env.EC2_COUNT || "1", 10);
2. 使用Pulumi配置(推荐)
这是最贴合Pulumi设计理念的方式,配置会绑定到当前栈:
- 先设置配置值:
pulumi config set ec2-count 15 - 代码示例(Python):
import pulumi config = pulumi.Config() ec2_count = config.require_int("ec2-count") - 代码示例(TypeScript):
import * as pulumi from "@pulumi/pulumi"; const config = new pulumi.Config(); const ec2Count = config.requireNumber("ec2-count");
这种方式的优势是配置会持久化在栈中,后续执行无需重复传递,还能为不同栈设置不同参数。
3. 脚本包装命令行参数
如果一定要用pulumi up -ec2_count=15的形式,可以写一个简单的脚本解析参数,再转成环境变量调用Pulumi:
- Bash脚本示例:
#!/bin/bash EC2_COUNT=1 ARGS=() while [[ $# -gt 0 ]]; do case "$1" in -ec2_count=*) EC2_COUNT="${1#*=}" shift ;; *) ARGS+=("$1") shift ;; esac done export EC2_COUNT pulumi up "${ARGS[@]}" - 执行脚本:
./pulumi-up.sh -ec2_count=15
代码中依然通过读取环境变量获取参数值。
内容的提问来源于stack exchange,提问作者Tar
相关产品推荐
相关产品推荐

