在命令行中设置 Json 对象而不是 AWS-SAM 上的 event.json
Set Json object in command line instead of event.json on AWS-SAM
正常
我可以将此功能用于 SAM
sam local invoke "MessageFunction" -e events/message.json
但是我想在命令行中设置 event.json 的内容
所以,我试过了,但没有成功。
echo '{"type": "Message", "user_id": 5 }' | sam local invoke "MessageFunction"
有什么办法可以做到这一点吗?
所以我尝试了管道,它似乎在抱怨额外的参数。 -e
标志需要一个文件路径作为输入。所以要回答你的问题,以我的能力来说似乎是行不通的。但是,您可能需要考虑使用以下命令将事件通过管道传输到临时文件中:
sam_tmp=$(mktemp)
echo '{"type": "Message", "user_id": 5 }' >> "$sam_tmp"
sam local invoke "MessageFunction" -e $sam_tmp
rm $sam_tmp
看起来很脏,但它完成了工作:D 逻辑是:
- 我们使用
mktemp
创建一个临时文件
- 然后我们将事件推送到临时文件
- 然后传给事件的
-e
标志
- 会话完成后清理它
正常
我可以将此功能用于 SAM
sam local invoke "MessageFunction" -e events/message.json
但是我想在命令行中设置 event.json 的内容
所以,我试过了,但没有成功。
echo '{"type": "Message", "user_id": 5 }' | sam local invoke "MessageFunction"
有什么办法可以做到这一点吗?
所以我尝试了管道,它似乎在抱怨额外的参数。 -e
标志需要一个文件路径作为输入。所以要回答你的问题,以我的能力来说似乎是行不通的。但是,您可能需要考虑使用以下命令将事件通过管道传输到临时文件中:
sam_tmp=$(mktemp)
echo '{"type": "Message", "user_id": 5 }' >> "$sam_tmp"
sam local invoke "MessageFunction" -e $sam_tmp
rm $sam_tmp
看起来很脏,但它完成了工作:D 逻辑是:
- 我们使用
mktemp
创建一个临时文件
- 然后我们将事件推送到临时文件
- 然后传给事件的
-e
标志 - 会话完成后清理它