@azbake/ingredient-storage

中文文档
0.6.0发布于 2026/08/19MITTypeScriptCommonJS近 30 天下载 4294

用于部署存储账户的材料

中文使用文档
文档目录11 节
  1. 更改日志
  2. 概览
  3. 使用量
  4. 食谱
  5. 匿名公众blob访问
  6. 公共网络接入(Pass-1 stub-仅标记)
  7. 上传文件到 Blob 存储
  8. 公用事业
  9. storage 类
  10. 函数细节
  11. 生命周期管理政策

更改日志

概览

存储成分是巴克的插件. 当包含在食谱中时, 这将创建一个标准存储账户 。 是否服务 blob, (中文(简体) ), file, (中文(简体) ), disk, (中文(简体) ), queue,或 table 存储在此资源上被挂载,但模板中没有定义,只创建了逻辑构造.

使用量

这通常将作为一个依赖资源列入一种食谱。 可以设置一个 独立 但这不是典型的列入。 计量和诊断日志被记录到存储分析默认启用.

食谱

name: My package
shortName: mypkg
version: 0.0.1
ingredients:
  - "@azbake/ingredient-storage@~0"
parallelRegions: false
resourceGroup: true
variables:
  #"true" or "false" strings.  Defaults to "true" if unspecified.
  blobDiagnosticHourlyMetricsEnabled: "true"
  #Number of days to retain hourly metrics
  blobDiagnosticHourlyMetricsRetentionDays: 12
  #"true" or "false" strings.  Defaults to "true" if unspecified.
  blobDiagnosticMinuteMetricsEnabled: "false"
  #Number of days to retain minute metrics
  blobDiagnosticMinuteMetricsRetentionDays: 10    
    #"true" or "false" strings.  Defaults to "true" if unspecified.
  blobDiagnosticLoggingEnabled: "true"
  #Number of days to retain minute metrics
  blobDiagnosticLoggingRetentionDays: 10    
recipe:
  mypkg-storage:
    properties:
      type: "@azbake/ingredient-storage"
      source: ""
      parameters:
        storageAccountName: "[storage.create_resource_name()]"
参数所需经费默认说明
存储账户Name对存储账户资源的名称
存储 Kind没有StorageV2设置存储账户类型
存储 Tier没有Standard设置存储账户的定价等级
地点没有父资源组此资源的位置
存储账户类型没有存储账户的类型 文档
存储 AccessTier没有选择 热 或者说 凉了 存储账户的分级。 见 文档
集装箱是( 当 source 居住)要上传特定内容的容器 source 改为: 仅在 source 已指定.
上传路径是( 当 source 居住)指定容器内上传路径 source 改为: 仅在 source 已指定.
部署没有真实确定是否部署服务账户的旗帜 。 只需通过将上下文添加到容器中即可跳过部署 source
调色调没有虚假在指定的路径中遇到zip文件时, 确定是否打开并上传的旗帜 .
rg 覆盖没有指定一个资源组覆盖存储账户,如果与烘焙食谱的主要资源组不同.
允许Blob 公共访问没有false (不设担保基准翻转)可选的 省略或 false,以匿名公共blob访问方式部署账户 已禁用时 true并盖上已核准的例外标记 hchb-policy-exempt-anon-blob = true。 。 。 . 打破变化: 截至本版本,基线是明确的 false (财产被写出;之前的版本使财产没有被写出(背向兼容无事). 依赖账户在重新部署后维持现有匿名访问状态的食谱现在必须明确规定 allowBlobPublicAccess: true 如果状态是 true。 。 。 .
允许公共网络访问没有(未设置 —— 仅标记为分块, 属性未写入)可选 (Pass-1 stub). 何时 true,印出已核准的例外标记 hchb-policy-exempt-public-network = true; 数据 publicNetworkAccess 属性本身是 没有 写在本传. 何时 false 或省略,不写标签或财产。 见 公共网络接入。 。 。 .
变量所需经费默认说明
blobDiagnotic Hourly Metrics 启用没有"对"允许记录小时度量衡以存储分析. 目前仅接受"真"/"假"作为字符串.
blob诊断连续计量保留日没有10个储存分析中计时数据保留.
blob诊断最小量没有"对"允许记录小度度量以存储分析。 目前仅接受"真"/"假"作为字符串.
blob诊断最小量保留日没有10个存储分析中小量度的数据保留
blob诊断日志没有"对"允许记录诊断日志以存储分析。 目前仅接受"真"/"假"作为字符串.
保留日期10个"对"储存分析中诊断记录的数据保留

*** 请注意,创建这一资源所需的唯一价值是: storageAccountName

匿名公众blob访问

可选 allowBlobPublicAccess 参数控制存储账户是否允许 匿名 公众读取blob数据.

BASELINE FLIP(裂变): 截止本版本,安全默认基线已经改变:

  • 旧行为 (Pass-1): 选择 allowBlobPublicAccess 保留了该账户现有的匿名存取状态.
  • 新行为( Pass-2) : 选择 allowBlobPublicAccess 现在写一个 明确 false,默认情况下使匿名公共blob访问失效.

影响 : 如果您的食谱重新调配了已有的存储账户, 并依赖于保持其当前匿名访问状态( 如果 true),现在必须明确设置 allowBlobPublicAccess: true 在食谱中保持这种状态.

  • 被允许或 false数字 : 以匿名公共blob访问方式部署账户 已禁用。不使用例外标记。 这是新的安全默认基线 .
  • true数字 : 允许配置匿名公共blob访问(实际匿名读取仍然取决于每个容器的公开访问级别) 财务报告和审定财务报表 所核准的例外标记 hchb-policy-exempt-anon-blob = true 将它列为匿名否认政策的例外 现有标签( 如 Metrics)被保留.
recipe:
  mypkg-storage:
    properties:
      type: "@azbake/ingredient-storage"
      parameters:
        storageAccountName: "[storage.create_resource_name()]"
        allowBlobPublicAccess: false   # disable anonymous blob access (secure baseline)
        # OR omit allowBlobPublicAccess entirely—it defaults to false

ARM 模板兼容性 :

  • storage.json 使用 apiVersion 软件 2020-08-01-preview - 完全支持 allowBlobPublicAccess
  • storageNetwork.json 使用 apiVersion 软件 2019-06-01 - 支持 allowBlobPublicAccess (GA'd于2019-04-01) (中文(简体) )
  • storageDatalake.json 使用 apiVersion 软件 2018-02-01 ——⚠️事前 allowBlobPublicAccess (2019-04-01);该地产可能默默被ARM忽略,尽管标记仍然是邮票. 数据湖账户IsHnsEnabled),验证目标Azure环境中的部署行为,然后依赖被执行的财产.

公共网络接入(Pass-1 stub-仅标记)

可选 allowPublicNetworkAccess 参数为 a 与前置兼容的根。在这个通行证中,它只盖一个经批准的例外标记;它故意这样做 没有 写入存储账户 publicNetworkAccess 属性,所以网络行为尚未改变.

  • 输入( 默认) : 没有书写,没有标签,没有财产。 完全向后兼容.
  • false数字 : 没有标记,也没有书写任何财产(Pass-1 stub—— publicNetworkAccess 属性被推迟).
  • true数字 : 所核准的例外标记 hchb-policy-exempt-public-network = true 将其标为公共网络接入拒绝政策中受制裁的例外。 现有标签( 如 Metrics)被保留,这个标记与 hchb-policy-exempt-anon-blob (CDN案).

推迟执行: 布尔将随后映射到 publicNetworkAccess Enabled编号 :Disabled (有私人端口) 在地物698027中,在NetOps私人-DNS门后(Feature 701425)——无需再进行食谱编辑. 在 DNS 启用器存在之前设置属性会断开连接, 这就是为什么 Pass 1 仅标记 .

recipe:
  mypkg-storage:
    properties:
      type: "@azbake/ingredient-storage"
      parameters:
        storageAccountName: "[storage.create_resource_name()]"
        allowPublicNetworkAccess: true   # stamp the exception tag only (no property yet)

上传文件到 Blob 存储

文件可以在部署期间通过指定 source 在食谱中的属性。 源属性支持通过 file:/// 语法或用相对路径指向目录.

注:此时仅支持blob存储.

name: My package
shortName: mypkg
version: 0.0.1
ingredients:
  - "@azbake/ingredient-storage@~0"
parallelRegions: false
resourceGroup: false
recipe:
  mypkg-storage:
    properties:
      type: "@azbake/ingredient-storage"
      source: "file:///./deploy/deploy.zip" # "./deploy"
      parameters:
        storageAccountName: "[storage.create_resource_name()]"
        container: myContainer
        uploadPath: mypkg/__build_buildNumber__
        deploy: false
        unzip: true

公用事业

工具课可以在烘焙内部使用. 参数和源值的 Yaml 文件 .

storage 类

函数说明
创建 资源 名称 ()返回在部署时为交通管理器配置文件创建的名称 .
添加 删除 政策( 名称、 启用日期、 日期、 选项) 吗 创建带有可选容器/路径/tag过滤器的删除策略规则.
创建政策(...规则)从一个或多个规则创建管理政策计划.
获取容器( 账户、 容器、 访问级别 ? 策略 ?)获得或创建容器,可选择适用管理政策.
获取存储账户( 资源组, 名称)获得包含端点和密钥的存储账户细节.
获取主键( 名称, rg ?)获取存储账户的主要访问密钥 .
获取中键( 名称, rg ?)获取存储账户的二级访问密钥 .
获取主连接线( 名称, rg ?)获取存储账户的主连接字符串.
获取 second connectionstring(名称, rg?)获取存储账户的二级连接字符串.

函数细节

创建 资源 名称 ()

获得交通管理器配置文件的创建名称 .

...
parameters:
    storageAccountName: "[storage.create_resource_name()]"
...

回返

字符串

生命周期管理政策

存储成分支持Azure Blob存储生命周期管理政策,根据年龄自动删除blob. 您可以在全球、每个容器、甚至路径前缀应用政策.

添加 删除 政策( 名称、 启用日期、 日期、 选项) 吗

为blob生命周期管理创建删除政策规则。 支持全球政策(所有blobs),容器级,路径级,或基于标签的过滤.

参数类型说明
名称字符串政策规则的名称(政策中的独特性,可达256个字母数字字符)
启用布尔规则是否启用
之后几天编号上次修改后几天删除blob
选项对象可选的 过滤基于容器/路径/标签的政策的选项
选项。前缀Match字符串 []可选的 前缀字符串组合(例如, ["logs/", "data/temp/"]) (中文(简体) ). 每个前缀必须从容器名称开始. 每个规则最多可有10个前缀.
选项.blobIndexMatch对象[]可选的 blob 索引标记条件阵列 { name, op, value }
选项.blobTypes字符串 []可选的 Blob类型。 默认为 ["blockBlob"]有效性 : "blockBlob", (中文(简体) ), "appendBlob"

示例:全局删除策略( 所有 blobs)

// Delete all blockBlobs in the storage account after 90 days
const globalRule = storage.add_delete_policy("delete-all", true, 90);

示例:集装箱级TTL

// Delete blobs in 'logs' container after 30 days
const logsRule = storage.add_delete_policy("delete-logs", true, 30, { prefixMatch: ["logs/"] });

// Delete blobs in 'temp' container after 7 days  
const tempRule = storage.add_delete_policy("delete-temp", true, 7, { prefixMatch: ["temp/"] });

// Delete blobs in 'archive' container after 365 days
const archiveRule = storage.add_delete_policy("delete-archive", true, 365, { prefixMatch: ["archive/"] });

// Create combined policy
const policy = storage.create_policy(logsRule, tempRule, archiveRule);

示例:容器内的路径级 TTL

// Delete blobs in 'data/temp/' after 7 days, 'data/cache/' after 14 days
const tempRule = storage.add_delete_policy("delete-data-temp", true, 7, { prefixMatch: ["data/temp/"] });
const cacheRule = storage.add_delete_policy("delete-data-cache", true, 14, { prefixMatch: ["data/cache/"] });

const policy = storage.create_policy(tempRule, cacheRule);

示例: 由 blob 索引标签过滤

// Delete blobs tagged as "archived" in 'reports' container after 14 days
const rule = storage.add_delete_policy("delete-archived-reports", true, 14, {
  prefixMatch: ["reports/"],
  blobIndexMatch: [{ name: "status", op: "==", value: "archived" }]
});

示例:包含附件块

// Delete both blockBlobs and appendBlobs in 'logs' container after 30 days
const rule = storage.add_delete_policy("delete-all-types", true, 30, { 
  prefixMatch: ["logs/"],
  blobTypes: ["blockBlob", "appendBlob"] 
});

创建政策(...规则)

根据一个或多个政策规则创建管理政策计划.

参数类型说明
规则管理政策规则由添加 删除 政策创建的一个或多个政策规则

获取容器( 账户、 容器、 访问级别 ? 策略 ?)

获得或创建容器,可选择适用管理政策。 当提供政策时,它通过添加前缀过滤器,自动将政策规则的范围扩大到指定的容器.

参数类型说明
账户库存账户从 get storagecount () 存储账户对象
集装箱字符串容器名称
访问级别字符串可选的 访问级别 : "container", (中文(简体) ), "blob",或 undefined
政策管理政策计划a可选的 适用政策(规则将适用于这一集装箱)

版本与发布记录

@azbake/ingredient-storage 共发布 75 个版本,首次发布于 2019/03/07;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.6.0latest2026/08/192 个月前
0.5.12026/07/233 个月前
0.5.02026/07/223 个月前
0.4.02026/07/213 个月前
0.3.02026/07/213 个月前
0.2.82026/07/094 个月前

关于 @azbake/ingredient-storage 的常见问题

@azbake/ingredient-storage 是什么?

用于部署存储账户的材料

如何安装 @azbake/ingredient-storage?

在项目目录运行 npm install @azbake/ingredient-storage,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@azbake/core(*)、@azure/ms-rest-nodeauth(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@azbake/ingredient-storage 支持 TypeScript 吗?

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

@azbake/ingredient-storage 支持 ESM 还是 CommonJS?

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

@azbake/ingredient-storage 可以商用吗?

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

@azbake/ingredient-storage 的下载量有多少?

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

@azbake/ingredient-storage 还在维护吗?

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