我正在使用AWS Lambda Invoke
从Powershell测试我的lambda函数。不幸的是,我无法获得有用的日志结果。如果我将这样的结果解码,则没有用换行符分隔对数行:
$response = aws lambda invoke --function-name my-lambda-function --invocation-type RequestResponse --log-type Tail --payload file://sample-event.json outfile.txt | ConvertFrom-Json
$DecodedText = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($response.LogResult))
$DecodedText
你知道我该怎么做才能使日志漂亮并在一行一行之后显示readabel吗?
答案 0 :(得分:0)
我没有使用Windows,但是我认为Bash在Linux子系统下也可用。在每个lambda目录中,我都有文件invoke.sh
,其代码如下:
NAME=getLineUpMap
OUT=/tmp/awsLambdaOut.txt
AWS_PROFILE=gms-ai \
aws lambda invoke \
--function-name $NAME \
--payload '{"specs": ["RPM", "Energy"], "numberOfModels": 3}' --log-type Tail \
$OUT |
grep "LogResult" |
awk --field-separator '"' '{print $4}' |
base64 --decode |
grep --color "$NAME\|$" --text
cat $OUT | python3 -m json.tool
输出示例:
START RequestId: cc22c01a-fdd0-4944-9d78-ef298fb6ef72 Version: $LATEST
END RequestId: cc22c01a-fdd0-4944-9d78-ef298fb6ef72
REPORT RequestId: cc22c01a-fdd0-4944-9d78-ef298fb6ef72 Duration: 75.75 ms Billed Duration: 100 ms Memory Size: 3008 MB Max Memory Used: 63 MB
{
"Models": [
{
"Specs": {
"Energy": "A++",
"RPM": "1200"
},
"Percent": 14
},
{
"Specs": {
"Energy": "A++",
"RPM": "1000"
},
"Percent": 12
},
{
"Specs": {
"Energy": "A+++",
"RPM": "1200"
},
"Percent": 12
}
],
"Rows": {
"1000": 31,
"1200": 38,
"1400": 29
}
}