# cdk-secret-manager-wrapper-layer 中文文档

规范地址：https://npmcn.com/package/cdk-secret-manager-wrapper-layer/

版本：2\.1\.313
npm 元数据更新时间：2026-11-03T06:42:57.608Z
中文译文更新时间：2026-11-03T07:19:04.563Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/cdk-secret-manager-wrapper-layer
原文对照：https://npmcn.com/package/cdk-secret-manager-wrapper-layer/?lang=original
项目主页：https://github.com/neilkuan/cdk-secret-manager-wrapper-layer#readme
源码仓库：https://github.com/neilkuan/cdk-secret-manager-wrapper-layer

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：186 kB，18 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：constructs ^10\.5\.1，aws-cdk-lib ^2\.181\.0
- 首次发布：2022-07-28T11:25:35.137Z
- 最新版本发布：2026-11-03T06:42:57.227Z
- 已发布版本数：1937（近 12 个月 117 个）

## 中文简介

Lambda层使用包装器脚本从Secrets Manager获取信息并创建环境变量。>的想法来自 [源](https://github.com/aws-samples/aws-lambda-environmental-variables-from-aws-secrets-manager)

## 安装

```sh
npm install cdk-secret-manager-wrapper-layer
```

也可以使用：`pnpm add cdk-secret-manager-wrapper-layer`、`yarn add cdk-secret-manager-wrapper-layer`、`bun add cdk-secret-manager-wrapper-layer`

## README

# `cdk-secret-manager-wrapper-layer`

Lambda层使用包装器脚本从Secrets Manager获取信息并创建环境变量。

> 想法从 [源](https://github.com/aws-samples/aws-lambda-environmental-variables-from-aws-secrets-manager)

## 更新

**2025-03-02: v2.1.0**

-   增加了Lambda层的架构参数支持
-   Python运行时从3.9更新到3.13
-   修正了示例代码中的处理程序名称
-   改进了层初始化和引用模式
-   增强了与AWS Lambda ARM64架构的兼容性

## 例子

```ts
import { App, Stack, CfnOutput, Duration } from 'aws-cdk-lib';
import { Effect, PolicyStatement } from 'aws-cdk-lib/aws-iam';
import { Function, Runtime, Code, FunctionUrlAuthType, Architecture } from 'aws-cdk-lib/aws-lambda';
import { CfnSecret } from 'aws-cdk-lib/aws-secretsmanager';
import { SecretManagerWrapperLayer } from 'cdk-secret-manager-wrapper-layer';
const env = {
  region: process.env.CDK_DEFAULT_REGION,
  account: process.env.CDK_DEFAULT_ACCOUNT,
};
const app = new App();
const stack = new Stack(app, 'testing-stack', { env });

/**
 * Example create an Secret for testing.
 */
const secret = new CfnSecret(stack, 'MySecret', {
  secretString: JSON.stringify({
    KEY1: 'VALUE1',
    KEY2: 'VALUE2',
    KEY3: 'VALUE3',
  }),
});

const lambdaArchitecture = Architecture.X86_64;

const layer = new SecretManagerWrapperLayer(stack, 'SecretManagerWrapperLayer', {
  lambdaArchitecture,
});

const lambda = new Function(stack, 'fn', {
  runtime: Runtime.PYTHON_3_13,
  code: Code.fromInline(`
import os
def handler(events, contexts):
    env = {}
    env['KEY1'] = os.environ.get('KEY1', 'Not Found')
    env['KEY2'] = os.environ.get('KEY2', 'Not Found')
    env['KEY3'] = os.environ.get('KEY3', 'Not Found')
    return env
    `),
  handler: 'index.handler',
  layers: [layer.layerVersion],
  timeout: Duration.minutes(1),
  /**
   * you need to define this 4 environment various.
   */
  environment: {
    AWS_LAMBDA_EXEC_WRAPPER: '/opt/get-secrets-layer',
    SECRET_REGION: stack.region,
    SECRET_ARN: secret.ref,
    API_TIMEOUT: '5000',
  },
  architecture: lambdaArchitecture,
});

/**
 * Add Permission for lambda get secret value from secret manager.
 */
lambda.role!.addToPrincipalPolicy(
  new PolicyStatement({
    effect: Effect.ALLOW,
    actions: ['secretsmanager:GetSecretValue'],
    // Also you can use find from context.
    resources: [secret.ref],
  }),
);

/**
 * For Testing.
 */
const FnUrl = lambda.addFunctionUrl({
  authType: FunctionUrlAuthType.NONE,
});

new CfnOutput(stack, 'FnUrl', {
  value: FnUrl.url,
});
```

## 测试

```bash
# ex: curl https://sdfghjklertyuioxcvbnmghj.lambda-url.us-east-1.on.aws/
curl ${FnUrl}
{"KEY2":"VALUE2","KEY1":"VALUE1","KEY3":"VALUE3"}
```

## 常见问题

### cdk-secret-manager-wrapper-layer 是什么？

Lambda层使用包装器脚本从Secrets Manager获取信息并创建环境变量。\>的想法来自 源

### 如何安装 cdk-secret-manager-wrapper-layer？

在项目目录运行 npm install cdk-secret-manager-wrapper-layer，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：constructs（^10\.5\.1）、aws-cdk-lib（^2\.181\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### cdk-secret-manager-wrapper-layer 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### cdk-secret-manager-wrapper-layer 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### cdk-secret-manager-wrapper-layer 可以商用吗？

cdk-secret-manager-wrapper-layer 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### cdk-secret-manager-wrapper-layer 还在维护吗？

最新版本 2\.1\.313 发布于 2026/11/03（今天）；至今共发布 1937 个版本，其中过去 12 个月发布了 117 个；首次发布于 2022/07/28。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

