更改日志
概览
存储成分是巴克的插件. 当包含在食谱中时, 这将创建一个标准存储账户 。 是否服务 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- 完全支持allowBlobPublicAccessstorageNetwork.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案).
推迟执行: 布尔将随后映射到
publicNetworkAccessEnabled编号 :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 | 可选的 适用政策(规则将适用于这一集装箱) |