|
| 1 | +# AWS Lambda Powertools for TypeScript <!-- omit in toc --> |
| 2 | + |
| 3 | +| ⚠️ **WARNING: Do not use this utility in production just yet!** ⚠️ | |
| 4 | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 5 | +| This AWS Lambda Powertools for TypeScript utility is currently released as beta developer preview and is intended strictly for feedback and testing purposes only. <br/>This version is not stable, and significant breaking changes might incur before going [before the GA release](https://github.com/awslabs/aws-lambda-powertools-typescript/milestone/9). | _ | |
| 6 | + |
| 7 | +A suite of utilities for AWS Lambda functions to ease the adoption of best practices such as tracing, structured logging, custom metrics, and more. |
| 8 | + |
| 9 | +You can use the library in both TypeScript and JavaScript code bases. |
| 10 | + |
| 11 | +> Also available in [Python](https://github.com/awslabs/aws-lambda-powertools-python), [Java](https://github.com/awslabs/aws-lambda-powertools-java), and [.NET](https://awslabs.github.io/aws-lambda-powertools-dotnet/). |
| 12 | +
|
| 13 | +**[Documentation](https://awslabs.github.io/aws-lambda-powertools-typescript/)** | **[npm](https://www.npmjs.com/org/aws-lambda-powertools)** | **[Roadmap](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/roadmap)** | **[Examples](https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/examples)** | **[Serverless TypeScript Demo](https://github.com/aws-samples/serverless-typescript-demo)** |
| 14 | + |
| 15 | +## Table of contents <!-- omit in toc --> |
| 16 | + |
| 17 | +- [Features](#features) |
| 18 | +- [Getting started](#getting-started) |
| 19 | + - [Installation](#installation) |
| 20 | + - [Examples](#examples) |
| 21 | + - [Serverless TypeScript Demo application](#serverless-typescript-demo-application) |
| 22 | +- [Contribute](#contribute) |
| 23 | +- [Roadmap](#roadmap) |
| 24 | +- [Connect](#connect) |
| 25 | +- [Credits](#credits) |
| 26 | +- [License](#license) |
| 27 | + |
| 28 | +## Features |
| 29 | + |
| 30 | +* **[Tracer](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/tracer/)** - Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions |
| 31 | +* **[Logger](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context |
| 32 | +* **[Metrics](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF) |
| 33 | +* **[Parameters](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM, Secrets Manager, AppConfig, and DynamoDB |
| 34 | + |
| 35 | +## Getting started |
| 36 | + |
| 37 | +Find the complete project's [documentation here](https://awslabs.github.io/aws-lambda-powertools-typescript). |
| 38 | + |
| 39 | +### Installation |
| 40 | + |
| 41 | +The AWS Lambda Powertools for TypeScript utilities follow a modular approach, similar to the official [AWS SDK v3 for JavaScript](https://github.com/aws/aws-sdk-js-v3). |
| 42 | +Each TypeScript utility is installed as standalone NPM package. |
| 43 | + |
| 44 | +Install all three core utilities at once with this single command: |
| 45 | + |
| 46 | +```shell |
| 47 | +npm install @aws-lambda-powertools/logger @aws-lambda-powertools/tracer @aws-lambda-powertools/metrics |
| 48 | +``` |
| 49 | + |
| 50 | +Or refer to the installation guide of each utility: |
| 51 | + |
| 52 | +👉 [Installation guide for the **Tracer** utility](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/tracer#getting-started) |
| 53 | + |
| 54 | +👉 [Installation guide for the **Logger** utility](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger#getting-started) |
| 55 | + |
| 56 | +👉 [Installation guide for the **Metrics** utility](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/metrics#getting-started) |
| 57 | + |
| 58 | +👉 [Installation guide for the **Parameters** utility](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/parameters/#getting-started) |
| 59 | + |
| 60 | +### Examples |
| 61 | + |
| 62 | +* [CDK](https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/examples/cdk) |
| 63 | +* [SAM](https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/examples/sam) |
| 64 | + |
| 65 | +### Serverless TypeScript Demo application |
| 66 | + |
| 67 | +The [Serverless TypeScript Demo](https://github.com/aws-samples/serverless-typescript-demo) shows how to use Lambda Powertools for TypeScript. |
| 68 | +You can find instructions on how to deploy and load test this application in the [repository](https://github.com/aws-samples/serverless-typescript-demo). |
| 69 | + |
| 70 | +## Contribute |
| 71 | + |
| 72 | +If you are interested in contributing to this project, please refer to our [Contributing Guidelines](https://github.com/awslabs/aws-lambda-powertools-typescript/blob/main/CONTRIBUTING.md). |
| 73 | + |
| 74 | +## Roadmap |
| 75 | + |
| 76 | +The roadmap of Powertools is driven by customers’ demand. |
| 77 | +Help us prioritize upcoming functionalities or utilities by [upvoting existing RFCs and feature requests](https://github.com/awslabs/aws-lambda-powertools-typescript/issues), or [creating new ones](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/new/choose), in this GitHub repository. |
| 78 | + |
| 79 | +## Connect |
| 80 | + |
| 81 | +* **AWS Lambda Powertools on Discord**: `#typescript` - **[Invite link](https://discord.gg/B8zZKbbyET)** |
| 82 | + |
| 83 | + |
| 84 | +## Credits |
| 85 | + |
| 86 | +Credits for the Lambda Powertools idea go to [DAZN](https://github.com/getndazn) and their [DAZN Lambda Powertools](https://github.com/getndazn/dazn-lambda-powertools/). |
| 87 | + |
| 88 | +## License |
| 89 | + |
| 90 | +This library is licensed under the MIT-0 License. See the LICENSE file. |
0 commit comments