Неопределенное значение при отправке данных от python до aws лямбда - PullRequest
0 голосов
/ 14 января 2020

У меня проблема при отправке данных от клиента, который записал python в aws лямбду. После этого AWS Лямбда пошлет его на провал. Под моим кодом я хочу отобразить «Сообщение, отправленное raspi 1», но оно показало «Сообщение, отправленное raspi undefined» в слабом сообщении.

Python файл:

 import requests
 import json
 url = 'https://.....execute-api.us-west-2.amazonaws.com/product/events'
 data1 = json.dumps({'a': 1, 'b': 2})
 x = requests.post(url, data = data1)

Лямбда-фукция:

var aws = require('aws-sdk');
const https = require('https');

exports.handler = (event, context, callback) => {
var responseBody = {
    "key3": "value3",
    "key2": "value2",
    "key1": "value1"
};

var response = {
    "statusCode": 200,
    "headers": {
        "my_header": "my_value"
    },
    "body": JSON.stringify(responseBody),
    "isBase64Encoded": false
};
const payload = JSON.stringify({
    text: `Message sent by raspi ${event.body.a}`,
});

const options = {
   hostname: "hooks.slack.com",
   method: "POST",
   path: "https://hooks.slack.com/services/TPA2SP0GH/....",
};

const req = https.request(options,
  (res) => res.on("data", () => callback(null, response)))
  req.on("error", (error) => callback(JSON.stringify(error)));
  req.write(payload);
  req.end();

};

Ответы [ 2 ]

2 голосов
/ 14 января 2020

event.body - это строка json. вам нужно разобрать его перед использованием.

здесь:

const parsedBody = JSON.parse(event.body);
const payload = JSON.stringify({
  text: `Message sent by raspi ${parsedBody.a}`,
});

Надеюсь, это поможет.

0 голосов
/ 14 января 2020

Попробуйте получить к нему доступ с помощью ${event['a']}. Это все еще словарь, еще не преобразованный в объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...