AWS Lambda 的动力工具( TypeScript)
用于 AWS Lambda (TypeScript) 的 Powertools 是用于执行无服务器的开发者工具包 最佳做法和增加开发者的速度。 。 。 .
您可以在 TypeScript 和 JavaScript 代码基础中使用软件包.
介绍
参数工具提供高级功能,从中获取一个或多个参数值
- AWS 系统管理器
- AWS 保密管理器, (中文(简体) ),
- AWS 应用程序配置, (中文(简体) ),
- 亚马逊迪纳摩DB, (中文(简体) ),
- 或您自己的参数商店.
使用量
从 AWS SSM 参数存储获取参数
要启动, 请为 JavaScript v3 安装库和相应的 AWS SDK :
npm install @aws-lambda-powertools/parameters @aws-sdk/client-ssm
接下来审查您 AWS Lambda 函数所附带的 IAM 权限,并确保您允许 详细行动 在工具文档中.
您可以使用 getParameter 高级职务.
import { getParameter } from '@aws-lambda-powertools/parameters/ssm';
export const handler = async (): Promise<void> => {
// Retrieve a single parameter
const parameter = await getParameter('/my/parameter');
console.log(parameter);
};
对于多个参数,您可以使用 getParameters 在路径下连续获取所有参数:
import { getParameters } from '@aws-lambda-powertools/parameters/ssm';
export const handler = async (): Promise<void> => {
/**
* Retrieve multiple parameters from a path prefix recursively.
* This returns an object with the parameter name as key
*/
const parameters = await getParameters('/my/path/prefix');
for (const [key, value] of Object.entries(parameters || {})) {
console.log(`${key}: ${value}`);
}
};
要使用全名获取不同的参数,请使用 getParametersByName 函数 :
import { Transform } from '@aws-lambda-powertools/parameters';
import { getParametersByName } from '@aws-lambda-powertools/parameters/ssm';
import type { SSMGetParametersByNameOptions } from '@aws-lambda-powertools/parameters/ssm/types';
const props: Record<string, SSMGetParametersByNameOptionsInterface> = {
'/develop/service/commons/telemetry/config': {
maxAge: 300,
transform: Transform.JSON,
},
'/no_cache_param': { maxAge: 0 },
'/develop/service/payment/api/capture/url': {}, // When empty or undefined, it uses default values
};
export const handler = async (): Promise<void> => {
// This returns an object with the parameter name as key
const parameters = await getParametersByName(props, { maxAge: 60 });
for (const [key, value] of Object.entries(parameters)) {
console.log(`${key}: ${value}`);
}
};
检查 文档 更多实例,以及 高级科 详细关于缓冲,变形,定制 基础SDK,等等.
从亚马逊秘密管理器获取秘密
要启动, 请为 JavaScript v3 安装库和相应的 AWS SDK :
npm install @aws-lambda-powertools/parameters @aws-sdk/client-secrets-manager
接下来审查您 AWS Lambda 函数所附带的 IAM 权限,并确保您允许 详细行动 在工具文档中.
您可以使用 getSecret 函数 :
import { getSecret } from '@aws-lambda-powertools/parameters/secrets';
export const handler = async (): Promise<void> => {
// Retrieve a single secret
const secret = await getSecret('my-secret');
console.log(secret);
};
检查 文档 更多实例,以及 高级科 详细关于缓冲,变形,定制 基础SDK,等等.
从 Amazon DynamoDB 获取值
要启动, 请为 JavaScript v3 安装库和相应的 AWS SDK :
npm install @aws-lambda-powertools/parameters @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb
接下来审查您 AWS Lambda 函数所附带的 IAM 权限,并确保您允许 详细行动 在工具文档中.
您可以使用 DynamoDBProvider.get() 方法 :
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
const dynamoDBProvider = new DynamoDBProvider({ tableName: 'my-table' });
export const handler = async (): Promise<void> => {
// Retrieve a value from DynamoDB
const value = await dynamoDBProvider.get('my-parameter');
console.log(value);
};
为获取多个参数, 您可以使用 DynamoDBProvider.getMultiple() 方法代替:
import { DynamoDBProvider } from '@aws-lambda-powertools/parameters/dynamodb';
const dynamoDBProvider = new DynamoDBProvider({ tableName: 'my-table' });
export const handler = async (): Promise<void> => {
/**
* Retrieve multiple values by performing a Query on the DynamoDB table.
* This returns a dict with the sort key attribute as dict key.
*/
const values = await dynamoDBProvider.getMultiple('my-hash-key');
for (const [key, value] of Object.entries(values || {})) {
// key: param-a
// value: my-value-a
console.log(`${key}: ${value}`);
}
};
检查 文档 更多实例,以及 高级科 详细关于缓冲,变形,定制 基础SDK,等等.
从 AWS appConfig 获取配置
要启动, 请为 JavaScript v3 安装库和相应的 AWS SDK :
npm install @aws-lambda-powertools/parameters @aws-sdk/client-appconfigdata
接下来审查您 AWS Lambda 函数所附带的 IAM 权限,并确保您允许 详细行动 在工具文档中.
您可以使用 AWS AppConfig 获取应用程序配置 getAppConfig 函数 :
import { getAppConfig } from '@aws-lambda-powertools/parameters/appconfig';
export const handler = async (): Promise<void> => {
// Retrieve a configuration, latest version
const config = await getAppConfig('my-configuration', {
environment: 'my-env',
application: 'my-app',
});
console.log(config);
};
检查 文档 更多实例,以及 高级科 详细关于缓冲,变形,定制 基础SDK,等等.
从 AWS appConfig 代理获取配置
如果你使用 AWS appConfig 代理蓝巴达扩展,您可以从代理商本地 HTTP 端点获取应用程序配置 getConfig 函数 :
import { getConfig } from '@aws-lambda-powertools/parameters/appconfig-agent';
// Retrieve a configuration from the AppConfig Agent Lambda extension
const config = await getConfig('my-configuration', {
environment: 'my-env',
application: 'my-app',
transform: 'json',
});
export const handler = async (): Promise<void> => {
console.log(config);
};
由于缓冲,投票, 和先发制人由特工处理, getConfig 总是从代理的本地端取出,不需要AWS SDK. 检查 文档 更多细节.
贡献
如果你有兴趣为这个项目捐款,请参见我们 贡献准则。 。 。 .
路线图
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文件.