AWS Lambda含等号环境变量通过VSTS部署丢失问题求助
解决VSTS部署AWS Lambda时环境变量等号后内容丢失的问题
我之前部署Lambda时也碰到过类似的特殊字符环境变量传递坑,给你几个亲测有效的解决思路:
用VSTS变量组管理带特殊字符的环境变量
别直接在Lambda部署任务的环境变量输入框里写dc=dir,dc=local,先在VSTS的变量组(或管道变量)里定义一个变量,比如命名为LDAP_BASE_DN,值设为dc=dir,dc=local。然后在部署任务的环境变量配置中,引用这个变量:LDAP_BASE_DN=$(LDAP_BASE_DN)。VSTS的变量系统会完整传递整个值,不会把等号当成分隔符截断内容。改用JSON格式配置环境变量
如果你的AWS Lambda部署任务支持JSON格式的环境变量配置(大部分新版本任务都支持),直接用JSON结构来定义:{"LDAP_BASE_DN": "dc=dir,dc=local"}JSON会将值作为完整字符串解析,完全避免特殊字符导致的截断问题。
用引号包裹值(针对CLI命令式部署)
如果是通过AWS CLI命令来部署Lambda,确保在指定环境变量时用单引号把整个变量块括起来,比如:aws lambda update-function-configuration --function-name YourFunction --environment 'Variables={"LDAP_BASE_DN":"dc=dir,dc=local"}'单引号会让CLI把内部内容当成整体处理,不会拆分等号前后的内容。
通过.env文件加载环境变量
把需要的环境变量写入一个.env文件,内容如下:LDAP_BASE_DN=dc=dir,dc=local然后在部署任务中配置AWS CLI从这个文件加载环境变量(可以用
--env-file参数,或者在任务中指定文件路径),这种方式也能保证值的完整性。
我当时用变量组引用的方式直接解决了问题,你可以先试试这个方法,应该能快速搞定~
内容的提问来源于stack exchange,提问作者AnthonyDa
相关产品推荐
相关产品推荐

