你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
言论
若要了解如何在部署期间执行脚本,请参阅 在 Bicep 中使用部署脚本,或 在 ARM 模板中使用部署脚本。
Bicep 资源定义
可以使用目标操作部署 deploymentScripts 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Resources/deploymentScripts 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
tags: {
{customized property}: 'string'
}
kind: 'string'
// For remaining properties, see Microsoft.Resources/deploymentScripts objects
}
Microsoft.Resources/deploymentScripts 对象
设置 类型 属性以指定对象的类型。
对于 AzureCLI,请使用:
{
kind: 'AzureCLI'
properties: {
arguments: 'string'
azCliVersion: 'string'
cleanupPreference: 'string'
containerSettings: {
containerGroupName: 'string'
subnetIds: [
{
id: 'string'
name: 'string'
}
]
}
environmentVariables: [
{
name: 'string'
secureValue: 'string'
value: 'string'
}
]
forceUpdateTag: 'string'
primaryScriptUri: 'string'
retentionInterval: 'string'
scriptContent: 'string'
storageAccountSettings: {
storageAccountKey: 'string'
storageAccountName: 'string'
}
supportingScriptUris: [
'string'
]
timeout: 'string'
}
}
对于 azurePowerShell
{
kind: 'AzurePowerShell'
properties: {
arguments: 'string'
azPowerShellVersion: 'string'
cleanupPreference: 'string'
containerSettings: {
containerGroupName: 'string'
subnetIds: [
{
id: 'string'
name: 'string'
}
]
}
environmentVariables: [
{
name: 'string'
secureValue: 'string'
value: 'string'
}
]
forceUpdateTag: 'string'
primaryScriptUri: 'string'
retentionInterval: 'string'
scriptContent: 'string'
storageAccountSettings: {
storageAccountKey: 'string'
storageAccountName: 'string'
}
supportingScriptUris: [
'string'
]
timeout: 'string'
}
}
属性值
Microsoft.Resources/deploymentScripts
| 名字 | 描述 | 价值 |
|---|---|---|
| 标识 | 可选属性。 要用于此部署脚本的托管标识。 目前,仅支持用户分配的 MSI。 | ManagedServiceIdentity |
| 类 | 对于 AzureCliScript类型,设置为“AzureCLI”。 对于 AzurePowerShellScript类型,设置为“AzurePowerShellShell”。 | “AzureCLI” “AzurePowerShell”(必需) |
| 位置 | 部署脚本的 ACI 和存储帐户的位置。 | string (必需) |
| 名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 90 (必需) |
| 作用域 | 在与部署范围不同的范围内创建资源时使用。 | 将此属性设置为资源的符号名称以应用 扩展资源。 |
| 标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
AzureCliScript
| 名字 | 描述 | 价值 |
|---|---|---|
| 类 | 脚本的类型。 | “AzureCLI”(必需) |
| 性能 | Azure CLI 脚本对象的属性。 | AzureCliScriptProperties(必需) |
AzureCliScriptProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 参数 | 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” | 字符串 |
| azCliVersion | 要使用的 Azure CLI 模块版本。 | string (必需) |
| cleanupPreference | 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 | “Always” “OnExpiration” “OnSuccess” |
| containerSettings | 容器设置。 | 容器配置 |
| 环境变量 | 要传递给脚本的环境变量。 | 环境变量[] |
| forceUpdateTag | 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 | 字符串 |
| primaryScriptUri 的 | 脚本的 URI。 这是外部脚本的入口点。 | 字符串 |
| retentionInterval 保留间隔 | 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 | string (必需) |
| 脚本内容 | 脚本正文。 | 字符串 |
| storageAccountSettings | 存储帐户设置。 | StorageAccountConfiguration |
| supportingScriptUris | 支持外部脚本的文件。 | 字符串[] |
| 超时 | ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D | 字符串 |
AzurePowerShell脚本
| 名字 | 描述 | 价值 |
|---|---|---|
| 类 | 脚本的类型。 | “AzurePowerShell”(必需) |
| 性能 | Azure PowerShell 脚本对象的属性。 | AzurePowerShellScriptProperties(必需) |
AzurePowerShellScriptProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 参数 | 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” | 字符串 |
| azPowerShellVersion | 要使用的 Azure PowerShell 模块版本。 | string (必需) |
| cleanupPreference | 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 | “Always” “OnExpiration” “OnSuccess” |
| containerSettings | 容器设置。 | 容器配置 |
| 环境变量 | 要传递给脚本的环境变量。 | 环境变量[] |
| forceUpdateTag | 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 | 字符串 |
| primaryScriptUri 的 | 脚本的 URI。 这是外部脚本的入口点。 | 字符串 |
| retentionInterval 保留间隔 | 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 | string (必需) |
| 脚本内容 | 脚本正文。 | 字符串 |
| storageAccountSettings | 存储帐户设置。 | StorageAccountConfiguration |
| supportingScriptUris | 支持外部脚本的文件。 | 字符串[] |
| 超时 | ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D | 字符串 |
容器配置
| 名字 | 描述 | 价值 |
|---|---|---|
| containerGroupName (容器组名称) | 如果未指定容器组名称,则名称将自动生成。 未指定“containerGroupName”表示系统生成唯一名称,最终可能会将 Azure Policy 标记为不合规。 如果具有需要特定命名约定的 Azure Policy,或者想要完全控制名称,请使用“containerGroupName”。 “containerGroupName”属性的长度必须介于 1 到 63 个字符之间,只能包含小写字母、数字和短划线,并且不能以短划线开头或以连续短划线结尾。 若要指定'containerGroupName',请将以下对象添加到属性:{ “containerSettings”: { “containerGroupName”: “contoso-container” } }。 如果不想指定“containerGroupName”,则不要添加“containerSettings”属性。 | 字符串 约束: 最小长度 = 1 最大长度 = 63 |
| subnetIds | 容器组的子网资源 ID。 | ContainerGroupSubnetId[] |
容器组子网 ID
| 名字 | 描述 | 价值 |
|---|---|---|
| 身份证 | 子网的资源 ID。 | string (必需) |
| 名字 | 子网的友好名称。 | 字符串 |
DeploymentScript标签
| 名字 | 描述 | 价值 |
|---|
环境变量
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 环境变量的名称。 | string (必需) |
| secureValue 安全型 | 安全环境变量的值。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
| 价值 | 环境变量的值。 | 字符串 |
ManagedServiceIdentity
| 名字 | 描述 | 价值 |
|---|---|---|
| 类型 | 托管标识的类型。 | “UserAssigned” |
| 用户分配的标识 | 与资源关联的用户分配托管标识的列表。 密钥是托管标识的 Azure 资源 ID。 | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
| 名字 | 描述 | 价值 |
|---|
StorageAccountConfiguration
| 名字 | 描述 | 价值 |
|---|---|---|
| storageAccountKey | 存储帐户访问密钥。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
| 存储账户名称 | 存储帐户名称。 | 字符串 |
UserAssignedIdentity
| 名字 | 描述 | 价值 |
|---|
用法示例
Azure 验证模块
以下 Azure 验证模块 可用于部署此资源类型。
| 模块 | 描述 |
|---|---|
| 部署脚本 | 部署脚本的 AVM 资源模块 |
Azure 快速入门示例
以下 Azure 快速入门模板 包含用于部署此资源类型的 Bicep 示例。
| Bicep 文件 | 描述 |
|---|---|
| 使用 Helm |
使用 Helm 部署具有 Azure 容器服务(AKS)的托管群集 |
| 使用 Azure Windows 基线 |
创建 Azure 映像生成器环境,并生成应用最新 Windows 更新和 Azure Windows 基线的 Windows Server 映像。 |
| 使用 ACR 任务 生成容器映像 | 此模板使用 DeploymentScript 来协调 ACR,以便从代码存储库生成容器映像。 |
| 配置 Dev Box 服务 | 此模板将按照 Dev Box 快速入门指南(/azure/dev-box/quickstart-create-dev-box)创建所有 Dev Box 管理员资源。 可以查看创建的所有资源,也可以直接转到 DevPortal.microsoft.com 创建第一个 Dev Box。 |
| 将文件从 URI 复制到 blob 存储容器 | 此模块从 URI 下载文件,并将其复制到 Azure storageAccount Blob 容器。 storageAccount 必须已存在,并且源文件必须已暂存到 URI。 |
| 为数据工厂复制数据工具创建 blob 快速入门 | 此模板创建 Blob 存储并上传复制数据工具快速入门的文件 |
| 创建具有复杂输入的部署脚本 & 输出 | 此模板演示了将复杂输入、输出和日志传递给 Az CLI 部署脚本的最佳做法 |
| 创建具有复杂输入的部署脚本 & 输出 | 此模板演示了将复杂输入、输出和日志传递和读取到 Az PowerShell 部署脚本的最佳做法 |
| 创建 WordPress 网站 | 此模板在容器实例上创建 WordPress 站点 |
| 使用 Prometheus 和 Grafana 和 privae 链接创建 AKS | 这将在 Azure Kubernetes 服务(AKS)群集上创建 Azure grafana、AKS 并安装 Prometheus(开源监视和警报工具包)。 然后使用 Azure Managed Grafana 的托管专用终结点连接到此 Prometheus 服务器并在 Grafana 仪表板中显示 Prometheus 数据 |
| 创建 Azure 机器学习扫描作业 | 此模板创建用于超参数优化的 Azure 机器学习扫描作业。 |
| 创建 Azure 虚拟网络管理器和示例 VNET | 此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。 |
| 创建具有持久性存储 的按需 SFTP 服务器 | 此模板演示使用 Azure 容器实例(ACI)的按需 SFTP 服务器。 |
| 使用证书创建应用程序网关 | 此模板演示如何生成 Key Vault 自签名证书,然后从应用程序网关引用。 |
| 使用注册表 创建容器应用和环境 | 使用 Azure 容器注册表中的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
| 使用容器应用创建 Dapr 微服务应用 | 使用容器应用创建 Dapr 微服务应用。 |
| 使用容器应用创建 Dapr pub-sub servicebus 应用 | 使用容器应用创建 Dapr pub-sub servicebus 应用。 |
| 部署简单的 Azure Spring Apps 微服务应用程序 | 此模板部署一个简单的 Azure Spring Apps 微服务应用程序,以在 Azure 上运行。 |
| 部署静态网站 | 使用支持存储帐户部署静态网站 |
| FinOps 中心 | 此模板创建新的 FinOps 中心实例,包括数据资源管理器、Data Lake 存储和数据工厂。 |
| 使用静态网站源 Front Door 标准版/高级版 | 此模板创建 Front Door 标准版/高级版和 Azure 存储静态网站,并将 Front Door 配置为将流量发送到静态网站。 |
| 将容器映像导入 ACR | 此模板利用 bicep 注册表中的 Import ACR 模块将公共容器映像导入 Azure 容器注册表。 |
| 可以使用 Azure 数据工厂 更多 - 单击一次尝试 Azure 数据工厂 | 此模板为从 Azure Blob 复制到另一个 Azure Blob 中的复制活动创建数据工厂管道 |
| 使用用户托管标识 网络安全代理 | 此模板集演示如何使用用户托管标识身份验证为 AI 服务/AOAI 连接设置虚拟网络隔离的 Azure AI 代理服务,以及专用网络链接,以将代理连接到安全数据。 |
| 标准代理设置 | 此模板集演示如何使用标准设置设置设置 Azure AI 代理服务,这意味着已启用项目/中心连接的托管标识身份验证和公共 Internet 访问。 代理使用客户拥有的单租户搜索和存储资源。 通过此设置,可以完全控制这些资源并查看这些资源,但会根据使用情况产生成本。 |
| Azure 防火墙高级版 的 |
此模板创建具有高级功能(例如入侵检查检测(IDPS)、TLS 检查和 Web 类别筛选等高级功能的 Azure 防火墙高级和防火墙策略 |
| 使用部署脚本创建 Azure AD 对象 | 此示例使用部署脚本在 Azure Active Directory 中创建对象。 |
ARM 模板资源定义
可以使用目标操作部署 deploymentScripts 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Resources/deploymentScripts 资源,请将以下 JSON 添加到模板。
{
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"name": "string",
"tags": {
"{customized property}": "string"
},
"kind": "string"
// For remaining properties, see Microsoft.Resources/deploymentScripts objects
}
Microsoft.Resources/deploymentScripts 对象
设置 类型 属性以指定对象的类型。
对于 AzureCLI,请使用:
{
"kind": "AzureCLI",
"properties": {
"arguments": "string",
"azCliVersion": "string",
"cleanupPreference": "string",
"containerSettings": {
"containerGroupName": "string",
"subnetIds": [
{
"id": "string",
"name": "string"
}
]
},
"environmentVariables": [
{
"name": "string",
"secureValue": "string",
"value": "string"
}
],
"forceUpdateTag": "string",
"primaryScriptUri": "string",
"retentionInterval": "string",
"scriptContent": "string",
"storageAccountSettings": {
"storageAccountKey": "string",
"storageAccountName": "string"
},
"supportingScriptUris": [ "string" ],
"timeout": "string"
}
}
对于 azurePowerShell
{
"kind": "AzurePowerShell",
"properties": {
"arguments": "string",
"azPowerShellVersion": "string",
"cleanupPreference": "string",
"containerSettings": {
"containerGroupName": "string",
"subnetIds": [
{
"id": "string",
"name": "string"
}
]
},
"environmentVariables": [
{
"name": "string",
"secureValue": "string",
"value": "string"
}
],
"forceUpdateTag": "string",
"primaryScriptUri": "string",
"retentionInterval": "string",
"scriptContent": "string",
"storageAccountSettings": {
"storageAccountKey": "string",
"storageAccountName": "string"
},
"supportingScriptUris": [ "string" ],
"timeout": "string"
}
}
属性值
Microsoft.Resources/deploymentScripts
| 名字 | 描述 | 价值 |
|---|---|---|
| apiVersion | API 版本 | '2023-08-01' |
| 标识 | 可选属性。 要用于此部署脚本的托管标识。 目前,仅支持用户分配的 MSI。 | ManagedServiceIdentity |
| 类 | 对于 AzureCliScript类型,设置为“AzureCLI”。 对于 AzurePowerShellScript类型,设置为“AzurePowerShellShell”。 | “AzureCLI” “AzurePowerShell”(必需) |
| 位置 | 部署脚本的 ACI 和存储帐户的位置。 | string (必需) |
| 名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 90 (必需) |
| 标签 | 资源标记 | 标记名称和值的字典。 请参阅模板 中的 |
| 类型 | 资源类型 | “Microsoft.Resources/deploymentScripts” |
AzureCliScript
| 名字 | 描述 | 价值 |
|---|---|---|
| 类 | 脚本的类型。 | “AzureCLI”(必需) |
| 性能 | Azure CLI 脚本对象的属性。 | AzureCliScriptProperties(必需) |
AzureCliScriptProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 参数 | 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” | 字符串 |
| azCliVersion | 要使用的 Azure CLI 模块版本。 | string (必需) |
| cleanupPreference | 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 | “Always” “OnExpiration” “OnSuccess” |
| containerSettings | 容器设置。 | 容器配置 |
| 环境变量 | 要传递给脚本的环境变量。 | 环境变量[] |
| forceUpdateTag | 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 | 字符串 |
| primaryScriptUri 的 | 脚本的 URI。 这是外部脚本的入口点。 | 字符串 |
| retentionInterval 保留间隔 | 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 | string (必需) |
| 脚本内容 | 脚本正文。 | 字符串 |
| storageAccountSettings | 存储帐户设置。 | StorageAccountConfiguration |
| supportingScriptUris | 支持外部脚本的文件。 | 字符串[] |
| 超时 | ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D | 字符串 |
AzurePowerShell脚本
| 名字 | 描述 | 价值 |
|---|---|---|
| 类 | 脚本的类型。 | “AzurePowerShell”(必需) |
| 性能 | Azure PowerShell 脚本对象的属性。 | AzurePowerShellScriptProperties(必需) |
AzurePowerShellScriptProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 参数 | 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” | 字符串 |
| azPowerShellVersion | 要使用的 Azure PowerShell 模块版本。 | string (必需) |
| cleanupPreference | 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 | “Always” “OnExpiration” “OnSuccess” |
| containerSettings | 容器设置。 | 容器配置 |
| 环境变量 | 要传递给脚本的环境变量。 | 环境变量[] |
| forceUpdateTag | 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 | 字符串 |
| primaryScriptUri 的 | 脚本的 URI。 这是外部脚本的入口点。 | 字符串 |
| retentionInterval 保留间隔 | 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 | string (必需) |
| 脚本内容 | 脚本正文。 | 字符串 |
| storageAccountSettings | 存储帐户设置。 | StorageAccountConfiguration |
| supportingScriptUris | 支持外部脚本的文件。 | 字符串[] |
| 超时 | ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D | 字符串 |
容器配置
| 名字 | 描述 | 价值 |
|---|---|---|
| containerGroupName (容器组名称) | 如果未指定容器组名称,则名称将自动生成。 未指定“containerGroupName”表示系统生成唯一名称,最终可能会将 Azure Policy 标记为不合规。 如果具有需要特定命名约定的 Azure Policy,或者想要完全控制名称,请使用“containerGroupName”。 “containerGroupName”属性的长度必须介于 1 到 63 个字符之间,只能包含小写字母、数字和短划线,并且不能以短划线开头或以连续短划线结尾。 若要指定'containerGroupName',请将以下对象添加到属性:{ “containerSettings”: { “containerGroupName”: “contoso-container” } }。 如果不想指定“containerGroupName”,则不要添加“containerSettings”属性。 | 字符串 约束: 最小长度 = 1 最大长度 = 63 |
| subnetIds | 容器组的子网资源 ID。 | ContainerGroupSubnetId[] |
容器组子网 ID
| 名字 | 描述 | 价值 |
|---|---|---|
| 身份证 | 子网的资源 ID。 | string (必需) |
| 名字 | 子网的友好名称。 | 字符串 |
DeploymentScript标签
| 名字 | 描述 | 价值 |
|---|
环境变量
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 环境变量的名称。 | string (必需) |
| secureValue 安全型 | 安全环境变量的值。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
| 价值 | 环境变量的值。 | 字符串 |
ManagedServiceIdentity
| 名字 | 描述 | 价值 |
|---|---|---|
| 类型 | 托管标识的类型。 | “UserAssigned” |
| 用户分配的标识 | 与资源关联的用户分配托管标识的列表。 密钥是托管标识的 Azure 资源 ID。 | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
| 名字 | 描述 | 价值 |
|---|
StorageAccountConfiguration
| 名字 | 描述 | 价值 |
|---|---|---|
| storageAccountKey | 存储帐户访问密钥。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
| 存储账户名称 | 存储帐户名称。 | 字符串 |
UserAssignedIdentity
| 名字 | 描述 | 价值 |
|---|
用法示例
Azure 快速入门模板
以下 Azure 快速入门模板 部署此资源类型。
| 模板 | 描述 |
|---|---|
| 使用 Helm |
使用 Helm 部署具有 Azure 容器服务(AKS)的托管群集 |
| 使用 Azure Windows 基线 |
创建 Azure 映像生成器环境,并生成应用最新 Windows 更新和 Azure Windows 基线的 Windows Server 映像。 |
|
使用 ACR 任务 生成容器映像 |
此模板使用 DeploymentScript 来协调 ACR,以便从代码存储库生成容器映像。 |
|
配置 Dev Box 服务 |
此模板将按照 Dev Box 快速入门指南(/azure/dev-box/quickstart-create-dev-box)创建所有 Dev Box 管理员资源。 可以查看创建的所有资源,也可以直接转到 DevPortal.microsoft.com 创建第一个 Dev Box。 |
|
将文件从 URI 复制到 blob 存储容器 |
此模块从 URI 下载文件,并将其复制到 Azure storageAccount Blob 容器。 storageAccount 必须已存在,并且源文件必须已暂存到 URI。 |
|
为数据工厂复制数据工具创建 blob 快速入门 |
此模板创建 Blob 存储并上传复制数据工具快速入门的文件 |
|
创建具有复杂输入的部署脚本 & 输出 |
此模板演示了将复杂输入、输出和日志传递给 Az CLI 部署脚本的最佳做法 |
|
创建具有复杂输入的部署脚本 & 输出 |
此模板演示了将复杂输入、输出和日志传递和读取到 Az PowerShell 部署脚本的最佳做法 |
|
创建 WordPress 网站 |
此模板在容器实例上创建 WordPress 站点 |
|
使用 Prometheus 和 Grafana 和 privae 链接创建 AKS |
这将在 Azure Kubernetes 服务(AKS)群集上创建 Azure grafana、AKS 并安装 Prometheus(开源监视和警报工具包)。 然后使用 Azure Managed Grafana 的托管专用终结点连接到此 Prometheus 服务器并在 Grafana 仪表板中显示 Prometheus 数据 |
|
创建 Azure 机器学习扫描作业 |
此模板创建用于超参数优化的 Azure 机器学习扫描作业。 |
|
创建 Azure 虚拟网络管理器和示例 VNET |
此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。 |
|
创建具有持久性存储 的按需 SFTP 服务器 |
此模板演示使用 Azure 容器实例(ACI)的按需 SFTP 服务器。 |
|
使用证书创建应用程序网关 |
此模板演示如何生成 Key Vault 自签名证书,然后从应用程序网关引用。 |
|
创建 ssh 密钥并将其存储在 KeyVault |
此模板使用 deploymentScript 资源生成 ssh 密钥,并将私钥存储在 keyVault 中。 |
|
使用注册表 创建容器应用和环境 |
使用 Azure 容器注册表中的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。 |
|
使用容器应用创建 Dapr 微服务应用 |
使用容器应用创建 Dapr 微服务应用。 |
|
使用容器应用创建 Dapr pub-sub servicebus 应用 |
使用容器应用创建 Dapr pub-sub servicebus 应用。 |
|
部署简单的 Azure Spring Apps 微服务应用程序 |
此模板部署一个简单的 Azure Spring Apps 微服务应用程序,以在 Azure 上运行。 |
|
部署静态网站 |
使用支持存储帐户部署静态网站 |
|
FinOps 中心 |
此模板创建新的 FinOps 中心实例,包括数据资源管理器、Data Lake 存储和数据工厂。 |
| 使用静态网站源 Front Door 标准版/高级版 |
此模板创建 Front Door 标准版/高级版和 Azure 存储静态网站,并将 Front Door 配置为将流量发送到静态网站。 |
| 使用远程生成 的 Linux 消耗计划上的 |
此模板在 Linux 消耗计划上预配函数应用,并在代码部署期间执行远程生成。 应用按需运行,并且按执行计费,且没有持续的资源承诺。 |
|
将容器映像导入 ACR |
此模板利用 bicep 注册表中的 Import ACR 模块将公共容器映像导入 Azure 容器注册表。 |
|
从 ZIP 存档 URL 导入 VHD Blob |
基于专用磁盘映像部署虚拟机需要将 VHD 文件导入存储帐户。 如果单个 ZIP 中压缩了多个 VHD 文件,并且获取了用于提取 ZIP 存档的 URL,则此 ARM 模板将简化作业:下载、提取和导入到现有存储帐户 Blob 容器中。 |
|
min.io Azure 网关 |
完全专用 min.io Azure 网关部署,以提供受 Blob 存储支持的符合 S3 的存储 API |
| 可以使用 Azure 数据工厂 更多 - 单击一次尝试 Azure 数据工厂 |
此模板为从 Azure Blob 复制到另一个 Azure Blob 中的复制活动创建数据工厂管道 |
| 使用用户托管标识 网络安全代理 |
此模板集演示如何使用用户托管标识身份验证为 AI 服务/AOAI 连接设置虚拟网络隔离的 Azure AI 代理服务,以及专用网络链接,以将代理连接到安全数据。 |
|
标准代理设置 |
此模板集演示如何使用标准设置设置设置 Azure AI 代理服务,这意味着已启用项目/中心连接的托管标识身份验证和公共 Internet 访问。 代理使用客户拥有的单租户搜索和存储资源。 通过此设置,可以完全控制这些资源并查看这些资源,但会根据使用情况产生成本。 |
| Azure 防火墙高级版 的 |
此模板创建具有高级功能(例如入侵检查检测(IDPS)、TLS 检查和 Web 类别筛选等高级功能的 Azure 防火墙高级和防火墙策略 |
|
使用部署脚本创建 Azure AD 对象 |
此示例使用部署脚本在 Azure Active Directory 中创建对象。 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 deploymentScripts 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Resources/deploymentScripts 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
identity = {
type = "string"
userAssignedIdentities = {
{customized property} = {
}
}
}
location = "string"
name = "string"
tags = {
{customized property} = "string"
}
kind = "string"
// For remaining properties, see Microsoft.Resources/deploymentScripts objects
}
Microsoft.Resources/deploymentScripts 对象
设置 类型 属性以指定对象的类型。
对于 AzureCLI,请使用:
{
kind = "AzureCLI"
properties = {
arguments = "string"
azCliVersion = "string"
cleanupPreference = "string"
containerSettings = {
containerGroupName = "string"
subnetIds = [
{
id = "string"
name = "string"
}
]
}
environmentVariables = [
{
name = "string"
secureValue = "string"
value = "string"
}
]
forceUpdateTag = "string"
primaryScriptUri = "string"
retentionInterval = "string"
scriptContent = "string"
storageAccountSettings = {
storageAccountKey = "string"
storageAccountName = "string"
}
supportingScriptUris = [
"string"
]
timeout = "string"
}
}
对于 azurePowerShell
{
kind = "AzurePowerShell"
properties = {
arguments = "string"
azPowerShellVersion = "string"
cleanupPreference = "string"
containerSettings = {
containerGroupName = "string"
subnetIds = [
{
id = "string"
name = "string"
}
]
}
environmentVariables = [
{
name = "string"
secureValue = "string"
value = "string"
}
]
forceUpdateTag = "string"
primaryScriptUri = "string"
retentionInterval = "string"
scriptContent = "string"
storageAccountSettings = {
storageAccountKey = "string"
storageAccountName = "string"
}
supportingScriptUris = [
"string"
]
timeout = "string"
}
}
属性值
Microsoft.Resources/deploymentScripts
| 名字 | 描述 | 价值 |
|---|---|---|
| 标识 | 可选属性。 要用于此部署脚本的托管标识。 目前,仅支持用户分配的 MSI。 | ManagedServiceIdentity |
| 类 | 对于 AzureCliScript类型,设置为“AzureCLI”。 对于 AzurePowerShellScript类型,设置为“AzurePowerShellShell”。 | “AzureCLI” “AzurePowerShell”(必需) |
| 位置 | 部署脚本的 ACI 和存储帐户的位置。 | string (必需) |
| 名字 | 资源名称 | 字符串 约束: 最小长度 = 1 最大长度 = 90 (必需) |
| parent_id | 要向其应用此扩展资源的资源的 ID。 | string (必需) |
| 标签 | 资源标记 | 标记名称和值的字典。 |
| 类型 | 资源类型 | “Microsoft.Resources/deploymentScripts@2023-08-01” |
AzureCliScript
| 名字 | 描述 | 价值 |
|---|---|---|
| 类 | 脚本的类型。 | “AzureCLI”(必需) |
| 性能 | Azure CLI 脚本对象的属性。 | AzureCliScriptProperties(必需) |
AzureCliScriptProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 参数 | 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” | 字符串 |
| azCliVersion | 要使用的 Azure CLI 模块版本。 | string (必需) |
| cleanupPreference | 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 | “Always” “OnExpiration” “OnSuccess” |
| containerSettings | 容器设置。 | 容器配置 |
| 环境变量 | 要传递给脚本的环境变量。 | 环境变量[] |
| forceUpdateTag | 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 | 字符串 |
| primaryScriptUri 的 | 脚本的 URI。 这是外部脚本的入口点。 | 字符串 |
| retentionInterval 保留间隔 | 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 | string (必需) |
| 脚本内容 | 脚本正文。 | 字符串 |
| storageAccountSettings | 存储帐户设置。 | StorageAccountConfiguration |
| supportingScriptUris | 支持外部脚本的文件。 | 字符串[] |
| 超时 | ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D | 字符串 |
AzurePowerShell脚本
| 名字 | 描述 | 价值 |
|---|---|---|
| 类 | 脚本的类型。 | “AzurePowerShell”(必需) |
| 性能 | Azure PowerShell 脚本对象的属性。 | AzurePowerShellScriptProperties(必需) |
AzurePowerShellScriptProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 参数 | 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” | 字符串 |
| azPowerShellVersion | 要使用的 Azure PowerShell 模块版本。 | string (必需) |
| cleanupPreference | 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 | “Always” “OnExpiration” “OnSuccess” |
| containerSettings | 容器设置。 | 容器配置 |
| 环境变量 | 要传递给脚本的环境变量。 | 环境变量[] |
| forceUpdateTag | 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 | 字符串 |
| primaryScriptUri 的 | 脚本的 URI。 这是外部脚本的入口点。 | 字符串 |
| retentionInterval 保留间隔 | 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 | string (必需) |
| 脚本内容 | 脚本正文。 | 字符串 |
| storageAccountSettings | 存储帐户设置。 | StorageAccountConfiguration |
| supportingScriptUris | 支持外部脚本的文件。 | 字符串[] |
| 超时 | ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D | 字符串 |
容器配置
| 名字 | 描述 | 价值 |
|---|---|---|
| containerGroupName (容器组名称) | 如果未指定容器组名称,则名称将自动生成。 未指定“containerGroupName”表示系统生成唯一名称,最终可能会将 Azure Policy 标记为不合规。 如果具有需要特定命名约定的 Azure Policy,或者想要完全控制名称,请使用“containerGroupName”。 “containerGroupName”属性的长度必须介于 1 到 63 个字符之间,只能包含小写字母、数字和短划线,并且不能以短划线开头或以连续短划线结尾。 若要指定'containerGroupName',请将以下对象添加到属性:{ “containerSettings”: { “containerGroupName”: “contoso-container” } }。 如果不想指定“containerGroupName”,则不要添加“containerSettings”属性。 | 字符串 约束: 最小长度 = 1 最大长度 = 63 |
| subnetIds | 容器组的子网资源 ID。 | ContainerGroupSubnetId[] |
容器组子网 ID
| 名字 | 描述 | 价值 |
|---|---|---|
| 身份证 | 子网的资源 ID。 | string (必需) |
| 名字 | 子网的友好名称。 | 字符串 |
DeploymentScript标签
| 名字 | 描述 | 价值 |
|---|
环境变量
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 环境变量的名称。 | string (必需) |
| secureValue 安全型 | 安全环境变量的值。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
| 价值 | 环境变量的值。 | 字符串 |
ManagedServiceIdentity
| 名字 | 描述 | 价值 |
|---|---|---|
| 类型 | 托管标识的类型。 | “UserAssigned” |
| 用户分配的标识 | 与资源关联的用户分配托管标识的列表。 密钥是托管标识的 Azure 资源 ID。 | ManagedServiceIdentityUserAssignedIdentities |
ManagedServiceIdentityUserAssignedIdentities
| 名字 | 描述 | 价值 |
|---|
StorageAccountConfiguration
| 名字 | 描述 | 价值 |
|---|---|---|
| storageAccountKey | 存储帐户访问密钥。 | 字符串 约束: 敏感值。 以安全参数的形式传入。 |
| 存储账户名称 | 存储帐户名称。 | 字符串 |
UserAssignedIdentity
| 名字 | 描述 | 价值 |
|---|
用法示例
Terraform 示例
部署资源部署脚本的基本示例。
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "deploymentScript" {
type = "Microsoft.Resources/deploymentScripts@2020-10-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
kind = "AzurePowerShell"
properties = {
azPowerShellVersion = "8.3"
cleanupPreference = "Always"
environmentVariables = null
retentionInterval = "P1D"
scriptContent = "\t\t$output = 'Hello'\n\t\tWrite-Output $output\n\t\t$DeploymentScriptOutputs = @{}\n\t\t$DeploymentScriptOutputs['text'] = $output\n"
supportingScriptUris = null
timeout = "P1D"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}