Azure SDK C# - 计划虚拟机自动关机
Azure SDK C# - Plan Virtual Machine Auto Shutdown
我正在寻找有关如何从 Azure C# SDK 计划关闭 Azure 虚拟机的文档/示例。
我的想法是,在从 SDK 创建 VM 时,我想设置 VM 自动关闭的时间。我似乎无法在 API 中找到任何功能来以明显的方式做到这一点。
门户中虚拟机的自动关闭选项使用 Microsoft.DevTestLab 提供程序。这对微软来说有点 hack,将来可能会改变。
不幸的是,SDK 的 Microsoft.Azure.Management.DevTestLabs 命名空间仅包含为与真正的开发测试实验室交互而构建的方法,这意味着对管理 API 的所有调用都将“/labs/”附加到URI 因此使 API 请求无效;实际资源为:
https://management.azure.com/subscriptions/{Subsciption-Id}/resourceGroups/{Resource-Group}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{VM-Name}?api-version=2018-09-15
(注意 URI 不包含“/labs/”)
可以使用ARM进行部署,可以deployed/updated使用正确的URI调用管理API
这是一个例子:
PUT https://management.azure.com/subscriptions/{SUBSCRIPTION-ID}/resourceGroups/{RESOURCE-GROUP-NAME}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{VMNAME}?api-version=2018-09-15 HTTP/1.1
User-Agent: Fiddler
Authorization: Bearer {BEARER-TOKEN-HERE}
Host: management.azure.com
Content-Type: application/json
Content-Length: 1048
{
"id": "/subscriptions/{SUBSCRIPTION-ID}/resourcegroups/{RESOURCE-GROUP-NAME}/providers/microsoft.devtestlab/schedules/shutdown-computevm-{VMNAME}",
"identity": null,
"kind": null,
"location": "{VM-LOCATION}",
"managedBy": null,
"name": "shutdown-computevm-{VM-NAME}",
"plan": null,
"properties": {
"createdDate": "2019-10-29T19:45:57.0033318+00:00",
"dailyRecurrence": {
"time": "{4-DIGIT-24HOUR-TIME-HHmm}"
},
"notificationSettings": {
"notificationLocale": "en",
"status": "Disabled",
"timeInMinutes": 30
},
"provisioningState": "Succeeded",
"status": "Enabled",
"targetResourceId": "/subscriptions/{SUBSCIPTION-ID}/resourceGroups/{RESOURCE-GROUP}/providers/Microsoft.Compute/virtualMachines/{VMNAME}",
"taskType": "ComputeVmShutdownTask",
"timeZoneId": "GMT Standard Time",
"uniqueIdentifier": "7c394xxx-3fdd-4xxa-8cdc-7c7e6xxxxxxc"
},
"resourceGroup": "{RESOURCE-GROUP-NAME}",
"sku": null,
"tags": null,
"type": "microsoft.devtestlab/schedules"
}
您可以使用此 JSON,替换用大括号括起来的值,并根据需要创建或更新资源。如果资源已经存在,它将被覆盖。
我正在寻找有关如何从 Azure C# SDK 计划关闭 Azure 虚拟机的文档/示例。
我的想法是,在从 SDK 创建 VM 时,我想设置 VM 自动关闭的时间。我似乎无法在 API 中找到任何功能来以明显的方式做到这一点。
门户中虚拟机的自动关闭选项使用 Microsoft.DevTestLab 提供程序。这对微软来说有点 hack,将来可能会改变。
不幸的是,SDK 的 Microsoft.Azure.Management.DevTestLabs 命名空间仅包含为与真正的开发测试实验室交互而构建的方法,这意味着对管理 API 的所有调用都将“/labs/”附加到URI 因此使 API 请求无效;实际资源为:
https://management.azure.com/subscriptions/{Subsciption-Id}/resourceGroups/{Resource-Group}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{VM-Name}?api-version=2018-09-15
(注意 URI 不包含“/labs/”)
可以使用ARM进行部署,可以deployed/updated使用正确的URI调用管理API
这是一个例子:
PUT https://management.azure.com/subscriptions/{SUBSCRIPTION-ID}/resourceGroups/{RESOURCE-GROUP-NAME}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{VMNAME}?api-version=2018-09-15 HTTP/1.1
User-Agent: Fiddler
Authorization: Bearer {BEARER-TOKEN-HERE}
Host: management.azure.com
Content-Type: application/json
Content-Length: 1048
{
"id": "/subscriptions/{SUBSCRIPTION-ID}/resourcegroups/{RESOURCE-GROUP-NAME}/providers/microsoft.devtestlab/schedules/shutdown-computevm-{VMNAME}",
"identity": null,
"kind": null,
"location": "{VM-LOCATION}",
"managedBy": null,
"name": "shutdown-computevm-{VM-NAME}",
"plan": null,
"properties": {
"createdDate": "2019-10-29T19:45:57.0033318+00:00",
"dailyRecurrence": {
"time": "{4-DIGIT-24HOUR-TIME-HHmm}"
},
"notificationSettings": {
"notificationLocale": "en",
"status": "Disabled",
"timeInMinutes": 30
},
"provisioningState": "Succeeded",
"status": "Enabled",
"targetResourceId": "/subscriptions/{SUBSCIPTION-ID}/resourceGroups/{RESOURCE-GROUP}/providers/Microsoft.Compute/virtualMachines/{VMNAME}",
"taskType": "ComputeVmShutdownTask",
"timeZoneId": "GMT Standard Time",
"uniqueIdentifier": "7c394xxx-3fdd-4xxa-8cdc-7c7e6xxxxxxc"
},
"resourceGroup": "{RESOURCE-GROUP-NAME}",
"sku": null,
"tags": null,
"type": "microsoft.devtestlab/schedules"
}
您可以使用此 JSON,替换用大括号括起来的值,并根据需要创建或更新资源。如果资源已经存在,它将被覆盖。