lambda-powertools-http-client
HTTP client that automatically forwards correlation IDs (captured via @dazn/lambda-powertools-correlation-ids
), and follows DAZN's convention around recording metrics around integration points.
Main features:
-
auto-forwards any correlation IDs captured with the @dazn/lambda-powertools-correlation-ids
package as HTTP headers
-
auto-record custom metrics using the @dazn/datadog-metrics
package, which defaults to async mode (i.e. writing to stdout
in DogStatsD format) but can be configured via the DATADOG_METRICS_MODE
environment variable
-
custom metrics include:
metric names can be overriden with the metricName
option (see below for details)
-
all custom metrics include the tags awsRegion
, functionName
, functionVersion
, method
(e.g. POST
) and path
(e.g. /v1/signin
)
-
you can add additional tags by passing them in via the metricTags
option (see below for details)
-
supports timeout
Getting Started
Install from NPM: npm install @dazn/lambda-powertools-http-client
API
Basic usage looks like this:
const HTTP = require('@dazn/lambda-powertools-http-client')
const sayIt = async () => {
const httpRequest = {
uri: `https://example.com/dev/say`,
method: 'post',
body: { message: 'hello world' }
}
await HTTP(httpRequest)
}
It's essentially a function that accepts a request of type:
{
uri/url : string (either uri or url must be specified)
method : GET (default) | POST | PUT | HEAD | DELETE | PATCH
headers : object
qs : object
body : object
metricName [optional] : string
metricTags [optional] : string []
timeout [optional] : int (millis)
}