AWS Lambda (TypeScript) - 签名工具
用于 AWS Lambda (TypeScript) 的 Powertools 是用于执行无服务器的开发者工具包 最佳做法和增加开发者的速度。 。 。 .
介绍
这个工具提供了一种方式,可以使用 AWS 签名版本4(SigV4) 签名进程,因此您可以调用IAM- 认证端点, 如 Amazon API Gateway, AWS Lambda 函数 URL, 或是 AWS AppSync 从您 Lambda 函数内部调用 .
主要特点
- 签名网络标准
Request带有 AWS 签名版本 4 的对象 - 已签名
fetch在一步内发送签名请求 - 通过曝光已签名的请求和信头与 HTTP 客户端合作
- 默认从 Lambda 运行时间读取证书和区域, 没有额外的依赖性
使用量
要启动, 请通过运行安装库 :
npm install @aws-lambda-powertools/signer
签署请求
签名者会采用网络标准 Request (或任何你能传递给 fetch,例如 URL 字符串),并返回一个新的,已签名 Request 添加了 SigV4 标题。 它没有执行网络I/O,所以你继续控制请求的发送方式.
import { SigV4Signer } from '@aws-lambda-powertools/signer/sigv4';
const signer = new SigV4Signer({ service: 'execute-api' });
export const handler = async () => {
const signed = await signer.sign(
'https://example.execute-api.us-east-1.amazonaws.com/items'
);
const response = await fetch(signed);
await response.json();
};
默认情况下,签名者会从Lambda运行时总是提供的环境变量中读取AWS的证书和区域,因此在Lambda运行时不需要额外的配置.
发送签名请求
如果你想签署并立即发送请求,请使用 createSignedFetcher。它消耗一个签名实例,并返回一个与全局签名相同的函数 fetch,在发送前签署每项请求.
import { createSignedFetcher } from '@aws-lambda-powertools/signer/fetch';
import { SigV4Signer } from '@aws-lambda-powertools/signer/sigv4';
const signer = new SigV4Signer({ service: 'execute-api' });
const signedFetch = createSignedFetcher(signer);
export const handler = async () => {
const response = await signedFetch(
'https://example.execute-api.us-east-1.amazonaws.com/items',
{
method: 'POST',
body: JSON.stringify({ name: 'powertools' }),
}
);
await response.json();
};
使用其他 HTTP 客户端
签名和发送被刻意分开, 这样您就可以使用 HTTP 客户端的签名请求( 例如) axios, (中文(简体) ), got,生成的SDK客户端,或请求截取器. 打电话 sign() 获得签名 Request,然后读取 url, (中文(简体) ), method,以及 headers。 。 。 .
见 文档 关于配置证书和区域、处理错误和使用其他HTTP客户端的更详细信息.
贡献
如果你有兴趣为这个项目捐款,请参见我们 贡献准则。 。 。 .
路线图
AWS Lambda(英语:TypeScript)的"Powertools"行进图受顾客需求所驱动. 帮助我们确定未来功能或公用事业的优先次序 更新现有 RFC 和功能请求,或 创建新的,在此 GitHub 仓库中.
连接
- 关于 GitHub 讨论的 AWS Lambda 工具数字 : 加入对话
- 电子邮件数字 : aws-lambda-powertools- [email protected] 互联网档案馆的存檔,存档日期2014-12-21
如何支持 AWS Lambda (TypeScript) 的 Powertools ?
成为参考客户
了解哪些公司正在使用这个图书馆对于帮助在内部确定项目的优先次序很重要。 如果你的同伴们 正在对 AWS Lambda (TypeScript) 使用 Powertools , 您可以请求将您的姓名和标志添加到 README 文件 提高a AWS Lambda( TypeScript) 的辅助电源工具(成为参考) 问题.
除其他外,下列公司使用Powertools:
- Alma 媒体
- 应用自己
- 贝利·纳尔逊
- Banx 软件
- 凯伦特
- 可认证
- 代码
- EF 教育第一
- 埃尔瓦
- 飞行重量
- 欺诈
- 全球数据网
- 关节
- 半径
- 内向
- 本地软件包
- 我们的隐私
- 完美邮递
- 传感器
- 铁丝网股份有限公司
- 绊脚石10
- 学校
分享你的工作
分享您为 AWS Lambda (TypeScript) 所做的 Powertools 。 看看社区有什么 已经共享 关于AWS Lambda的Powertools (TypeScript).
使用 Lambda 层
这帮助我们了解谁用Powertools为AWS Lambda(英语:TypeScript (TypeScript))以非侵入性的方式使用Powertools,并帮助我们获得未来对其他AWS Lambda语言的Powertool的投资. 何时 使用图层,您可以添加Powertools作为dev的依赖性,以不影响开发过程.
许可证
这个图书馆根据MIT-0许可证获得许可. 见LICENSE文件.