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

Virtual Machine Run Commands - Create Or Update

用于创建或更新 run 命令的操作。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/runCommands/{runCommandName}?api-version=2024-07-01

URI 参数

名称 必需 类型 说明
resourceGroupName
path True

string

资源组的名称。

runCommandName
path True

string

虚拟机运行命令的名称。

subscriptionId
path True

string

唯一标识 azure 订阅Microsoft的订阅凭据。 订阅 ID 构成了每个服务调用的 URI 的一部分。

vmName
path True

string

应在其中创建或更新运行命令的虚拟机的名称。

api-version
query True

string

客户端 API 版本。

请求正文

Media Types: "application/json", "text/json"

名称 必需 类型 说明
location True

string

资源位置

properties.asyncExecution

boolean

自选。 如果设置为 true,则脚本启动后,预配将立即完成,并且不会等待脚本完成。

properties.errorBlobManagedIdentity

RunCommandManagedIdentity

用户分配的托管标识有权访问 errorBlobUri 存储 Blob。 在系统分配的标识的情况下使用空对象。 确保已向托管标识授予对具有“存储 Blob 数据参与者”角色分配的 Blob 容器的访问权限。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged

properties.errorBlobUri

string

指定将上传脚本错误流的 Azure 存储 Blob。 使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。 引用 errorBlobManagedIdentity 参数。

properties.outputBlobManagedIdentity

RunCommandManagedIdentity

用户分配的托管标识有权访问 outputBlobUri 存储 Blob。 在系统分配的标识的情况下使用空对象。 确保已向托管标识授予对具有“存储 Blob 数据参与者”角色分配的 Blob 容器的访问权限。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged

properties.outputBlobUri

string

指定将上传脚本输出流的 Azure 存储 Blob。 使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。 引用 outputBlobManagedIdentity 参数。

properties.parameters

RunCommandInputParameter[]

脚本使用的参数。

properties.protectedParameters

RunCommandInputParameter[]

脚本使用的参数。

properties.runAsPassword

string

在执行 run 命令时,指定 VM 上的用户帐户密码。

properties.runAsUser

string

在执行 run 命令时,指定 VM 上的用户帐户。

properties.source

VirtualMachineRunCommandScriptSource

运行命令脚本的源。

properties.timeoutInSeconds

integer

执行 run 命令的超时(以秒为单位)。

properties.treatFailureAsDeploymentFailure

boolean

自选。 如果设置为 true,脚本中的任何失败都将失败,并且 ProvisioningState 将标记为“失败”。 如果设置为 false,ProvisioningState 将仅反映运行命令是否由扩展平台运行,则不会指示脚本在脚本失败时是否失败。 如果脚本失败,请参阅 run 命令的实例视图,以查看 executionMessage、输出、错误:https://aka.ms/runcommandmanaged#get-execution-status-and-results

tags

object

资源标记

响应

名称 类型 说明
200 OK

VirtualMachineRunCommand

还行

Media Types: "application/json", "text/json"

201 Created

VirtualMachineRunCommand

创建

Media Types: "application/json", "text/json"

Other Status Codes

CloudError

描述操作失败的原因的错误响应。

Media Types: "application/json", "text/json"

安全性

azure_auth

Azure Active Directory OAuth2 Flow

类型: oauth2
流向: implicit
授权 URL: https://login.microsoftonline.com/common/oauth2/authorize

作用域

名称 说明
user_impersonation 模拟用户帐户

示例

Create or update a run command.

示例请求

PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/runCommands/myRunCommand?api-version=2024-07-01

{
  "location": "West US",
  "properties": {
    "source": {
      "scriptUri": "https://mystorageaccount.blob.core.windows.net/scriptcontainer/scriptURI"
    },
    "parameters": [
      {
        "name": "param1",
        "value": "value1"
      },
      {
        "name": "param2",
        "value": "value2"
      }
    ],
    "asyncExecution": false,
    "treatFailureAsDeploymentFailure": false,
    "runAsUser": "user1",
    "runAsPassword": "<runAsPassword>",
    "timeoutInSeconds": 3600,
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/scriptcontainer/scriptURI",
    "outputBlobManagedIdentity": {
      "clientId": "22d35efb-0c99-4041-8c5b-6d24db33a69a"
    }
  }
}

示例响应

{
  "name": "myRunCommand",
  "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/runCommands/myRunCommand",
  "type": "Microsoft.Compute/virtualMachines/runCommands",
  "location": "westus",
  "tags": {
    "tag1": "value1",
    "tag2": "value2"
  },
  "properties": {
    "source": {
      "scriptUri": "https://mystorageaccount.blob.core.windows.net/scriptcontainer/MyScript.ps1"
    },
    "parameters": [
      {
        "name": "param1",
        "value": "value1"
      },
      {
        "name": "param2",
        "value": "value2"
      }
    ],
    "asyncExecution": false,
    "treatFailureAsDeploymentFailure": false,
    "runAsUser": "user1",
    "timeoutInSeconds": 3600,
    "provisioningState": "Succeeded",
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
  }
}
{
  "name": "myRunCommand",
  "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/runCommands/myRunCommand",
  "type": "Microsoft.Compute/virtualMachines/runCommands",
  "location": "westus",
  "tags": {
    "tag1": "value1",
    "tag2": "value2"
  },
  "properties": {
    "source": {
      "scriptUri": "https://mystorageaccount.blob.core.windows.net/scriptcontainer/MyScript.ps1"
    },
    "parameters": [
      {
        "name": "param1",
        "value": "value1"
      },
      {
        "name": "param2",
        "value": "value2"
      }
    ],
    "asyncExecution": false,
    "treatFailureAsDeploymentFailure": false,
    "runAsUser": "user1",
    "timeoutInSeconds": 3600,
    "provisioningState": "Creating",
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
  }
}

定义

名称 说明
ApiError

Api 错误。

ApiErrorBase

Api 错误基数。

CloudError

来自计算服务的错误响应。

ExecutionState

脚本执行状态。

InnerError

内部错误详细信息。

InstanceViewStatus

实例视图状态。

RunCommandInputParameter

描述 run 命令参数的属性。

RunCommandManagedIdentity

包含用户分配的托管标识的 clientId 或 objectId(只使用一个,而不是两者),该标识有权访问 Run Command 中使用的存储 Blob。 对于系统分配的标识,请使用空的 RunCommandManagedIdentity 对象。 确保在 scriptUri 的情况下存在 Azure 存储 Blob,并且已向托管标识授予对具有 scriptUri blob 的“存储 Blob 数据读取者”角色分配的 Blob 容器的访问权限,并为追加 blob 分配“存储 Blob 数据参与者”(outputBlobUri,errorBlobUri)。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged

StatusLevelTypes

级别代码。

VirtualMachineRunCommand

描述虚拟机运行命令。

VirtualMachineRunCommandInstanceView

虚拟机运行命令的实例视图。

VirtualMachineRunCommandScriptSource

描述用于运行命令的脚本源。 仅使用脚本之一 scriptUri、commandId。

ApiError

Api 错误。

名称 类型 说明
code

string

错误代码。

details

ApiErrorBase[]

API 错误详细信息

innererror

InnerError

Api 内部错误

message

string

错误消息。

target

string

特定错误的目标。

ApiErrorBase

Api 错误基数。

名称 类型 说明
code

string

错误代码。

message

string

错误消息。

target

string

特定错误的目标。

CloudError

来自计算服务的错误响应。

名称 类型 说明
error

ApiError

Api 错误。

ExecutionState

脚本执行状态。

名称 类型 说明
Canceled

string

Failed

string

Pending

string

Running

string

Succeeded

string

TimedOut

string

Unknown

string

InnerError

内部错误详细信息。

名称 类型 说明
errordetail

string

内部错误消息或异常转储。

exceptiontype

string

异常类型。

InstanceViewStatus

实例视图状态。

名称 类型 说明
code

string

状态代码。

displayStatus

string

状态的简短可本地化标签。

level

StatusLevelTypes

级别代码。

message

string

详细状态消息,包括警报和错误消息。

time

string

状态的时间。

RunCommandInputParameter

描述 run 命令参数的属性。

名称 类型 说明
name

string

run 命令参数名称。

value

string

run 命令参数值。

RunCommandManagedIdentity

包含用户分配的托管标识的 clientId 或 objectId(只使用一个,而不是两者),该标识有权访问 Run Command 中使用的存储 Blob。 对于系统分配的标识,请使用空的 RunCommandManagedIdentity 对象。 确保在 scriptUri 的情况下存在 Azure 存储 Blob,并且已向托管标识授予对具有 scriptUri blob 的“存储 Blob 数据读取者”角色分配的 Blob 容器的访问权限,并为追加 blob 分配“存储 Blob 数据参与者”(outputBlobUri,errorBlobUri)。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged

名称 类型 说明
clientId

string

用户分配的托管标识的客户端 ID (GUID 值)。 如果未提供,则不应使用 ObjectId。

objectId

string

用户分配的托管标识的对象 ID (GUID 值)。 如果未提供,则不应使用 ClientId。

StatusLevelTypes

级别代码。

名称 类型 说明
Error

string

Info

string

Warning

string

VirtualMachineRunCommand

描述虚拟机运行命令。

名称 类型 默认值 说明
id

string

资源 ID

location

string

资源位置

name

string

资源名称

properties.asyncExecution

boolean

False

自选。 如果设置为 true,则脚本启动后,预配将立即完成,并且不会等待脚本完成。

properties.errorBlobManagedIdentity

RunCommandManagedIdentity

用户分配的托管标识有权访问 errorBlobUri 存储 Blob。 在系统分配的标识的情况下使用空对象。 确保已向托管标识授予对具有“存储 Blob 数据参与者”角色分配的 Blob 容器的访问权限。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged

properties.errorBlobUri

string

指定将上传脚本错误流的 Azure 存储 Blob。 使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。 引用 errorBlobManagedIdentity 参数。

properties.instanceView

VirtualMachineRunCommandInstanceView

虚拟机运行命令实例视图。

properties.outputBlobManagedIdentity

RunCommandManagedIdentity

用户分配的托管标识有权访问 outputBlobUri 存储 Blob。 在系统分配的标识的情况下使用空对象。 确保已向托管标识授予对具有“存储 Blob 数据参与者”角色分配的 Blob 容器的访问权限。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged

properties.outputBlobUri

string

指定将上传脚本输出流的 Azure 存储 Blob。 使用具有读取、追加、创建、写入访问权限的 SAS URI 或使用托管标识提供对 Blob 的 VM 访问权限。 引用 outputBlobManagedIdentity 参数。

properties.parameters

RunCommandInputParameter[]

脚本使用的参数。

properties.protectedParameters

RunCommandInputParameter[]

脚本使用的参数。

properties.provisioningState

string

预配状态,仅出现在响应中。 如果 treatFailureAsDeploymentFailure 设置为 true,脚本中的任何失败都将失败,并且 ProvisioningState 将标记为 Failed。 如果 treatFailureAsDeploymentFailure 设置为 false,ProvisioningState 将仅反映 run 命令是否由扩展平台运行,则不会指示脚本在脚本失败时是否失败。 如果脚本失败,请参阅 run 命令的实例视图,以查看 executionMessage、输出、错误:https://aka.ms/runcommandmanaged#get-execution-status-and-results

properties.runAsPassword

string

在执行 run 命令时,指定 VM 上的用户帐户密码。

properties.runAsUser

string

在执行 run 命令时,指定 VM 上的用户帐户。

properties.source

VirtualMachineRunCommandScriptSource

运行命令脚本的源。

properties.timeoutInSeconds

integer

执行 run 命令的超时(以秒为单位)。

properties.treatFailureAsDeploymentFailure

boolean

False

自选。 如果设置为 true,脚本中的任何失败都将失败,并且 ProvisioningState 将标记为“失败”。 如果设置为 false,ProvisioningState 将仅反映运行命令是否由扩展平台运行,则不会指示脚本在脚本失败时是否失败。 如果脚本失败,请参阅 run 命令的实例视图,以查看 executionMessage、输出、错误:https://aka.ms/runcommandmanaged#get-execution-status-and-results

tags

object

资源标记

type

string

资源类型

VirtualMachineRunCommandInstanceView

虚拟机运行命令的实例视图。

名称 类型 说明
endTime

string

脚本结束时间。

error

string

脚本错误流。

executionMessage

string

传达脚本配置错误或执行消息。

executionState

ExecutionState

脚本执行状态。

exitCode

integer

退出从脚本执行返回的代码。

output

string

脚本输出流。

startTime

string

脚本开始时间。

statuses

InstanceViewStatus[]

资源状态信息。

VirtualMachineRunCommandScriptSource

描述用于运行命令的脚本源。 仅使用脚本之一 scriptUri、commandId。

名称 类型 说明
commandId

string

指定预定义内置脚本的 commandId。

script

string

指定要在 VM 上执行的脚本内容。

scriptUri

string

指定脚本下载位置。 它可以是具有读取访问权限或公共 URI 的 Azure 存储 Blob 的 SAS URI。

scriptUriManagedIdentity

RunCommandManagedIdentity

对于 Azure 存储 Blob,用户分配的托管标识有权访问 scriptUri。 在系统分配的标识的情况下使用空对象。 确保 Azure 存储 Blob 存在,并且已向托管标识授予对具有“存储 Blob 数据读取者”角色分配的 Blob 容器的访问权限。 对于用户分配的标识,请确保将其添加到 VM 的标识下。 有关托管标识和运行命令的详细信息,请参阅 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged