簡體   English   中英

從 aws lambda 調用 api 網關

[英]Invoke an api gateway from an aws lambda

我嘗試從由 sqs 隊列觸發的 aws lambda 調用 api 網關。 而我的 api 網關調用另一個 lambda function 來獲取一些信息。

但是當我從我的 sqs 隊列發送消息時,lambda 被正確執行,但我的 api 網關的調用沒有被執行。

我的代碼如下:

var https = require('https');
const URL = process.env.API_GATEWAY_URL;

exports.handler = async (event, context, callback) => {

  console.log("hello");

  https.get(URL, function (result) {
      console.log('Success, with: ' + result.statusCode);
      context.done(null);
  }).on('error', function (err) {
      console.log('Error, with: ' + err.message);
      context.done("Failed");
  });

};

這是我在 cloudwatch 中的日志:

START RequestId:4eeccd03-b7d2-5efc-aedb-8c3a14411101 版本:$LATEST 2020-04-21T13:14:01.524Z 4eeccd03-b7d2-5efc-aedb-8c3a14411101 INFO hello END RequestId:4eeccd1101-b7d3a141-cef8

但我期待這樣的事情:

START RequestId:4eeccd03-b7d2-5efc-aedb-8c3a14411101 版本:$LATEST 2020-04-21T13:14:01.524Z 4eeccd03-b7d2-5efc-aedb-8c3a14411101 信息你好 2020-04-271T13:14:03ee。 -5efc-aedb-8c3a14411101 成功,帶有:200 END RequestId:4eeccd03-b7d2-5efc-aedb-8c3a14411101

或者:

START RequestId:4eeccd03-b7d2-5efc-aedb-8c3a14411101 版本:$LATEST 2020-04-21T13:14:01.524Z 4eeccd03-b7d2-5efc-aedb-8c3a14411101 信息你好 2020-04-271T13:14:03ee。 -5efc-aedb-8c3a14411101 錯誤,帶有:message_error END RequestId:4eeccd03-b7d2-5efc-aedb-8c3a14411101

而我所有的 lambda 都在同一個 VPC 中。

有任何想法嗎?

您將較新的異步 function 處理程序與較舊的上下文/回調模式混合在一起。

如果您想使用舊樣式,請刪除async function 裝飾器。

如果您想使用較新的(首選)樣式,請更改您的代碼以返回 promise,例如:

const https = require('https');
const URL = 'https://dummy.restapiexample.com/api/v1/employees';

exports.handler = async (event, context) => {
    return new Promise((resolve, reject) => {
        https.get(URL,(res) => {
            let body = "";

            res.on("data", (chunk) => {
                body += chunk;
            });

            res.on("end", () => {
                console.log(body);
                resolve(body);
            });

        }).on("error", (error) => {
            reject(error);
        });  

    });
};

當然,向正確的 URL 發出 GET 請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM