Получение параметров пути в amazon lambda с использованием Node - PullRequest
0 голосов
/ 30 декабря 2018

В лямбда-выражении AWS, написанном на Node, я хочу извлечь следующую часть URL-адреса при выполнении вызова GET через шлюз API:

/devices/{id} --> {id} will be replaced by a value, and that is the value I want!

Я знаю, что для получения QueryStringParameters вы просто используете

event.queryStringParameters.[parameter name]

но как мне это сделать для параметров пути, как для {id} выше.Также есть ли хорошее место, где я могу всесторонне узнать о написании лямбда-выражений для API в узле?

Ответы [ 3 ]

0 голосов
/ 31 декабря 2018

Решение очень похоже на то, что вы упомянули в первую очередь.Просто используйте event.pathParameters вместо event.queryStringParameters.

0 голосов
/ 02 января 2019

Краткий ответ:

const { id } = event.pathParameters;

Недавно я выпустил короткое обучающее видео, в котором подробно демонстрируется, как создавать API-интерфейсы REST API Gateway и интегрировать их с AWS Lambda (NodeJS).Проверьте это здесь:

Безсерверная архитектура: AWS API Gateway & Lambda

0 голосов
/ 30 декабря 2018

Я предполагаю, что вы используете лямбда-прокси, здесь я вставляю образец объекта события для лямбда-прокси.

    {
  "message": "Good day, John of Seattle. Happy Friday!",
  "input": {
    "resource": "/{proxy+}",
    "path": "/Seattle",
    "httpMethod": "POST",
    "headers": {
      "day": "Friday"
    },
    "queryStringParameters": {
      "time": "morning"
    },
    "pathParameters": {
      "proxy": "Seattle"
    },
    "stageVariables": null,
    "requestContext": {
      "path": "/{proxy+}",
      "accountId": "123456789012",
      "resourceId": "nl9h80",
      "stage": "test-invoke-stage",
      "requestId": "test-invoke-request",
      "identity": {
        "cognitoIdentityPoolId": null,
        "accountId": "123456789012",
        "cognitoIdentityId": null,
        "caller": "AIDXXX...XXVJZG",
        "apiKey": "test-invoke-api-key",
        "sourceIp": "test-invoke-source-ip",
        "accessKey": "ASIXXX...XXDQ5A",
        "cognitoAuthenticationType": null,
        "cognitoAuthenticationProvider": null,
        "userArn": "arn:aws:iam::123456789012:user/kdeding",
        "userAgent": "Apache-HttpClient/4.5.x (Java/1.8.0_131)",
        "user": "AIDXXX...XXVJZG"
      },
      "resourcePath": "/{proxy+}",
      "httpMethod": "POST",
      "apiId": "r275xc9bmd"
    },
    "body": "{ \"callerName\": \"John\" }",
    "isBase64Encoded": false
  }
}

путь может быть извлечен из ключа "путь" в объекте события, он можетбыть доступным из event.path и после этого вы можете использовать функцию манипуляции со строками для дальнейшей манипуляции с ней.

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

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