Python lambda调用cli命令以不同方式读取lambda负载
我已经创建了一个AWS lambda函数,我正在使用Windows bat脚本触发它。 windows bat脚本将windows环境变量USERNAME作为有效负载的一部分 我已使用以下语法在我的本地计算机上成功运行此功能:Python lambda调用cli命令以不同方式读取lambda负载,python,json,batch-file,aws-lambda,aws-cli,Python,Json,Batch File,Aws Lambda,Aws Cli,我已经创建了一个AWS lambda函数,我正在使用Windows bat脚本触发它。 windows bat脚本将windows环境变量USERNAME作为有效负载的一部分 我已使用以下语法在我的本地计算机上成功运行此功能: aws lambda invoke——函数名ConnectDesktops——有效负载“{\”name\”:\%USERNAME%\“}”response.json 但是,我随后将此bat文件推送到最终用户,他们在执行相同命令时遇到错误: 调用调用操作时发生错误(Inva
aws lambda invoke——函数名ConnectDesktops——有效负载“{\”name\”:\%USERNAME%\“}”response.json
但是,我随后将此bat文件推送到最终用户,他们在执行相同命令时遇到错误:
调用调用操作时发生错误(InvalidRequestContentException):无法将请求正文解析为json:意外字符(“)”(代码169)):应使用空格分隔根级别值
在[来源:(字节[])处”5��F�B����"; 行:1,列:3]
环境变量正在他们的桌面上解析,但我仍然手动解析,并尝试了一些有效负载的替代方案:
aws lambda invoke——函数名ConnectDesktops——有效负载“{\”name\”:\“User1\”}”response.json
aws lambda invoke--function name ConnectDesktops--payload“{”name:“User1”}”response.json
aws lambda invoke--function name ConnectDesktops--payload'{“name”:“User1”}response.json
aws lambda invoke--function name ConnectDesktops--payload{“name”:“User1”}response.json
都有相同的结果或者类似的结果
未知选项:response.json,}'
同样,最初的命令实际上在我自己的桌面上工作,我们都使用Windows10和cmd命令行工具
我的AWS lambda函数是用Python3.8编写的,开始时是这样的
import boto3
from botocore.exceptions import ClientError
client=boto3.client('ec2')
def lambda_handler(event, context):
name=event['Name']
任何建议都将不胜感激。好的,我找到了答案 当然,我的安装和我的同事之间肯定存在差异,差异在于我们使用的Amazon CLI版本 我使用的是V1,上面的命令工作正常,但我的同事使用的是V2,您需要在其中添加参数
--cli二进制格式raw-in-base64-out
通过执行以下命令,可以检查正在使用的CLI版本:
aws——版本
完整工作CLI V2命令供参考:
aws lambda invoke--函数名ConnectDesktops--有效负载“{\“name\”:\%USERNAME%\“}”-cli二进制格式raw-in-base64-out response.json