# @azure/containerapps-sandbox 中文文档

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

版本：1\.0\.0-beta\.1
npm 元数据更新时间：2026-07-11T00:50:04.771Z
中文译文更新时间：2026-11-07T13:23:45.926Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40azure/containerapps-sandbox
原文对照：https://npmcn.com/package/%40azure/containerapps-sandbox/?lang=original
项目主页：https://github.com/microsoft/azure-container-apps/tree/main/sdks/typescript/azure-containerapps-sandbox/README.md
源码仓库：https://github.com/microsoft/azure-container-apps

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

- 包体积（解压后）：662 kB，305 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.0\.0
- 运行依赖：8 个
- 首次发布：2026-07-11T00:50:04.294Z
- 最新版本发布：2026-07-11T00:50:04.563Z
- 近 30 天下载量：340507（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 1 个）

## 中文简介

为 ContainerAppsSandboxClient 生成的 SDK .

## 安装

```sh
npm install @azure/containerapps-sandbox
```

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

## README

# Azure 容器 Apps Sandbox 客户端库, 用于 JavaScript

此套件包含 Azure 容器 Apps Sandbox API 的同位素 SDK (数据平面+控制平面).

Azure Contractor Apps Sandbox是安全的,硬件同位化的微型VMs带有 子秒启动, 基于快照的悬浮/ 重现, 和每发箱网络 egress 政策——理想运行无信任代码,AI代理工作空间,dev环境, 和CI跑车.

> **预览** ——此软件包在预览中. API 表面可不改变 备注。 见 [变化](https://npmcn.com/package/%40azure/containerapps-sandbox/CHANGELOG.md) 用于升级时的移民笔记.

## 开始

### 目前得到支持的环境

-   [节点.js的LTS版本](https://github.com/nodejs/release#release-schedule)

### 先决条件

-   一个 [Azure 订阅](https://azure.microsoft.com/free/)。 。 。 .

### 安装 `@azure/containerapps-sandbox` 软件包

安装客户端库 [无](https://www.npmjs.com/)数字 :

```bash
npm install @azure/containerapps-sandbox
```

### 创建和认证客户端

要创建客户端, 您需要 `TokenCredential` 从 [`@azure/identity`](https://www.npmjs.com/package/@azure/identity)数字 :

```bash
npm install @azure/identity
```

有两个客户:

-   `ContainerAppsSandboxManagementClient` - ARM号 **控制平面** 用于创建 并删除沙盒组.
-   `SandboxGroupClient` - 那个 **数据平面** 用于一个沙盒组(沙盒), 磁盘图像,快照,卷,秘密,端口,相机,文件).

```ts
import { DefaultAzureCredential } from "@azure/identity";
import {
  ContainerAppsSandboxManagementClient,
  SandboxGroupClient,
  endpointForRegion,
} from "@azure/containerapps-sandbox";

const credential = new DefaultAzureCredential();
const subscriptionId = "<your-subscription-id>";
const resourceGroupName = "my-rg";
const sandboxGroupName = "my-sandbox-group";
const region = "eastus2";

// 1. Create the sandbox group (ARM control plane).
const mgmt = new ContainerAppsSandboxManagementClient(credential, subscriptionId);
await mgmt.sandboxGroups
  .beginCreateOrUpdate(resourceGroupName, sandboxGroupName, { location: region })
  .then((p) => p.pollUntilDone());

// (Grant yourself the "Container Apps SandboxGroup Data Owner" role on the
//  resource group so the data-plane calls below are authorized.)

// 2. Connect to the data plane and create a sandbox.
const group = new SandboxGroupClient(
  credential,
  endpointForRegion(region),
  subscriptionId,
  resourceGroupName,
  sandboxGroupName,
);
const sandbox = await group.sandboxes.beginCreate({ disk: undefined }).then((p) => p.pollUntilDone());

// 3. Run a command.
const result = await group.sandboxes.exec(sandbox.id, { command: "echo hello && uname -a" });
console.log(result.stdout);

// 4. Clean up.
await group.sandboxes.delete(sandbox.id);
await mgmt.sandboxGroups.beginDelete(resourceGroupName, sandboxGroupName).then((p) => p.pollUntilDone());
```

## 关键概念

### 行动组

和生成的 Azure 管理 SDK 一样, 操作被分组到客户端上 资源类型,例如:. `group.sandboxes.get(...)`, (中文(简体) ), `group.diskImages.list()`, (中文(简体) ), `mgmt.sandboxGroups.beginCreateOrUpdate(...)`。 。 。 .

### 长期运作

需要超过几秒钟的操作会暴露一个 `begin*` 返回的方法 (单位:千美元) `PollerLike<OperationState<T>, T>` 从 `@azure/core-lro`数字 :

```ts
const poller = group.sandboxes.beginCreate({ sourcesRef: { diskImage: { name: "ubuntu", isPublic: true } } });
const sandbox = await poller.pollUntilDone();
```

### 页面结果

清单操作返回a `PagedAsyncIterableIterator`数字 :

```ts
for await (const sbx of group.sandboxes.list()) {
  console.log(sbx.id, sbx.state);
}
```

### 端口 IP 访问控制

`PortIpAccessControl` 在发送前被验证客户端(服务 批量 `ports.update` 路径不是重新验证的服务器侧。 CIDRs必须是 网络对齐,最多10个规则,每个规则有1-10 CIDR, 独特的名称和 优先事项,以及0-1000范围内的优先事项.

```ts
import type { PortIpAccessControl } from "@azure/containerapps-sandbox";

const acl: PortIpAccessControl = {
  defaultAction: "Deny",
  rules: [{ name: "office", action: "Allow", priority: 10, sourceCidrs: ["10.0.0.0/8"] }],
};
await group.ports.add(sandbox.id, 8443, { ipAccessControl: acl });
```

## 解决问题

### 日志

允许伐木可能有助于发现有关失败的有用信息。 查看日志 ,设置 `AZURE_LOG_LEVEL` 环境变量改为 `info`。或者,可以在运行时拨打 `setLogLevel` 输入 `@azure/logger`数字 :

```ts
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
```

## 今后的步骤

见 [现场融合测试](https://npmcn.com/package/%40azure/azure-containerapps-sandbox-live-tests/) (单位:千美元) 有效的端到端实例,可以练习每个操作组.

## 捐款

这个SDK镜像 [蟒](https://npmcn.com/package/python/azure-containerapps-sandbox/) 财务报告和审定财务报表 [锈](https://npmcn.com/package/rust/azure-containerapps-sandbox/) 这个仓库里有SDK.

## 常见问题

### @azure/containerapps-sandbox 是什么？

为 ContainerAppsSandboxClient 生成的 SDK \.

### 如何安装 @azure/containerapps-sandbox？

在项目目录运行 npm install @azure/containerapps-sandbox，或使用 pnpm add / yarn add / bun add。

### @azure/containerapps-sandbox 支持 TypeScript 吗？

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

### @azure/containerapps-sandbox 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @azure/containerapps-sandbox 需要什么版本的 Node\.js？

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

### @azure/containerapps-sandbox 可以商用吗？

@azure/containerapps-sandbox 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @azure/containerapps-sandbox 的下载量有多少？

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

### @azure/containerapps-sandbox 还在维护吗？

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

