你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.Resources deploymentScripts 2023-08-01

Bicep 资源定义

可以使用目标操作部署 deploymentScripts 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

言论

若要了解如何在部署期间执行脚本,请参阅 在 Bicep 中使用部署脚本,或 在 ARM 模板中使用部署脚本

资源格式

若要创建 Microsoft.Resources/deploymentScripts 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  kind: 'string'
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  // For remaining properties, see deploymentScripts objects
}

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'
  }

属性值

deploymentScripts

名字 描述 价值
名字 资源名称 string (必需)
位置 部署脚本的 ACI 和存储帐户的位置。 string (必需)
标签 资源标记。 标记名称和值的字典。 请参阅模板 中的 标记
设置对象类型 AzureCLI
AzurePowerShell(必需)
身份 可选属性。 要用于此部署脚本的托管标识。 目前,仅支持用户分配的 MSI。 ManagedServiceIdentity

AzureCliScript

名字 描述 价值
脚本的类型。 “AzureCLI”(必需)
性能 Azure CLI 脚本对象的属性。 AzureCliScriptProperties(必需)

AzureCliScriptProperties

名字 描述 价值
参数 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” 字符串
azCliVersion 要使用的 Azure CLI 模块版本。 string (必需)
cleanupPreference 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 “Always”
“OnExpiration”
“OnSuccess”
containerSettings 容器设置。 ContainerConfiguration
environmentVariables 要传递给脚本的环境变量。 EnvironmentVariable[]
forceUpdateTag 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 字符串
primaryScriptUri 脚本的 URI。 这是外部脚本的入口点。 字符串
retentionInterval 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 string (必需)
scriptContent 脚本正文。 字符串
storageAccountSettings 存储帐户设置。 StorageAccountConfiguration
supportingScriptUris 支持外部脚本的文件。 string[]
超时 ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D 字符串

ContainerConfiguration

名字 描述 价值
containerGroupName 如果未指定容器组名称,则名称将自动生成。 未指定“containerGroupName”表示系统生成唯一名称,最终可能会将 Azure Policy 标记为不合规。 如果具有需要特定命名约定的 Azure Policy,或者想要完全控制名称,请使用“containerGroupName”。 “containerGroupName”属性的长度必须介于 1 到 63 个字符之间,只能包含小写字母、数字和短划线,并且不能以短划线开头或以连续短划线结尾。 若要指定'containerGroupName',请将以下对象添加到属性:{ “containerSettings”: { “containerGroupName”: “contoso-container” } }。 如果不想指定“containerGroupName”,则不要添加“containerSettings”属性。 字符串

约束:
最小长度 = 1
最大长度 = 63
subnetIds 容器组的子网资源 ID。 ContainerGroupSubnetId[]

ContainerGroupSubnetId

名字 描述 价值
id 子网的资源 ID。 string (必需)
名字 子网的友好名称。 字符串

EnvironmentVariable

名字 描述 价值
名字 环境变量的名称。 string (必需)
secureValue 安全环境变量的值。 字符串

约束:
敏感值。 以安全参数的形式传入。
价值 环境变量的值。 字符串

StorageAccountConfiguration

名字 描述 价值
storageAccountKey 存储帐户访问密钥。 字符串

约束:
敏感值。 以安全参数的形式传入。
storageAccountName 存储帐户名称。 字符串

AzurePowerShellScript

名字 描述 价值
脚本的类型。 “AzurePowerShell”(必需)
性能 Azure PowerShell 脚本对象的属性。 AzurePowerShellScriptProperties(必需)

AzurePowerShellScriptProperties

名字 描述 价值
参数 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” 字符串
azPowerShellVersion 要使用的 Azure PowerShell 模块版本。 string (必需)
cleanupPreference 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 “Always”
“OnExpiration”
“OnSuccess”
containerSettings 容器设置。 ContainerConfiguration
environmentVariables 要传递给脚本的环境变量。 EnvironmentVariable[]
forceUpdateTag 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 字符串
primaryScriptUri 脚本的 URI。 这是外部脚本的入口点。 字符串
retentionInterval 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 string (必需)
scriptContent 脚本正文。 字符串
storageAccountSettings 存储帐户设置。 StorageAccountConfiguration
supportingScriptUris 支持外部脚本的文件。 string[]
超时 ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D 字符串

ManagedServiceIdentity

名字 描述 价值
类型 托管标识的类型。 “UserAssigned”
userAssignedIdentities 与资源关联的用户分配托管标识的列表。 密钥是托管标识的 Azure 资源 ID。 ManagedServiceIdentityUserAssignedIdentities

ManagedServiceIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} UserAssignedIdentity

UserAssignedIdentity

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

快速入门模板

以下快速入门模板部署此资源类型。

模板 描述
min.io Azure 网关

部署到 Azure
完全专用 min.io Azure 网关部署,以提供受 Blob 存储支持的符合 S3 的存储 API
创建 WordPress 网站

部署到 Azure
此模板在容器实例上创建 WordPress 站点
使用 Azure Windows 基线 Azure 映像生成器

部署到 Azure
创建 Azure 映像生成器环境,并生成应用最新 Windows 更新和 Azure Windows 基线的 Windows Server 映像。
从 ZIP 存档 URL 导入 VHD Blob

部署到 Azure
基于专用磁盘映像部署虚拟机需要将 VHD 文件导入存储帐户。 如果单个 ZIP 中压缩了多个 VHD 文件,并且获取了用于提取 ZIP 存档的 URL,则此 ARM 模板将简化作业:下载、提取和导入到现有存储帐户 Blob 容器中。
将文件从 URI 复制到 blob 存储容器

部署到 Azure
此模块从 URI 下载文件,并将其复制到 Azure storageAccount Blob 容器。 storageAccount 必须已存在,并且源文件必须已暂存到 URI。
使用注册表 创建容器应用和环境

部署到 Azure
使用 Azure 容器注册表中的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用容器应用创建 Dapr pub-sub servicebus 应用

部署到 Azure
使用容器应用创建 Dapr pub-sub servicebus 应用。
部署简单的 Azure Spring Apps 微服务应用程序

部署到 Azure
此模板部署一个简单的 Azure Spring Apps 微服务应用程序,以在 Azure 上运行。
使用静态网站源 Front Door 标准版/高级版

部署到 Azure
此模板创建 Front Door 标准版/高级版和 Azure 存储静态网站,并将 Front Door 配置为将流量发送到静态网站。
创建具有持久性存储 的按需 SFTP 服务器

部署到 Azure
此模板演示使用 Azure 容器实例(ACI)的按需 SFTP 服务器。
FinOps 中心

部署到 Azure
此模板创建新的 FinOps 中心实例,包括 Data Lake 存储和数据工厂。
为数据工厂复制数据工具创建 blob 快速入门

部署到 Azure
此模板创建 Blob 存储并上传复制数据工具快速入门的文件
可以使用 Azure 数据工厂 更多 - 单击一次尝试 Azure 数据工厂

部署到 Azure
此模板为从 Azure Blob 复制到另一个 Azure Blob 中的复制活动创建数据工厂管道
配置 Dev Box 服务

部署到 Azure
根据 Dev Box 快速入门指南(https://learn.microsoft.com/azure/dev-box/quickstart-create-dev-box),此模板将创建所有 Dev Box 管理员资源。 可以查看创建的所有资源,也可以直接转到 DevPortal.microsoft.com 创建第一个 Dev Box。
使用 Helm Azure 容器服务 (AKS)

部署到 Azure
使用 Helm 部署具有 Azure 容器服务(AKS)的托管群集
创建 Azure 机器学习扫描作业

部署到 Azure
此模板创建用于超参数优化的 Azure 机器学习扫描作业。
Azure 防火墙高级版 的 测试环境

部署到 Azure
此模板创建具有高级功能(例如入侵检查检测(IDPS)、TLS 检查和 Web 类别筛选等高级功能的 Azure 防火墙高级和防火墙策略
使用 ACR 任务 生成容器映像

部署到 Azure
此模板使用 DeploymentScript 来协调 ACR,以便从代码存储库生成容器映像。
将容器映像导入 ACR

部署到 Azure
此模板利用 bicep 注册表中的 Import ACR 模块将公共容器映像导入 Azure 容器注册表。
使用证书创建应用程序网关

部署到 Azure
此模板演示如何生成 Key Vault 自签名证书,然后从应用程序网关引用。
使用部署脚本创建 Azure AD 对象

部署到 Azure
此示例使用部署脚本在 Azure Active Directory 中创建对象。
创建具有复杂输入的部署脚本 & 输出

部署到 Azure
此模板演示了将复杂输入、输出和日志传递给 Az CLI 部署脚本的最佳做法
创建具有复杂输入的部署脚本 & 输出

部署到 Azure
此模板演示了将复杂输入、输出和日志传递到 Az Powershell 部署脚本以及读取复杂输入、输出和日志的最佳做法
创建 ssh 密钥并将其存储在 KeyVault

部署到 Azure
此模板使用 deploymentScript 资源生成 ssh 密钥,并将私钥存储在 keyVault 中。
部署静态网站

部署到 Azure
使用支持存储帐户部署静态网站
使用远程生成 的 Linux 消耗计划上的 Function App

部署到 Azure
此模板在 Linux 消耗计划上预配函数应用,并在代码部署期间执行远程生成。 应用按需运行,并且按执行计费,且没有持续的资源承诺。
创建 Azure 虚拟网络管理器和示例 VNET

部署到 Azure
此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。

ARM 模板资源定义

可以使用目标操作部署 deploymentScripts 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

言论

若要了解如何在部署期间执行脚本,请参阅 在 Bicep 中使用部署脚本,或 在 ARM 模板中使用部署脚本

资源格式

若要创建 Microsoft.Resources/deploymentScripts 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.Resources/deploymentScripts",
  "apiVersion": "2023-08-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "kind": "string",
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  // For remaining properties, see deploymentScripts objects
}

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"
  }

属性值

deploymentScripts

名字 描述 价值
类型 资源类型 “Microsoft.Resources/deploymentScripts”
apiVersion 资源 API 版本 '2023-08-01'
名字 资源名称 string (必需)
位置 部署脚本的 ACI 和存储帐户的位置。 string (必需)
标签 资源标记。 标记名称和值的字典。 请参阅模板 中的 标记
设置对象类型 AzureCLI
AzurePowerShell(必需)
身份 可选属性。 要用于此部署脚本的托管标识。 目前,仅支持用户分配的 MSI。 ManagedServiceIdentity

AzureCliScript

名字 描述 价值
脚本的类型。 “AzureCLI”(必需)
性能 Azure CLI 脚本对象的属性。 AzureCliScriptProperties(必需)

AzureCliScriptProperties

名字 描述 价值
参数 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” 字符串
azCliVersion 要使用的 Azure CLI 模块版本。 string (必需)
cleanupPreference 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 “Always”
“OnExpiration”
“OnSuccess”
containerSettings 容器设置。 ContainerConfiguration
environmentVariables 要传递给脚本的环境变量。 EnvironmentVariable[]
forceUpdateTag 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 字符串
primaryScriptUri 脚本的 URI。 这是外部脚本的入口点。 字符串
retentionInterval 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 string (必需)
scriptContent 脚本正文。 字符串
storageAccountSettings 存储帐户设置。 StorageAccountConfiguration
supportingScriptUris 支持外部脚本的文件。 string[]
超时 ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D 字符串

ContainerConfiguration

名字 描述 价值
containerGroupName 如果未指定容器组名称,则名称将自动生成。 未指定“containerGroupName”表示系统生成唯一名称,最终可能会将 Azure Policy 标记为不合规。 如果具有需要特定命名约定的 Azure Policy,或者想要完全控制名称,请使用“containerGroupName”。 “containerGroupName”属性的长度必须介于 1 到 63 个字符之间,只能包含小写字母、数字和短划线,并且不能以短划线开头或以连续短划线结尾。 若要指定'containerGroupName',请将以下对象添加到属性:{ “containerSettings”: { “containerGroupName”: “contoso-container” } }。 如果不想指定“containerGroupName”,则不要添加“containerSettings”属性。 字符串

约束:
最小长度 = 1
最大长度 = 63
subnetIds 容器组的子网资源 ID。 ContainerGroupSubnetId[]

ContainerGroupSubnetId

名字 描述 价值
id 子网的资源 ID。 string (必需)
名字 子网的友好名称。 字符串

EnvironmentVariable

名字 描述 价值
名字 环境变量的名称。 string (必需)
secureValue 安全环境变量的值。 字符串

约束:
敏感值。 以安全参数的形式传入。
价值 环境变量的值。 字符串

StorageAccountConfiguration

名字 描述 价值
storageAccountKey 存储帐户访问密钥。 字符串

约束:
敏感值。 以安全参数的形式传入。
storageAccountName 存储帐户名称。 字符串

AzurePowerShellScript

名字 描述 价值
脚本的类型。 “AzurePowerShell”(必需)
性能 Azure PowerShell 脚本对象的属性。 AzurePowerShellScriptProperties(必需)

AzurePowerShellScriptProperties

名字 描述 价值
参数 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” 字符串
azPowerShellVersion 要使用的 Azure PowerShell 模块版本。 string (必需)
cleanupPreference 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 “Always”
“OnExpiration”
“OnSuccess”
containerSettings 容器设置。 ContainerConfiguration
environmentVariables 要传递给脚本的环境变量。 EnvironmentVariable[]
forceUpdateTag 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 字符串
primaryScriptUri 脚本的 URI。 这是外部脚本的入口点。 字符串
retentionInterval 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 string (必需)
scriptContent 脚本正文。 字符串
storageAccountSettings 存储帐户设置。 StorageAccountConfiguration
supportingScriptUris 支持外部脚本的文件。 string[]
超时 ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D 字符串

ManagedServiceIdentity

名字 描述 价值
类型 托管标识的类型。 “UserAssigned”
userAssignedIdentities 与资源关联的用户分配托管标识的列表。 密钥是托管标识的 Azure 资源 ID。 ManagedServiceIdentityUserAssignedIdentities

ManagedServiceIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} UserAssignedIdentity

UserAssignedIdentity

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

快速入门模板

以下快速入门模板部署此资源类型。

模板 描述
min.io Azure 网关

部署到 Azure
完全专用 min.io Azure 网关部署,以提供受 Blob 存储支持的符合 S3 的存储 API
创建 WordPress 网站

部署到 Azure
此模板在容器实例上创建 WordPress 站点
使用 Azure Windows 基线 Azure 映像生成器

部署到 Azure
创建 Azure 映像生成器环境,并生成应用最新 Windows 更新和 Azure Windows 基线的 Windows Server 映像。
从 ZIP 存档 URL 导入 VHD Blob

部署到 Azure
基于专用磁盘映像部署虚拟机需要将 VHD 文件导入存储帐户。 如果单个 ZIP 中压缩了多个 VHD 文件,并且获取了用于提取 ZIP 存档的 URL,则此 ARM 模板将简化作业:下载、提取和导入到现有存储帐户 Blob 容器中。
将文件从 URI 复制到 blob 存储容器

部署到 Azure
此模块从 URI 下载文件,并将其复制到 Azure storageAccount Blob 容器。 storageAccount 必须已存在,并且源文件必须已暂存到 URI。
使用注册表 创建容器应用和环境

部署到 Azure
使用 Azure 容器注册表中的基本容器应用创建容器应用环境。 它还部署 Log Analytics 工作区来存储日志。
使用容器应用创建 Dapr pub-sub servicebus 应用

部署到 Azure
使用容器应用创建 Dapr pub-sub servicebus 应用。
部署简单的 Azure Spring Apps 微服务应用程序

部署到 Azure
此模板部署一个简单的 Azure Spring Apps 微服务应用程序,以在 Azure 上运行。
使用静态网站源 Front Door 标准版/高级版

部署到 Azure
此模板创建 Front Door 标准版/高级版和 Azure 存储静态网站,并将 Front Door 配置为将流量发送到静态网站。
创建具有持久性存储 的按需 SFTP 服务器

部署到 Azure
此模板演示使用 Azure 容器实例(ACI)的按需 SFTP 服务器。
FinOps 中心

部署到 Azure
此模板创建新的 FinOps 中心实例,包括 Data Lake 存储和数据工厂。
为数据工厂复制数据工具创建 blob 快速入门

部署到 Azure
此模板创建 Blob 存储并上传复制数据工具快速入门的文件
可以使用 Azure 数据工厂 更多 - 单击一次尝试 Azure 数据工厂

部署到 Azure
此模板为从 Azure Blob 复制到另一个 Azure Blob 中的复制活动创建数据工厂管道
配置 Dev Box 服务

部署到 Azure
根据 Dev Box 快速入门指南(https://learn.microsoft.com/azure/dev-box/quickstart-create-dev-box),此模板将创建所有 Dev Box 管理员资源。 可以查看创建的所有资源,也可以直接转到 DevPortal.microsoft.com 创建第一个 Dev Box。
使用 Helm Azure 容器服务 (AKS)

部署到 Azure
使用 Helm 部署具有 Azure 容器服务(AKS)的托管群集
创建 Azure 机器学习扫描作业

部署到 Azure
此模板创建用于超参数优化的 Azure 机器学习扫描作业。
Azure 防火墙高级版 的 测试环境

部署到 Azure
此模板创建具有高级功能(例如入侵检查检测(IDPS)、TLS 检查和 Web 类别筛选等高级功能的 Azure 防火墙高级和防火墙策略
使用 ACR 任务 生成容器映像

部署到 Azure
此模板使用 DeploymentScript 来协调 ACR,以便从代码存储库生成容器映像。
将容器映像导入 ACR

部署到 Azure
此模板利用 bicep 注册表中的 Import ACR 模块将公共容器映像导入 Azure 容器注册表。
使用证书创建应用程序网关

部署到 Azure
此模板演示如何生成 Key Vault 自签名证书,然后从应用程序网关引用。
使用部署脚本创建 Azure AD 对象

部署到 Azure
此示例使用部署脚本在 Azure Active Directory 中创建对象。
创建具有复杂输入的部署脚本 & 输出

部署到 Azure
此模板演示了将复杂输入、输出和日志传递给 Az CLI 部署脚本的最佳做法
创建具有复杂输入的部署脚本 & 输出

部署到 Azure
此模板演示了将复杂输入、输出和日志传递到 Az Powershell 部署脚本以及读取复杂输入、输出和日志的最佳做法
创建 ssh 密钥并将其存储在 KeyVault

部署到 Azure
此模板使用 deploymentScript 资源生成 ssh 密钥,并将私钥存储在 keyVault 中。
部署静态网站

部署到 Azure
使用支持存储帐户部署静态网站
使用远程生成 的 Linux 消耗计划上的 Function App

部署到 Azure
此模板在 Linux 消耗计划上预配函数应用,并在代码部署期间执行远程生成。 应用按需运行,并且按执行计费,且没有持续的资源承诺。
创建 Azure 虚拟网络管理器和示例 VNET

部署到 Azure
此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。

Terraform (AzAPI 提供程序)资源定义

可以使用目标操作部署 deploymentScripts 资源类型:

  • 资源组

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Resources/deploymentScripts 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Resources/deploymentScripts@2023-08-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "UserAssigned"
    identity_ids = []
  }
  // For remaining properties, see deploymentScripts objects
  body = jsonencode({
    kind = "string"
  })
}

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"
  }

属性值

deploymentScripts

名字 描述 价值
类型 资源类型 “Microsoft.Resources/deploymentScripts@2023-08-01”
名字 资源名称 string (必需)
位置 部署脚本的 ACI 和存储帐户的位置。 string (必需)
parent_id 若要部署到资源组,请使用该资源组的 ID。 string (必需)
标签 资源标记。 标记名称和值的字典。
设置对象类型 AzureCLI
AzurePowerShell(必需)
身份 可选属性。 要用于此部署脚本的托管标识。 目前,仅支持用户分配的 MSI。 ManagedServiceIdentity

AzureCliScript

名字 描述 价值
脚本的类型。 “AzureCLI”(必需)
性能 Azure CLI 脚本对象的属性。 AzureCliScriptProperties(必需)

AzureCliScriptProperties

名字 描述 价值
参数 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” 字符串
azCliVersion 要使用的 Azure CLI 模块版本。 string (必需)
cleanupPreference 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 “始终”
“OnExpiration”
“OnSuccess”
containerSettings 容器设置。 ContainerConfiguration
environmentVariables 要传递给脚本的环境变量。 EnvironmentVariable[]
forceUpdateTag 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 字符串
primaryScriptUri 脚本的 URI。 这是外部脚本的入口点。 字符串
retentionInterval 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 string (必需)
scriptContent 脚本正文。 字符串
storageAccountSettings 存储帐户设置。 StorageAccountConfiguration
supportingScriptUris 支持外部脚本的文件。 string[]
超时 ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D 字符串

ContainerConfiguration

名字 描述 价值
containerGroupName 如果未指定容器组名称,则名称将自动生成。 未指定“containerGroupName”表示系统生成唯一名称,最终可能会将 Azure Policy 标记为不合规。 如果具有需要特定命名约定的 Azure Policy,或者想要完全控制名称,请使用“containerGroupName”。 “containerGroupName”属性的长度必须介于 1 到 63 个字符之间,只能包含小写字母、数字和短划线,并且不能以短划线开头或以连续短划线结尾。 若要指定'containerGroupName',请将以下对象添加到属性:{ “containerSettings”: { “containerGroupName”: “contoso-container” } }。 如果不想指定“containerGroupName”,则不要添加“containerSettings”属性。 字符串

约束:
最小长度 = 1
最大长度 = 63
subnetIds 容器组的子网资源 ID。 ContainerGroupSubnetId[]

ContainerGroupSubnetId

名字 描述 价值
id 子网的资源 ID。 string (必需)
名字 子网的友好名称。 字符串

EnvironmentVariable

名字 描述 价值
名字 环境变量的名称。 string (必需)
secureValue 安全环境变量的值。 字符串

约束:
敏感值。 以安全参数的形式传入。
价值 环境变量的值。 字符串

StorageAccountConfiguration

名字 描述 价值
storageAccountKey 存储帐户访问密钥。 字符串

约束:
敏感值。 以安全参数的形式传入。
storageAccountName 存储帐户名称。 字符串

AzurePowerShellScript

名字 描述 价值
脚本的类型。 “AzurePowerShell”(必需)
性能 Azure PowerShell 脚本对象的属性。 AzurePowerShellScriptProperties(必需)

AzurePowerShellScriptProperties

名字 描述 价值
参数 要传递给脚本的命令行参数。 参数用空格分隔。 例如:-Name 蓝色* -Location “美国西部 2” 字符串
azPowerShellVersion 要使用的 Azure PowerShell 模块版本。 string (必需)
cleanupPreference 当脚本执行处于终端状态时,清理首选项。 默认设置为“Always”。 “始终”
“OnExpiration”
“OnSuccess”
containerSettings 容器设置。 ContainerConfiguration
environmentVariables 要传递给脚本的环境变量。 EnvironmentVariable[]
forceUpdateTag 获取或设置部署脚本的执行方式,即使脚本资源未更改也是如此。 可以是当前时间戳或 GUID。 字符串
primaryScriptUri 脚本的 URI。 这是外部脚本的入口点。 字符串
retentionInterval 服务到达终端状态后保留脚本资源的间隔。 当此持续时间到期时,将删除资源。 持续时间基于 ISO 8601 模式(例如 P1D 表示一天)。 string (必需)
scriptContent 脚本正文。 字符串
storageAccountSettings 存储帐户设置。 StorageAccountConfiguration
supportingScriptUris 支持外部脚本的文件。 string[]
超时 ISO 8601 格式指定的最大允许脚本执行时间。 默认值为 P1D 字符串

ManagedServiceIdentity

名字 描述 价值
类型 托管标识的类型。 “UserAssigned”
identity_ids 与资源关联的用户分配托管标识的列表。 密钥是托管标识的 Azure 资源 ID。 用户标识 ID 的数组。

ManagedServiceIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} UserAssignedIdentity

UserAssignedIdentity

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。