@anvil-cloud/sdk

中文文档
0.1.26发布于 2026/11/07Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 2095

Anvil——安全不违约云基础设施组件

中文使用文档
文档目录9 节
  1. 安装
  2. 默认安全
  3. App类
  4. 转发参考资料( E) ctx.ref (中文(简体) )
  5. 赠款
  6. SvelteKit 部署
  7. 逃逸舱门
  8. 链接
  9. 许可证

@anvil-cloud/sdk (英语)

云基础设施是默认安全的——不是偶然的.

Anvil将生云资源包装成有见解,有生产准备的部分. 没有200行Terraform模块. 没有复制安全配置 。 只要说出你需要什么 安维尔处理其余的.

建造在 普鲁米。 。 。 .

安装

npm install @anvil-cloud/sdk

默认安全

每艘Anvil组件船,自第一天起就与生产保持一致——公共访问被封锁,加密强制,成本标记被应用. 目标不是让遵守自动化,而是让它成为你实际上可以建设的平台.

App类

每个 Anvil 程序开始 new App()编辑 run 回调收到一个 Context 改为:

  • ctx.stage —— 当前部署阶段( dev 隔离默认为您的 OS 用户名)
  • ctx.project - 项目名称来自 anvil.yaml
  • ctx.export(name, value) 出口堆栈产出
  • ctx.providers - 为多区域/多账户指定云供应商
  • ctx.ref(id) - 参考其他地方申报的资源(见下文)

转发参考资料( E)ctx.ref(中文(简体) )

通常你通过它分配给的变量来引用资源 表示必须先申报. ctx.ref('id') 让您引用资源 联合国 逻辑名称 - 甚至一个宣布 待会 在程序中:

import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';

export default new App({
  run(ctx) {
    const fn = new anvil.aws.Lambda('processor', {
      runtime: 'nodejs20.x',
      handler: 'src/index.handler',
      environment: {
        // forward reference — `db` is declared below
        DSQL_ENDPOINT: ctx.ref<anvil.aws.DSQL>('db').endpoint,
      },
    });

    const db = new anvil.aws.DSQL('db', { /* ... */ });
  },
});

ctx.ref('db').endpoint 决定: 不变 输出为 db.endpoint - 他们是 可互换. 通用语言(<anvil.aws.DSQL>)只是自动完成.

这个 逃生舱门 (a) 宣布令尴尬的情况 代码直接引用资源。 有两件事要知道:

  • 使参考文献向一个方向流动. 因为你可以指向任何一种方式,你 能够意外创建循环( A 引用 B 的输出) 财务报告和审定财务报表 B参考 A's. 这种僵局是部署的僵局,而不是错误地——所以不要这样做.
  • 一种打字或从未申报的ID失败,在任何部署之前都有明显的错误.

赠款

补助金是Anvil电线在资源之间允许的。 而不是用手写IAM政策,你叫 .grant() anvil自动处理IAM角色政策和环境变量注入.

一个Lambda读取从一桶:

import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';

export default new App({
  run(ctx) {
    const bucket = new anvil.aws.Bucket('uploads', {
      dataClassification: 'sensitive',
    });

    const fn = new anvil.aws.Lambda('processor', {
      runtime: 'nodejs20.x',
      handler: 'src/index.handler',
    });

    // Grants the Lambda read access to the bucket and scopes down to specific bucket paths
    // Anvil creates the IAM policy and injects UPLOADS_BUCKET_NAME
    // into the Lambda's environment automatically.
    //
    bucket.grant(fn, { actions: ['read'], path: ['user/*'] });
  },
});

安维尔在引擎盖下做什么:

  • 创建 IAM RolePolicy 范围为要求采取的确切行动
  • 将资源标识符作为目标上的环境变量(例如. UPLOADS_BUCKET_NAME(中文(简体) )
  • 没有手工 ARN 接线, 没有被遗忘的权限

SvelteKit 部署

向有单一组件的AWS部署一个SvelteKit应用程序。 Anvil protects S3, CloudFront, ACM, Lambda (通过 Lambda Web 适配器), 和 Route 53 — 有 HTTPS 和自定义域从框外出:

import { App } from '@anvil-cloud/sdk';
import * as anvil from '@anvil-cloud/sdk';

export default new App({
  run(ctx) {
    const site = new anvil.aws.SvelteKitSite('web', {
      path: 'web', // the SvelteKit project folder — Anvil runs the build
      domain: 'myapp.com',
    });

    ctx.export('url', site.url);
  },
});

逃逸舱门

每个组件接受a hatch 参数 —— 当您需要突破默认时, 用于覆盖基础资源配置的逃生舱:

const bucket = new anvil.aws.Bucket('custom', {
  dataClassification: 'non-sensitive',
  hatch: {
    bucket: { forceDestroy: true, tags: { env: 'dev' } },
  },
});

许可证

阿帕奇 - 2.0

版本与发布记录

@anvil-cloud/sdk 共发布 33 个版本,首次发布于 2026/03/21;过去 12 个月发布了 33 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.26latest2026/11/07今天
0.1.252026/10/2711 天前
0.1.242026/10/2513 天前
0.1.232026/10/2414 天前
0.1.222026/10/2414 天前
0.1.212026/10/1721 天前

关于 @anvil-cloud/sdk 的常见问题

@anvil-cloud/sdk 是什么?

Anvil——安全不违约云基础设施组件

如何安装 @anvil-cloud/sdk?

在项目目录运行 npm install @anvil-cloud/sdk,或使用 pnpm add / yarn add / bun add。

@anvil-cloud/sdk 支持 TypeScript 吗?

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

@anvil-cloud/sdk 支持 ESM 还是 CommonJS?

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

@anvil-cloud/sdk 可以商用吗?

@anvil-cloud/sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@anvil-cloud/sdk 的下载量有多少?

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

@anvil-cloud/sdk 还在维护吗?

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