@deployfoundation/foundation-deploy

中文文档
0.2.55发布于 2026/10/27UNLICENSEDTypeScriptES Module近 30 天下载 3661

从一个已发布、已签名的版本中部署一个基金会实例:CDK应用程序和部署工具.

中文使用文档
文档目录8 节
  1. CDK 应用程序
  2. 部署工具
  3. 部署释放
  4. 执照检查
  5. 艺术品
  6. 发行账户(Foundry 41的自有)
  7. 出版
  8. 测试

@deployfoundation/foundation-deploy

应用一个基金会实例的 CDK 应用程序,以及 foundation-deploy,则 一个实例的管道运行.

基金会船只 没有实例文件, 没有公司配置. 一切情况 确定部署——账户、区域、Slack工作空间、GitHub org, 命名前缀, 提供其中的集成—— 生活在 YAML 中 部署的自己的仓库。 此软件包的两半都走这条路 找到那个档案,然后找出剩下的.

CDK 应用程序

cd packages/infra
bunx cdk synth --all -c instanceFile=../../../my-instance/instance.yaml
bunx cdk deploy --all -c instanceFile=/abs/path/instance.yaml -c agentImageTag=abc1234

上下文键 :

密钥含义
instanceFile要求. 实例 YAML 路径, 绝对或相对于工作目录 .
adminsSlack管理员的CSV ID。 默认为 admins {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}就这个案子来说 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}是的.
alarmEmailDLQ 提醒订阅器 。 默认为无.
agentImageTag在从本地架构部署 AgentCore 运行时间时需要; 发布时将图像命名 .
release部署已公布的新闻稿: vX.Y.Z。清单从 $FOUNDATION_RELEASE_DIR 或每版缓存目录 foundation-deploy 写作.
releaseManifest核实的释放清单的路径,这就是 foundation-deploy --release 通过.
releaseBucket基金会放出货单的钥匙 在释放模式下(或 FOUNDATION_RELEASE_BUCKET) (中文(简体) ).
deployRuntime=false跑步相:除了跑步时间之外,每个堆放相.
pipelineInstanceFile当实例文件位于代码Pipeline源的Repo内时, 当它与这里给出的路径不同时 .
vpcId, (中文(简体) ), createVpcEndpoints, (中文(简体) ), skipEndpoints, (中文(简体) ), agentSubnetIds网络出逃舱口,不变.

instance.config 解决 相对于实例文件自己的目录, (中文(简体) ), 因此是一个实例存储器,其布局为 .foundation/{instance.yaml,config.yaml} 写入 config: config.yaml 没有别的了.

FOUNDATION_SKIP_BUNDLE=1 换掉每个Lambda捆绑 换一个内含的根茎 这是什么 测试使用,以及没有Docker或Bun的主机的合成检查应使用什么.

部署工具

bun run packages/infra/bin/foundation-deploy.ts <command> --instance <path>
命令它会做什么
deploy构建和推动代理图像, cdk deploy --all,刷新运行时的秘密(和 cdk deploy 当它改变了,所以没有 集装箱靴子在旧的,同步配置.
post-deploy烟雾防御 探测恒山 宣传 live烟雾 live。 。 。 .
config:sync上传运行时配置(针对已部署的 Foundation 版本,必须是此工具的)和 Foundation 的产品技能到 S3 .
setup第一部署管弦乐,一作能.
github-app-create从已发送的列表模板创建实例的 GitHub App .
slack-manifest打印该实例的 Slack 应用程序 显示为 JSON( Slack CLI ) get-manifest 钩子合同).
stage-customization验证和进行租户拥有的运行时间配置.
crm-key写公司CRM的 crm/1 键入 --stdin输入 <secretPrefix>/crm/http (单位:千美元)crm.provider 类型 http) (中文(简体) ).
crm-check运行 crm/1 兼容套件:针对该案件的客户关系管理系统的读取案件及其存储的密钥,或 --base-url --tenant --key-stdin 并且没有实例,任何服务器,写出大小写,每个大小写都严格地考虑到服务器的取用端点(--harness-url)和部署投入(docs/crm-professor-contract.md#crm-check). CRM 也可以导入套件 : @deployfoundation/foundation-deploy/crm-conformance。 。 。 .
crm-replay重放代理的CMM(JSONL)在回滚至DynamoDB提供商后写入实例自己的表格.

--instance <path> 每个命令(或 FOUNDATION_INSTANCE_FILE 在管道中),但 crm-check --base-url,检查服务器而不是部署。 没有实例 名称,没有 instances/ 目录和无 默认: 猜测其目标的部署将是向错误部署 账户.

部署释放

# an instance repo's whole build step
npx @deployfoundation/foundation-deploy@$(cat foundation.version) deploy \
  --instance .foundation/instance.yaml

从 npm 安装的工具副本没有建立基础工作空间 从, 因此它部署 释放匹配 其自己的版本: 它获取 releases/vX.Y.Z/manifest.json 从基金会释放桶,核实 kMS的签名和每个文物的sha256, 并且只有部署。 在一个 与以往一样,同一命令在当地建立. --release <vX.Y.Z>, (中文(简体) ), --manifest <path|s3://…> 财务报告和审定财务报表 --release-bucket <name> 推翻选择.

在发行账户存在之前, 设置 FOUNDATION_RELEASE_KMS_KEY_ARN 页:1 已发布签名密钥 ARN: 工具船没有默认, 因为信任 错误的密钥 比检查什么更糟糕.

执照检查

deploy 核实案件 license.key 反对 https://license.foundry41.com/v1/verify (与 FOUNDATION_LICENSE_ENDPOINT在部署之前,发送钥匙 example id and the version——别无其他。 无密钥的例子是 带着警告跳过 确定拒绝停止部署;无法到达 30天内 终点不在案件缓存的核查上 拥有 <prefix>/license/last-verified 暗号.

该工具从未导入代理包 。 它运行在管道,而不是在 代理集装箱.

艺术品

src/artifacts.ts 是决定部署的字节所在的单一地点 它有两种模式:

  • 本地建筑 (默认). 每个Lambda捆绑都是用这个做的 与被钉住的邦斯合成,和 deploy 建设和推动 代理图像到案件本身的ECR第一。 捐助方部署 这边是工作树.
  • 释放。 。 。 . -c release=vX.Y.Z (或 -c releaseManifest=<path>+) 加上 (中文(简体) ) -c releaseBucket=<name>每一个Lambda的代码是 Code.fromBucket(...) 打开 而代理图像是基金会自己的 以文摘为主的寄存器。 没有建,所以管道不需要 Docker,没有Bun和基金会的退房.

src/release/manifest.ts 是其表象本身——计谋、建造者、 符号字节覆盖,和 verifyManifest,检查KMS 签名 在此之前 任何文物都会被读取 然后每个文物的sha256. src/release/kms.ts 是AWS的半边。 一个明显到达一个合成器 已经核实 foundation-deploy。 。 。 .

发行账户(Foundry 41的自有)

src/stacks/release-account-stack.ts 这里唯一的堆栈不是 证据 它持有什么发布 从释放桶, 页:1 foundation/agent 图像存储器、 KMS 签名密钥和 OIDC 角色 .github/workflows/release.yml 假设在标签推。 顾客来了 开桶的账号列表 数据库和密钥.

cd packages/infra
bunx cdk --app 'bun run bin/release-account.ts' diff FoundationRelease \
  -c customerAccountIds=111122223333,444455556666
bunx cdk --app 'bun run bin/release-account.ts' deploy FoundationRelease \
  -c customerAccountIds=111122223333,444455556666

一次,用手, 在释放账户。 其产出为四 发布工作流程需要的存储变量(FOUNDATION_RELEASE_BUCKET, (中文(简体) ), FOUNDATION_RELEASE_KMS_KEY_ARN, (中文(简体) ), FOUNDATION_RELEASE_ROLE_ARN图像 ),加上签名的关键ARN客户进行验证. 添加一个 客人是调用时间更长的 customerAccountIds。 。 。 .

出版

bun run --cwd packages/infra build   # dist/, Node target, ESM
cd packages/infra && npm pack --dry-run

构建将三个切入点——CLI、CDK应用程序和 发行账户应用软件 dist/,将工作空间包(即 因此 npm 安装 一个 aws-cdk-lib 两半都能看到. aws-cdk 本身是一个 依赖性,而不是依赖性:工具外壳到 CDK CLI 和 通过这个包而不是通过路径来解决.

柏油球携带 dist/, (中文(简体) ), src/ (表列模板从 在运行时, 代理图像的 Docker 文件, 引用构建图和 cdk.json它不携带 bin/: 这些类型脚本切入点需要 Bun 和工作空间,传送一个不能运行的应用程序条目是如何部署 选错人了. node dist/bin/foundation-deploy.js --help 从一个 提取出只安装了运行时间依赖的柏油球——无 Bun,无 基础检查——这正是一个实例的管道.

测试

bun test packages/infra

他们跑下去 bun test 和其余的回波——没有笑话,没有ts-node. 这个 快取测试弹壳到 cdk synth 对于两个固定装置,所以它需要 工作空间已安装,但没有 AWS 证书和 Docker .

固定是合成的(test/fixtures/: acme 打开每一个整合, beta 是CodePipeline部署的一个最小实例。 没有真正的公司出现 在这个包裹的任何地方.

版本与发布记录

@deployfoundation/foundation-deploy 共发布 60 个版本,首次发布于 2026/09/25;过去 12 个月发布了 60 个版本。

版本发布日期距今
0.2.55latest2026/10/2715 天前
0.2.542026/10/2716 天前
0.2.532026/10/2616 天前
0.2.522026/10/2617 天前
0.2.512026/10/2617 天前
0.2.502026/10/2518 天前

关于 @deployfoundation/foundation-deploy 的常见问题

@deployfoundation/foundation-deploy 是什么?

从一个已发布、已签名的版本中部署一个基金会实例:CDK应用程序和部署工具.

如何安装 @deployfoundation/foundation-deploy?

在项目目录运行 npm install @deployfoundation/foundation-deploy,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 foundation-deploy,可以用 npx foundation-deploy 直接运行。

@deployfoundation/foundation-deploy 支持 TypeScript 吗?

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

@deployfoundation/foundation-deploy 支持 ESM 还是 CommonJS?

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

@deployfoundation/foundation-deploy 可以商用吗?

@deployfoundation/foundation-deploy 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@deployfoundation/foundation-deploy 的下载量有多少?

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

@deployfoundation/foundation-deploy 还在维护吗?

最新版本 0.2.55 发布于 2026/10/27(15 天前);至今共发布 60 个版本,其中过去 12 个月发布了 60 个;首次发布于 2026/09/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。