如何在aws-cli的lambda invoke命令中添加请求头
解决aws-cli调用Lambda无法携带请求头的问题
另外注意你当前使用的调用命令中函数名参数有误,正确参数为--function-name而非--function。携带请求头需要根据你的用途对应选择实现方案:
传递自定义头到Lambda函数内部供业务逻辑使用
Lambda函数接收到的入参完全由调用时传入的payload决定,你可以直接把请求头字段整合到payload结构中即可。如果需要模拟API Gateway触发Lambda的标准事件结构,可参考以下payload格式:
{ "headers": { "Content-Type": "application/json", "X-Custom-Header": "自定义头值" }, "body": "{\"some\": \"value\"}", "httpMethod": "POST" }
对应的调用命令示例:
aws lambda invoke --function-name function-name --payload '{"headers":{"X-Custom-Header":"test","Content-Type":"application/json"},"body":"{\"some\":\"value\"}"}' outfile.txt
Windows终端需要调整引号转义规则,JSON内部双引号前加反斜杠,外层用双引号包裹
给调用AWS Lambda服务的API请求本身附加自定义头
如果需要给发送到AWS服务端的API请求添加自定义头(比如用于审计、权限标识等场景),AWS CLI v2支持直接使用--extra-headers参数实现:
aws lambda invoke --function-name function-name --payload "{\"some\": \"value\"}" --extra-headers "X-Custom-Api-Header=自定义值" outfile.txt
需要添加多个请求头时,用空格分隔多个键值对即可:
aws lambda invoke --function-name function-name --payload "{\"some\": \"value\"}" --extra-headers "Header1=val1" "Header2=val2" outfile.txt
如果你使用的是AWS CLI v1,没有原生支持的额外头参数,建议升级到CLI v2版本即可使用上述参数。
内容的提问来源于stack exchange,提问作者Andre Hadianto
相关产品推荐
相关产品推荐

