Я хочу автоматизировать azure ресурсы (ex-start / stop VM). В настоящее время я использую Runbook Automation Account, и он работает нормально, но мне нужно реализовать что-то вроде фреймворка l ie this:
1) Запускает runbook всякий раз, когда помещает новый объект (лист Excel) в azure корзину. 2) Прочитайте таблицу Excel для входных переменных
Ниже приведен код Runbook
Кто-нибудь, пожалуйста, скажите мне, как лучше всего запустить Runbook, который подходит для вышеуказанной структуры
"" "Azure Документация по автоматизации: https://aka.ms/azure-automation-python-documentation Azure Python Документация SDK: https://aka.ms/azure-python-sdk "" "import os import sys from azure .mgmt.compute import ComputeManagementClient import azure .mgmt.resource для автоматизации импорта importassets
def get_automation_runas_credential (runas_connection): из OpenSSL импорт крипто-импорт binascii из msrest azure import azure_active_directory импорт adal
# Get the Azure Automation RunAs service principal certificate
cert = automationassets.get_automation_certificate("AzureRunAsCertificate")
pks12_cert = crypto.load_pkcs12(cert)
pem_pkey = crypto.dump_privatekey(crypto.FILETYPE_PEM,pks12_cert.get_privatekey())
# Get run as connection information for the Azure Automation service principal
application_id = runas_connection["ApplicationId"]
thumbprint = runas_connection["CertificateThumbprint"]
tenant_id = runas_connection["TenantId"]
# Authenticate with service principal certificate
resource ="https://management.core.windows.net/"
authority_url = ("https://login.microsoftonline.com/"+tenant_id)
context = adal.AuthenticationContext(authority_url)
return azure_active_directory.AdalAuthentication(
lambda: context.acquire_token_with_client_certificate(
resource,
application_id,
pem_pkey,
thumbprint)
)
аутентифицировать для с использованием Azure субъекта службы автоматизации Automation
runas_connection = AutomationSsets.get_automation_connection ("AzureRunAsConnection") azure_credential = get_automation_runas_credential (runas_connection)
Инициализируйте клиентское приложение Run и задайте управление подпиской с вычислением подписи работать против.
* 102 5 * compute_client = ComputeManagementClient (azure_credential, str (runas_connection ["SubscriptionId"]))
print ('\ nStart VM') async_vm_start = compute_client.virtual_machines.start (
) 1029 * *1028* 'vm1') async_vm_start.wait () '' 'print (' \ nStop VM ') async_vm_stop = compute_client.virtual_machines.power_off (resource_group_name, vm_name) async_vm_stop.wait ()' '' * '1030 *