如何在PowerShell中将AWS Secrets Manager获取的私钥设为环境变量
在PowerShell中保留格式导出AWS Secrets Manager密钥到环境变量
问题原因
直接将AWS命令输出赋值给环境变量时,PowerShell会把外部命令的多行输出拆分为数组元素,赋值为字符串时自动用空格替换换行,导致私钥格式错乱。
解决方法
方法1:分步捕获并赋值
先捕获带完整换行的输出,再赋值给环境变量:
# 捕获输出时保留原始换行 $SECRET_KEY = (aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:us-east-1:12345:secret:non-prod/testing/private-key-8PPof --query 'SecretString' --output text) | Out-String -NoNewLine # 赋值给环境变量 $env:SECRET_KEY = $SECRET_KEY
方法2:一步完成赋值
无需中间变量,直接将处理后的输出赋值给环境变量:
$env:SECRET_KEY = aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:us-east-1:12345:secret:non-prod/testing/private-key-8PPof --query 'SecretString' --output text | Out-String -NoNewLine
说明
Out-String -NoNewLine的作用是将PowerShell拆分的输出数组重新拼接为单个字符串,保留原始换行符,同时避免在字符串末尾额外添加换行。这样赋值给环境变量后,私钥的换行格式就能完整保留。
内容的提问来源于stack exchange,提问作者Springhills
相关产品推荐
相关产品推荐

