30 lines
1019 B
Python
30 lines
1019 B
Python
from azure.identity import DefaultAzureCredential
|
|
from azure.mgmt.compute import ComputeManagementClient
|
|
from pprint import pprint
|
|
|
|
import azure.mgmt.compute as compute
|
|
import uuid
|
|
import requests
|
|
import json
|
|
|
|
#subscription_id = instance_metadata['compute']['subscription_id']
|
|
|
|
|
|
def delete_self_instance():
|
|
instance_metadata = requests.get("http://169.254.169.254/metadata/instance?api-version=2025-04-07&format=json", headers={"Metadata":"True"}).json()
|
|
instance_resource_id = instance_metadata['compute']['resourceId']
|
|
parts = instance_resource_id.split('/')
|
|
subscription_id = parts[2]
|
|
resource_group = parts[4]
|
|
vm_name = parts[8]
|
|
if vm_name == "ado2-crawler-dev":
|
|
print("This is dev, don't die")
|
|
return False
|
|
|
|
credential = DefaultAzureCredential()
|
|
compute_client = ComputeManagementClient(credential, subscription_id)
|
|
compute_client.virtual_machines.begin_delete(resource_group, vm_name)
|
|
print("Kill this instance")
|
|
return True
|
|
|
|
delete_self_instance() |