如何配置Pulumi将TypeScript程序部署至新AWS账户?
解决Pulumi强制切换AWS账户部署的问题
1. 彻底清理旧凭证缓存
Pulumi和AWS CLI的缓存可能残留旧账户凭证,先清理:
- 删除Pulumi本地凭证缓存:
rm -rf ~/.pulumi/credentials - 清空当前会话的AWS环境变量:
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
2. 明确指定目标账户凭证
方式一:使用AWS配置文件
确保~/.aws/credentials和~/.aws/config已配置好目标账户的profile(比如target-account):
- 先验证profile有效性:
aws sts get-caller-identity --profile target-account - 为Pulumi栈绑定该profile(务必指定栈名,避免全局污染):
pulumi config set aws:profile target-account --stack <你的栈名称>
方式二:直接设置环境变量(优先级最高)
跳过配置文件,直接注入目标账户的凭证:
export AWS_ACCESS_KEY_ID="目标账户的访问密钥ID" export AWS_SECRET_ACCESS_KEY="目标账户的私有访问密钥" # 若使用临时凭证,额外添加 export AWS_SESSION_TOKEN="目标账户的会话令牌"
之后执行pulumi preview或pulumi up,环境变量会覆盖所有其他凭证来源。
3. 验证并修正栈配置
检查当前栈的AWS配置是否正确:
pulumi config get aws:profile --stack <你的栈名称>
若输出不是目标profile,重新执行pulumi config set命令修正。
4. 重置Pulumi提供者缓存
旧的提供者缓存可能导致凭证残留,重置操作:
- 删除旧的AWS提供者插件:
pulumi plugin rm resource aws - 重新安装对应版本的AWS提供者:
pulumi plugin install resource aws <你的项目使用的AWS提供者版本>
注:若不确定版本,可执行pulumi plugin install resource aws安装最新兼容版本
5. 确认切换成功
执行以下命令验证Pulumi是否使用目标账户:
pulumi preview --exec 'aws sts get-caller-identity'
输出的账户ID与目标账户一致即说明切换生效。
内容的提问来源于stack exchange,提问作者Heinan Cabouly
相关产品推荐
相关产品推荐

