Как мне захватить событие из ALB для лямбда-функции и извлечь из него «хост»? - PullRequest
1 голос
/ 08 января 2020

У меня есть функция лямбда-на-краю, которая получает событие облачного фронта и использует «хост» для выполнения динамо-поиска БД. Ниже приведен фрагмент кода, который получает событие cf.

    function main(event, context, callback) {        
      **const request = event.Records[0].cf.request;**
      const headers = request.headers;
      const host = headers.host[0].value;

  };  

Я пытаюсь заменить облачный фронт ALB. Я относительно новичок в node.js и пытаюсь захватить событие из ALB (входящий запрос http или https) и извлечь из него хост. Я попробовал это, но это не похоже на работу.

    function main(event, context, callback) {
      **const request = event;**
      const headers = request.headers;
      const host = headers.host[0].value
}

Вот пример события от Application Load Balancer (из документации aws)

{
    "requestContext": {
        "elb": {
            "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/lambda-279XGJDqGZ5rsrHC2Fjr/49e9d65c45c6791a"
        }
    },
    "httpMethod": "GET",
    "path": "/lambda",
    "queryStringParameters": {
        "query": "1234ABCD"
    },
    "headers": {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "accept-encoding": "gzip",
        "accept-language": "en-US,en;q=0.9",
        "connection": "keep-alive",
        "host": "lambda-alb-123578498.us-east-2.elb.amazonaws.com",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
        "x-amzn-trace-id": "Root=1-5c536348-3d683b8b04734faae651f476",
        "x-forwarded-for": "72.12.164.125",
        "x-forwarded-port": "80",
        "x-forwarded-proto": "http",
        "x-imforwards": "20"
    },
    "body": "",
    "isBase64Encoded": false
}

Любая помощь с этим очень ценится.

1 Ответ

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

event.headers.host даст вам хост.

...