# @azure/provisioning-core 中文文档

规范地址：https://npmcn.com/package/%40azure/provisioning-core/

版本：1\.0\.0-alpha\.20261107\.1
npm 元数据更新时间：2026-11-07T16:16:06.393Z
中文译文更新时间：2026-11-07T18:09:44.199Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40azure/provisioning-core
原文对照：https://npmcn.com/package/%40azure/provisioning-core/?lang=original

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

- 包体积（解压后）：887 kB，232 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：2 个
- 首次发布：2026-09-28T03:48:26.829Z
- 最新版本发布：2026-11-07T16:16:06.173Z
- 近 30 天下载量：3322（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：20（近 12 个月 20 个）

## 中文简介

Azure 提供库的核心原始文献

## 安装

```sh
npm install @azure/provisioning-core
```

也可以使用：`pnpm add @azure/provisioning-core`、`yarn add @azure/provisioning-core`、`bun add @azure/provisioning-core`

## README

# `@azure/provisioning-core`

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

开始 [开始](https://npmcn.com/package/docs/getting-started.md) 使用核心和服务类,例如 `StorageAccount` 财务报告和审定财务报表 `KeyVault`。 。 。 .

## 主要特点

### 资源作者

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

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

**更多信息**

-   [开始](https://npmcn.com/package/docs/getting-started.md#define-a-stack-and-resources) - 通过公共API构建和配置资源.
-   [配置资源属性](https://npmcn.com/package/docs/getting-started.md#configure-resource-properties) - 在序列化之前编辑可写入属性或替换嵌入对象.
-   [基础设施撰写模式](https://npmcn.com/package/docs/authoring-model.md) - 资源关系和可重复使用的组件.
-   [名称和共享默认值](https://npmcn.com/package/docs/authoring-model.md#names-and-shared-defaults) - 命名政策、继承的设置和资源级别覆盖.
-   [参数、变量和产出](https://npmcn.com/package/docs/getting-started.md#parameters-variables-and-outputs) - 通过堆栈收藏声明部署值.

### 函数和表达式

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

-   [函数助手](https://npmcn.com/package/%40azure/provisioning-core/src/fn.ts) - 说吧 `fn` 构建连接,比较,资源ID计算等符号操作.
-   [表达式类型](https://npmcn.com/package/%40azure/provisioning-core/src/expression/expressions.ts) - 说吧 `Expression<T>` 财务报告和审定财务报表 `ExpressionOrValue<T>` 描述符号值和字面值;生成的输入/视图类型使用核心的打字合同支持嵌入式作者.
-   [资源属性表达式](https://npmcn.com/package/%40azure/provisioning-core/src/constructs/resource/resource-proxy.ts) - 使用资源属性作为部署时间表达式来连接资源,例如将一个资源的ID传递给另一个资源的输入.

**更多信息**

-   [使用表达式](https://npmcn.com/package/docs/getting-started.md#work-with-expressions) - 编写计算和资源参考.
-   [供给类型系统](https://npmcn.com/package/contributing/internals/provisioning-type-system.md) - 输入/视图类型和表达式可分配性.
-   [代理系统](https://npmcn.com/package/contributing/internals/proxy-system.md) - 核心如何通过普通的TypeScript属性访问支持资源属性上的表达式.

#### 部署时间歧视者

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

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

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

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

### 序列化和恢复

[序列化](https://npmcn.com/package/%40azure/provisioning-core/src/serialization/json/serialize.ts) 将树、值和引用转换为 JSON 兼容文档. [淡化](https://npmcn.com/package/%40azure/provisioning-core/src/serialization/json/deserialize.ts) 重建所支持的资源对象, 以便再次查询、 编辑和序列化 。 三块支持这次来回旅行:

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

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

**更多信息**

-   [修改序列合同](https://npmcn.com/package/contributing/workflows/change-schema-files.md) - 合同来源、生成和影响消费者.
-   [运行时间形状和注册](https://npmcn.com/package/contributing/internals/service-packages.md#runtime-shapes-and-registration) - 财产测绘和具体资源类别.
-   [序列化和恢复](https://npmcn.com/package/contributing/internals/serialization-roundtrip.md) - 往返工作流程及其局限性.

### Bicep 生成

内部 [制作Bicep 文件夹](https://npmcn.com/package/%40azure/provisioning-core/src/serialization/bicep/render.ts) API 生成 来自作者Stacks的Bicep文件.

```typescript
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 生成](https://npmcn.com/package/contributing/internals/bicep-generation.md) 用于文件 排版和交叉文件引用,以及 [Bicep 瞄准镜](https://npmcn.com/package/contributing/bicep/bicep-scope.md) 用于部署范围规则.

## 相关软件包

关于服务类、其类型和运行时间元数据是如何生成的,参见 [服务包解剖学](https://npmcn.com/package/contributing/internals/service-packages.md) 编辑 [TypeSpec 发射器概览](https://npmcn.com/package/contributing/internals/emitter-overview.md)。 。 。 .

## 常见问题

### @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 和提交记录判断。

