다음을 통해 공유


Virtual Machine Run Commands - Create Or Update

실행 명령을 만들거나 업데이트하는 작업입니다.

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

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
resourceGroupName
path True

string

minLength: 1
maxLength: 90

리소스 그룹의 이름입니다. 이름은 대소문자를 구분하지 않습니다.

runCommandName
path True

string

VirtualMachineRunCommand의 이름입니다

subscriptionId
path True

string

minLength: 1

대상 구독의 ID입니다.

vmName
path True

string

VirtualMachine의 이름입니다

api-version
query True

string

minLength: 1

이 작업에 사용할 API 버전입니다.

요청 본문

Name 필수 형식 Description
location True

string

리소스가 있는 지리적 위치

properties.asyncExecution

boolean

선택 사항입니다. true로 설정하면 스크립트가 시작되는 즉시 프로비전이 완료되고 스크립트가 완료될 때까지 기다리지 않습니다.

properties.errorBlobManagedIdentity

RunCommandManagedIdentity

errorBlobUri 스토리지 Blob에 대한 액세스 권한이 있는 사용자 할당 관리 ID입니다. 시스템 할당 ID의 경우 빈 개체를 사용합니다. 관리 ID에 'Storage Blob 데이터 기여자' 역할 할당을 사용하여 Blob의 컨테이너에 대한 액세스 권한이 부여되었는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentity 참조하고 https://aka.ms/RunCommandManaged

properties.errorBlobUri

string

스크립트 오류 스트림이 업로드될 Azure Storage Blob을 지정합니다. 읽기, 추가, 만들기, 쓰기 액세스가 있는 SAS URI를 사용하거나 관리 ID를 사용하여 Blob에 대한 VM 액세스를 제공합니다. errorBlobManagedIdentity 매개 변수를 참조하세요.

properties.outputBlobManagedIdentity

RunCommandManagedIdentity

outputBlobUri 스토리지 Blob에 대한 액세스 권한이 있는 사용자 할당 관리 ID입니다. 시스템 할당 ID의 경우 빈 개체를 사용합니다. 관리 ID에 'Storage Blob 데이터 기여자' 역할 할당을 사용하여 Blob의 컨테이너에 대한 액세스 권한이 부여되었는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentity 참조하고 https://aka.ms/RunCommandManaged

properties.outputBlobUri

string

스크립트 출력 스트림이 업로드될 Azure Storage Blob을 지정합니다. 읽기, 추가, 만들기, 쓰기 액세스가 있는 SAS URI를 사용하거나 관리 ID를 사용하여 Blob에 대한 VM 액세스를 제공합니다. outputBlobManagedIdentity 매개 변수를 참조하세요.

properties.parameters

RunCommandInputParameter[]

스크립트에서 사용하는 매개 변수입니다.

properties.protectedParameters

RunCommandInputParameter[]

스크립트에서 사용하는 매개 변수입니다.

properties.runAsPassword

string

실행 명령을 실행할 때 VM에서 사용자 계정 암호를 지정합니다.

properties.runAsUser

string

실행 명령을 실행할 때 VM의 사용자 계정을 지정합니다.

properties.source

VirtualMachineRunCommandScriptSource

실행 명령 스크립트의 소스입니다.

properties.timeoutInSeconds

integer (int32)

실행 명령을 실행할 시간 제한(초)입니다.

properties.treatFailureAsDeploymentFailure

boolean

선택 사항입니다. true로 설정하면 스크립트에서 오류가 발생하면 배포가 실패하고 ProvisioningState가 실패로 표시됩니다. false로 설정하면 ProvisioningState는 실행 명령이 확장 플랫폼에서 실행되었는지 여부만 반영하며 스크립트 실패 시 스크립트가 실패했는지 여부를 나타내지 않습니다. 스크립트 실패 시 실행 명령의 인스턴스 보기를 참조하여 executionMessage, 출력, 오류를 확인합니다. https://aka.ms/runcommandmanaged#get-execution-status-and-results

tags

object

리소스 태그.

응답

Name 형식 Description
200 OK

VirtualMachineRunCommand

리소스 'VirtualMachineRunCommand' 업데이트 작업이 성공했습니다.

201 Created

VirtualMachineRunCommand

리소스 'VirtualMachineRunCommand' 생성 작업이 성공했습니다.

헤더

  • Location: string
  • Retry-After: integer
Other Status Codes

CloudError

예기치 않은 오류 응답입니다.

보안

azure_auth

Azure Active Directory OAuth2 흐름.

형식: oauth2
Flow: implicit
권한 부여 URL: https://login.microsoftonline.com/common/oauth2/authorize

범위

Name Description
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-11-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"
  }
}

정의

Name Description
ApiError

API 오류입니다.

ApiErrorBase

API 오류 기준입니다.

CloudError

Compute 서비스의 오류 응답입니다.

createdByType

리소스를 만든 ID의 형식입니다.

ExecutionState

스크립트 실행 상태입니다.

InnerError

내부 오류 세부 정보입니다.

InstanceViewStatus

인스턴스 보기 상태입니다.

RunCommandInputParameter

실행 명령 매개 변수의 속성을 설명합니다.

RunCommandManagedIdentity

실행 명령에서 사용되는 스토리지 Blob에 대한 액세스 권한이 있는 사용자 할당 관리 ID의 clientId 또는 objectId(둘 다만 사용)를 포함합니다. 시스템 할당 ID의 경우 빈 RunCommandManagedIdentity 개체를 사용합니다. scriptUri의 경우 Azure Storage Blob이 있는지 확인하고, 관리 ID가 scriptUri Blob을 사용하여 'Storage Blob 데이터 판독기' 역할 할당 및 Append Blob(outputBlobUri, errorBlobUri)에 대한 'Storage Blob 데이터 기여자'를 사용하여 Blob의 컨테이너에 대한 액세스 권한을 부여했는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged참조하세요.

StatusLevelTypes

수준 코드입니다.

systemData

리소스의 생성 및 마지막 수정과 관련된 메타데이터입니다.

VirtualMachineRunCommand

Virtual Machine 실행 명령을 설명합니다.

VirtualMachineRunCommandInstanceView

가상 머신 실행 명령의 인스턴스 뷰입니다.

VirtualMachineRunCommandScriptSource

실행 명령에 대한 스크립트 원본에 대해 설명합니다. 스크립트, scriptUri, commandId 중 하나만 사용합니다.

ApiError

API 오류입니다.

Name 형식 Description
code

string

오류 코드입니다.

details

ApiErrorBase[]

API 오류 세부 정보

innererror

InnerError

API 내부 오류

message

string

오류 메시지입니다.

target

string

특정 오류의 대상입니다.

ApiErrorBase

API 오류 기준입니다.

Name 형식 Description
code

string

오류 코드입니다.

message

string

오류 메시지입니다.

target

string

특정 오류의 대상입니다.

CloudError

Compute 서비스의 오류 응답입니다.

Name 형식 Description
error

ApiError

API 오류입니다.

createdByType

리소스를 만든 ID의 형식입니다.

Description
User
Application
ManagedIdentity
Key

ExecutionState

스크립트 실행 상태입니다.

Description
Unknown
Pending
Running
Failed
Succeeded
TimedOut
Canceled

InnerError

내부 오류 세부 정보입니다.

Name 형식 Description
errordetail

string

내부 오류 메시지 또는 예외 덤프입니다.

exceptiontype

string

예외 형식입니다.

InstanceViewStatus

인스턴스 보기 상태입니다.

Name 형식 Description
code

string

상태 코드입니다.

displayStatus

string

상태에 대한 짧은 지역화 가능 레이블입니다.

level

StatusLevelTypes

수준 코드입니다.

message

string

경고 및 오류 메시지를 포함한 자세한 상태 메시지입니다.

time

string (date-time)

상태의 시간입니다.

RunCommandInputParameter

실행 명령 매개 변수의 속성을 설명합니다.

Name 형식 Description
name

string

실행 명령 매개 변수 이름입니다.

value

string

실행 명령 매개 변수 값입니다.

RunCommandManagedIdentity

실행 명령에서 사용되는 스토리지 Blob에 대한 액세스 권한이 있는 사용자 할당 관리 ID의 clientId 또는 objectId(둘 다만 사용)를 포함합니다. 시스템 할당 ID의 경우 빈 RunCommandManagedIdentity 개체를 사용합니다. scriptUri의 경우 Azure Storage Blob이 있는지 확인하고, 관리 ID가 scriptUri Blob을 사용하여 'Storage Blob 데이터 판독기' 역할 할당 및 Append Blob(outputBlobUri, errorBlobUri)에 대한 'Storage Blob 데이터 기여자'를 사용하여 Blob의 컨테이너에 대한 액세스 권한을 부여했는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged참조하세요.

Name 형식 Description
clientId

string

사용자가 할당한 관리 ID의 클라이언트 ID(GUID 값)입니다. ObjectId가 제공되면 사용하지 않아야 합니다.

objectId

string

사용자가 할당한 관리 ID의 개체 ID(GUID 값)입니다. 제공된 경우 ClientId를 사용하면 안 됩니다.

StatusLevelTypes

수준 코드입니다.

Description
Info
Warning
Error

systemData

리소스의 생성 및 마지막 수정과 관련된 메타데이터입니다.

Name 형식 Description
createdAt

string (date-time)

리소스 만들기의 타임스탬프(UTC)입니다.

createdBy

string

리소스를 만든 ID입니다.

createdByType

createdByType

리소스를 만든 ID의 형식입니다.

lastModifiedAt

string (date-time)

리소스 마지막 수정의 타임스탬프(UTC)

lastModifiedBy

string

리소스를 마지막으로 수정한 ID입니다.

lastModifiedByType

createdByType

리소스를 마지막으로 수정한 ID의 형식입니다.

VirtualMachineRunCommand

Virtual Machine 실행 명령을 설명합니다.

Name 형식 Description
id

string

리소스에 대한 정규화된 리소스 ID입니다. 예 - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

location

string

리소스가 있는 지리적 위치

name

string

리소스의 이름

properties.asyncExecution

boolean

선택 사항입니다. true로 설정하면 스크립트가 시작되는 즉시 프로비전이 완료되고 스크립트가 완료될 때까지 기다리지 않습니다.

properties.errorBlobManagedIdentity

RunCommandManagedIdentity

errorBlobUri 스토리지 Blob에 대한 액세스 권한이 있는 사용자 할당 관리 ID입니다. 시스템 할당 ID의 경우 빈 개체를 사용합니다. 관리 ID에 'Storage Blob 데이터 기여자' 역할 할당을 사용하여 Blob의 컨테이너에 대한 액세스 권한이 부여되었는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentity 참조하고 https://aka.ms/RunCommandManaged

properties.errorBlobUri

string

스크립트 오류 스트림이 업로드될 Azure Storage Blob을 지정합니다. 읽기, 추가, 만들기, 쓰기 액세스가 있는 SAS URI를 사용하거나 관리 ID를 사용하여 Blob에 대한 VM 액세스를 제공합니다. errorBlobManagedIdentity 매개 변수를 참조하세요.

properties.instanceView

VirtualMachineRunCommandInstanceView

가상 머신 실행 명령 인스턴스 보기입니다.

properties.outputBlobManagedIdentity

RunCommandManagedIdentity

outputBlobUri 스토리지 Blob에 대한 액세스 권한이 있는 사용자 할당 관리 ID입니다. 시스템 할당 ID의 경우 빈 개체를 사용합니다. 관리 ID에 'Storage Blob 데이터 기여자' 역할 할당을 사용하여 Blob의 컨테이너에 대한 액세스 권한이 부여되었는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentity 참조하고 https://aka.ms/RunCommandManaged

properties.outputBlobUri

string

스크립트 출력 스트림이 업로드될 Azure Storage Blob을 지정합니다. 읽기, 추가, 만들기, 쓰기 액세스가 있는 SAS URI를 사용하거나 관리 ID를 사용하여 Blob에 대한 VM 액세스를 제공합니다. outputBlobManagedIdentity 매개 변수를 참조하세요.

properties.parameters

RunCommandInputParameter[]

스크립트에서 사용하는 매개 변수입니다.

properties.protectedParameters

RunCommandInputParameter[]

스크립트에서 사용하는 매개 변수입니다.

properties.provisioningState

string

응답에만 표시되는 프로비전 상태입니다. treatFailureAsDeploymentFailure가 true로 설정된 경우 스크립트의 모든 오류는 배포에 실패하고 ProvisioningState는 실패로 표시됩니다. treatFailureAsDeploymentFailure가 false로 설정된 경우 ProvisioningState는 실행 명령이 확장 플랫폼에서 실행되었는지 여부만 반영하며 스크립트 실패 시 스크립트가 실패했는지 여부를 나타내지 않습니다. 스크립트 실패 시 실행 명령의 인스턴스 보기를 참조하여 executionMessage, 출력, 오류를 확인합니다. https://aka.ms/runcommandmanaged#get-execution-status-and-results

properties.runAsPassword

string

실행 명령을 실행할 때 VM에서 사용자 계정 암호를 지정합니다.

properties.runAsUser

string

실행 명령을 실행할 때 VM의 사용자 계정을 지정합니다.

properties.source

VirtualMachineRunCommandScriptSource

실행 명령 스크립트의 소스입니다.

properties.timeoutInSeconds

integer (int32)

실행 명령을 실행할 시간 제한(초)입니다.

properties.treatFailureAsDeploymentFailure

boolean

선택 사항입니다. true로 설정하면 스크립트에서 오류가 발생하면 배포가 실패하고 ProvisioningState가 실패로 표시됩니다. false로 설정하면 ProvisioningState는 실행 명령이 확장 플랫폼에서 실행되었는지 여부만 반영하며 스크립트 실패 시 스크립트가 실패했는지 여부를 나타내지 않습니다. 스크립트 실패 시 실행 명령의 인스턴스 보기를 참조하여 executionMessage, 출력, 오류를 확인합니다. https://aka.ms/runcommandmanaged#get-execution-status-and-results

systemData

systemData

createdBy 및 modifiedBy 정보가 포함된 Azure Resource Manager 메타데이터입니다.

tags

object

리소스 태그.

type

string

리소스의 형식입니다. 예: "Microsoft.Compute/virtualMachines" 또는 "Microsoft.Storage/storageAccounts"

VirtualMachineRunCommandInstanceView

가상 머신 실행 명령의 인스턴스 뷰입니다.

Name 형식 Description
endTime

string (date-time)

스크립트 종료 시간입니다.

error

string

스크립트 오류 스트림입니다.

executionMessage

string

스크립트 구성 오류 또는 실행 메시지를 전달합니다.

executionState

ExecutionState

스크립트 실행 상태입니다.

exitCode

integer (int32)

스크립트 실행에서 반환된 종료 코드입니다.

output

string

출력 스트림을 스크립터합니다.

startTime

string (date-time)

스크립트 시작 시간입니다.

statuses

InstanceViewStatus[]

리소스 상태 정보입니다.

VirtualMachineRunCommandScriptSource

실행 명령에 대한 스크립트 원본에 대해 설명합니다. 스크립트, scriptUri, commandId 중 하나만 사용합니다.

Name 형식 Description
commandId

string

미리 정의된 기본 제공 스크립트의 commandId를 지정합니다.

script

string

VM에서 실행할 스크립트 콘텐츠를 지정합니다.

scriptUri

string

스크립트 다운로드 위치를 지정합니다. 읽기 액세스 권한이 있는 Azure Storage Blob의 SAS URI 또는 공용 URI일 수 있습니다.

scriptUriManagedIdentity

RunCommandManagedIdentity

Azure Storage Blob의 경우 scriptUri에 액세스할 수 있는 사용자 할당 관리 ID입니다. 시스템 할당 ID의 경우 빈 개체를 사용합니다. Azure Storage Blob이 있는지 확인하고 관리 ID에 'Storage Blob 데이터 판독기' 역할 할당을 사용하여 Blob의 컨테이너에 대한 액세스 권한이 부여되었는지 확인합니다. 사용자 할당 ID의 경우 VM의 ID 아래에 추가해야 합니다. 관리 ID 및 실행 명령에 대한 자세한 내용은 https://aka.ms/ManagedIdentityhttps://aka.ms/RunCommandManaged참조하세요.