Azure Automation GA及常见的Runbook修改建议
翻译自:https://azure.microsoft.com/en-us/blog/using-azure-automation-in-azure-everywhere/
日前Azure Automation正式在中国的Azure上GA了,代表21世纪互联的用户可以使用与全球Azure接轨的自动化服务。相信各位用户也很好奇,究竟在中国Azure使用上有什么不同之处及需要注意的地方,这就是本篇文章要探讨的重点。
首先,全球Azure支持Azure Service Management (portal) 及Azure Resource Manager (portal)两种模式,而在中国Azure目前只有Azure Service Management这种模式,这使得截至目前为止,有部份功能如PowerShell script runbooks 及 Azure Automation DSC在中国Azure还不能使用。
另外需要注意的地方在于全球Azure及中国Azure在许多节点的路径(URIs)上不尽相同,如管理终结点,存储终结点等。因此当许多针对全球设计的Runbook需要迁移时(包含你在网上搜寻到的Runbook或是Automation Gallery上的Runbook),需要特别注意是否使用到这些路径,这也是在一般情况下常见的错误发生原因。
在本篇文章中,将特别强调其中的差异及修正的方法,让你的Runbook能够顺利在全球Azure及中国Azure中使用。
路径(URIs)有什么差异?
下表中将全球Azure及中国Azure相同的服务对应到不同的路径(URIs)进行比较.
Service |
全球Azure |
中国Azure |
Management API |
management.core.windows.net |
management.core.chinacloudapi.cn |
Storage |
core.windows.net |
core.chinacloudapi.cn |
Active Directory |
login.windows.net |
login.chinacloudapi.cn |
Resource Manager API |
management.azure.com |
management.chinacloudapi.cn |
Gallery |
gallery.azure.com |
gallery.chinacloudapi.cn |
如何对Azure Automation的Runbook进行修改以指向中国Azure
一般而言,在Azure Automation Runbook中如过需要连结到Azure的资源时,会使用Add-AzureAccount这项PowerShell命令向Azure进行验证及授权,以让PowerShell的操作阶段中,能够使用Azure的订阅。如果你同时拥有多个订阅,你可以使用Select-AzureSubscription这项PowerShell命令来选择你想操作的订阅。如果上述两项命令都成功了,就可以开始使用其他PowerShell命令来完成相关的工作。这个方法被称之为Azure Service Management,在全球Azure及中国Azure中都适用。
然而,当你从Automation Gallery或是其他来源如Script Center下载runbook时,绝大多数的runbook是针对全球Azure做设计的,在Add-AzureAccount命令中并未加上任何环境参数,这意味着该命令会直接指向全球Azure而非中国Azure。因此,当你直接运行这类命令时,将会执行失败。
为了让runbook顺利的正确运行,你需要定义环境参数。(Environment parameter)
针对中国Azure,这个环境变数即为“AzureChinaCloud”,你需要将此变数添加到Add-AzureAccount之后,如下范例:
Add-AzureAccount -Credential $AzureOrgIdCredential -Environment "AzureChinaCloud"
完整的范本请参考:
透过证书的方式进行验证
如果你不是使用Add-AzureAccount的命令而是使用证书的方式进行验证及授权,大致上的操作是类似的,你只需要在Set-AzureSubscription后面加入环境的变数就能将其指向中国的Azure。
总而言之,Azure Automation在中国已经GA了,绝大多数功能都能透过自动化的方式实现以减少许多操作的时间,你只需要少量的修改,就能让数以百计的runbook在中国Azure也能够使用。