@azure/provisioning-core

中文文档
1.0.0-alpha.20261107.1发布于 2026/11/08TypeScriptES Module近 30 天下载 3322

Azure 提供库的核心原始文献

中文使用文档
文档目录6 节
  1. 主要特点
  2. 资源作者
  3. 函数和表达式
  4. 序列化和恢复
  5. Bicep 生成
  6. 相关软件包

@azure/provisioning-core

TypeScript中作者Azure基础设施的运行时间:资源树,符号表达式,共享配置,以及JSON和Bicep序列化. 创建或编辑这些对象会改变部署定义,而不是活的Azure资源.

开始 开始 使用核心和服务类,例如 StorageAccount 财务报告和审定财务报表 KeyVault。 。 。 .

主要特点

资源作者

部署定义是 ProvisioningComponent 对象. Stack, (中文(简体) ), Resource,以及诸如 StorageAccount 是它的直接或间接的子类。 每个组成部分与源执行的联系:

  • 规定 构成部分 - 树节点的基级,提供亲子跟踪、继承部署环境、转弯和转换。 可以创建自己的子类来分组相关资源,应用共享配置,并曝光资源手柄作为可再使用组件. 组件本身不声明 Azure 资源 .
  • 堆栈 - 定义、持有资源和部署投入及产出的根基部分.
  • 资源 - 服务类别和一般ARM申报的基础,包括现有参考资料、条件和依赖性。 可写入属性可以在构建后和序列化前进行编辑;只读属性仍可作为参考.
  • 资源组 - 内置的Azure资源,也为其资源提供父环境.
  • 部署背景 - 通过构件树携带继承位置、标记和命名政策。 最近的祖先供应地点和政策;祖先标记被合并,较近的价值观念优先.
  • 命名 - 通过可配置的政策生成省略的资源名称,使用 资源命名规则 描述Azure的长度,性能和独特性要求. 这些规则指导名称生成;明确名称使用不变.
  • 参数 - 在部署时提供的投入,有可选的缺省和限制.
  • 变量 - 定义中共有的指定值或表达式.
  • 产出 - 部署返回的值,例如资源ID.
  • 资源查询 - 按类型或字面名称找到作者对象,这样可以不经询问Azure而对其进行检查和编辑.

更多信息

函数和表达式

将资源设置与参数,计算和其他资源连接起来,即使其数值尚不得而知. 核心保存这些关系作为部署时表达,而不是在JavaScript中评价.

  • 函数助手 - 说吧 fn 构建连接,比较,资源ID计算等符号操作.
  • 表达式类型 - 说吧 Expression<T> 财务报告和审定财务报表 ExpressionOrValue<T> 描述符号值和字面值;生成的输入/视图类型使用核心的打字合同支持嵌入式作者.
  • 资源属性表达式 - 使用资源属性作为部署时间表达式来连接资源,例如将一个资源的ID传递给另一个资源的输入.

更多信息

部署时间歧视者

使用 asDiscriminator 当一个部署表达式必须填充一个字面歧视者. 在这个例子中, kindParam 是一个 Expression<"cache">,以及 widget.properties.primaryRule 接受缓存规则 cacheKind 财务报告和审定财务报表 days 或重定向规则。 帮助者在保留其属性检查的同时选择缓存变体.

import { asDiscriminator } from "@azure/provisioning-core";

widget.properties.primaryRule = {
  kind: asDiscriminator(kindParam),
  cacheKind: "long",
  days: 7,
};

如果可能的话,最好选一个字面歧视者。 这个帮助者是一个类型断言,而不是运行时间验证.

序列化和恢复

序列化 将树、值和引用转换为 JSON 兼容文档. 淡化 重建所支持的资源对象, 以便再次查询、 编辑和序列化 。 三块支持这次来回旅行:

  • 序列化 AST - 定义用于在TypeScript和.NET之间交换提供定义的跨语言的JSON格式,因此双方对资源声明,数值和参考文献的解释一致.
  • 运行时形状 - 保留客户端到ARM属性映射,嵌入类型,以及TypeScript去除后编码元数据,指导双向值转换.
  • 资源登记 - 按资源类型、API版本和变体解决已登记的类别和形状。 在恢复前装入相关服务包,以便提供注册.

进口范围尽可能解决已知的母关系。 否则, 它们的表达式被保留下来,用于圆形和清晰的Bicep渲染,而不包含 推断一个部署目的地。 这不增加明确的写作范围 新资源.

更多信息

Bicep 生成

内部 制作Bicep 文件夹 API 生成 来自作者Stacks的Bicep文件.

import { renderBicepFiles } from "@azure/provisioning-core/internal";

for (const file of renderBicepFiles(stack)) {
  console.log(file.path);
  console.log(file.contents);
}

渲染器接受一个 Stack 或一系列 Stack 并返回路径和源 文本不写入文件或部署资源。 将保存的 JSON 恢复为 deserialize() 在制作之前.

见 Bicep 生成 用于文件 排版和交叉文件引用,以及 Bicep 瞄准镜 用于部署范围规则.

关于服务类、其类型和运行时间元数据是如何生成的,参见 服务包解剖学 编辑 TypeSpec 发射器概览。 。 。 .

版本与发布记录

@azure/provisioning-core 共发布 20 个版本,首次发布于 2026/09/28;过去 12 个月发布了 20 个版本。

版本发布日期距今
1.0.0-alpha.20261107.1latest2026/11/08今天
1.0.0-alpha.20261106.12026/11/071 天前
1.0.0-alpha.20261105.12026/11/062 天前
1.0.0-alpha.20261104.12026/11/053 天前
1.0.0-alpha.20261103.12026/11/044 天前
1.0.0-alpha.20261102.22026/11/035 天前

其他发布通道:dev → 0.1.0-alpha.20261014.1,beta → 1.0.0-beta.2。

关于 @azure/provisioning-core 的常见问题

@azure/provisioning-core 是什么?

Azure 提供库的核心原始文献

如何安装 @azure/provisioning-core?

在项目目录运行 npm install @azure/provisioning-core,或使用 pnpm add / yarn add / bun add。

@azure/provisioning-core 支持 TypeScript 吗?

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

@azure/provisioning-core 支持 ESM 还是 CommonJS?

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

@azure/provisioning-core 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@azure/provisioning-core 可以商用吗?

@azure/provisioning-core 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@azure/provisioning-core 的下载量有多少?

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

@azure/provisioning-core 还在维护吗?

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