# @capraconsulting/webapp-deploy-lambda 中文文档

规范地址：https://npmcn.com/package/%40capraconsulting/webapp-deploy-lambda/

版本：2\.5\.201
npm 元数据更新时间：2026-11-09T03:45:56.974Z
中文译文更新时间：2026-11-09T04:44:52.534Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40capraconsulting/webapp-deploy-lambda
原文对照：https://npmcn.com/package/%40capraconsulting/webapp-deploy-lambda/?lang=original
项目主页：https://github.com/capralifecycle/webapp-deploy-lambda#readme
源码仓库：https://github.com/capralifecycle/webapp-deploy-lambda

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

- 包体积（解压后）：50.6 kB，15 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：constructs ^10\.0\.0，aws-cdk-lib ^2\.0\.0
- 首次发布：2020-06-18T11:31:27.054Z
- 最新版本发布：2026-11-09T03:45:56.625Z
- 近 30 天下载量：13270（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：232（近 12 个月 199 个）

## 中文简介

用于向 S3 和 CloudFront 部署 Webapp 版本的 CDK 构建

## 安装

```sh
npm install @capraconsulting/webapp-deploy-lambda
```

也可以使用：`pnpm add @capraconsulting/webapp-deploy-lambda`、`yarn add @capraconsulting/webapp-deploy-lambda`、`bun add @capraconsulting/webapp-deploy-lambda`

## README

# 用于部署 Webapp 释放的 CDK 构造

此工程包含一个用于 AWS Lambda 函数处理的 CDK 构造 向 S3 桶部署捆绑的静态网络应用程序 在一段时间内保存以前部署的文件 阈值.

它会做什么:

1.  从 S3 获取部署日志
2.  以可选过滤方式获取捆绑的文物并提取本地
3.  上传所有非html文件到 S3
4.  上传 html 文件到 S3
5.  将上传的项目添加到部署日志
6.  从 S3 中删除旧项目
7.  部署日志中的旧部署
8.  下次运行时将部署日志存储到 S3
9.  可选择无效 CloudFront 分布

## 保存旧文件

使用代码拆分的单页应用程序会导致客户端 推迟装入许多文件 。 为了避免部署干扰用户,我们 无法删除先前的文件( 例如使用 `aws s3 sync --delete`),作为 这会导致客户端在浏览应用程序时出现404个错误. CloudFront 在许多情况下会为大多数用户隐藏这个问题,原因是 它的边缘缓存, 但对于没有的用户来说仍然是个问题 自前一天起更新申请.

处理这个问题的一个方法是永远不要删除任何文件 S3水桶(英语:S3 buckle). 这意味着桶会填满很多旧文件. 此项目通过删除旧文件的方式处理它.

仍在使用五天前部署的应用程序的用户不应 被打乱。 为了遵守这个承诺 我们保留最新的部署 5天多前发生的,删除旧文件中没有的文件 更应该提到它们.

## 触发部署

```bash
aws lambda invoke \
  --function-name my-deploy-lambda \
  --payload '{
    "ResourceProperties": {
      "artifactS3Url": "s3://my-bucket/my-release.tgz"
    },
    "RequestType": "Update"
  }' \
  /tmp/out.log
```

## 发展

本地测试 :

```bash
$ uv sync

# Adjust to your project. See config.py for full list.
$ export TARGET_BUCKET_URL=s3://my-website/web
$ export EXPIRE_SECONDS=86400
$ export DEPLOY_LOG_BUCKET_URL=s3://my-website/deployments.log
$ export CF_DISTRIBUTION_ID=EKJ2IPY1KTEAR1

# Adjust artifact path.
$ uv run python -m webapp_deploy.main s3://my-bucket/my-release.tgz
```

## 页:1

-   为了避免在使用和更新部署日志时出现种族条件,不 应允许同时执行羊肉.

## 常见问题

### @capraconsulting/webapp-deploy-lambda 是什么？

用于向 S3 和 CloudFront 部署 Webapp 版本的 CDK 构建

### 如何安装 @capraconsulting/webapp-deploy-lambda？

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

### @capraconsulting/webapp-deploy-lambda 支持 TypeScript 吗？

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

### @capraconsulting/webapp-deploy-lambda 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @capraconsulting/webapp-deploy-lambda 可以商用吗？

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

### @capraconsulting/webapp-deploy-lambda 的下载量有多少？

根据 npm 官方下载统计，@capraconsulting/webapp-deploy-lambda 在 2026/10/09 – 2026/11/07 这 30 天内被下载 13,270 次，日均约 442 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @capraconsulting/webapp-deploy-lambda 还在维护吗？

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

