彭俊,资深工程师,微软云计算架构师

目前最简单最直观的在azure 中国上跑起来的方法就是直接 pip 安装。

pip install azure==2.0.0rc6

其他的基本按照python sdk的官方doc演示做就行,参考一下example和源代码。

 核心也是之前提到的restful api,通过模拟http call来完成操作。

 今天来演示一个有趣的小程序(基于python 3.6)。

 大致流程:

客户/管理员通过console或者微信或者email来指示Azure平台来开机、重启、关闭虚拟机。在完成之后,通过短消息通知管理者和使用者。再通过微信、短信给制定运维群的人员提醒。运维人员可以同时制定查看一个时期的audit/operation log,来排除是否是合理的操作。

全程通过python演示,我们简单过一下代码并在最后看看效果。

 subscription_id='f2a19165**'

credentials=ServicePrincipalCredentials(client_id='***',

secret='****',

tenant='****',china='True')

resource_client=ResourceManagementClient(credentials,subscription_id,base_url='https://management.chinacloudapi.cn')

compute_client=ComputeManagementClient(credentials,subscription_id,base_url='https://management.chinacloudapi.cn')

client=MonitorClient(

credentials,

subscription_id,

base_url='https://management.chinacloudapi.cn'

)

rsource_group_name="MoonCakeIaaSDemo"

vm_name="DC"

这里的base_url一定记得要选中国。这里起几个monitor/computeclient来处理request

为了完成邮件和微信提醒功能,我们先编写短信通知和微信通知、监控模块。

邮件通知可以用smtp lib来完成,这里选择139服务,可以直接提供短消息通知。

微信通知监控使用itchat,发送代码如图:

完成后调用SDK并针对response给客户通知。

效果如图:

最后通过activity monitoring 程序获取发生的operation:

测试到此为止,一个简单的运维提醒查看工具就好了。

接下来,我们可以通过itchatreply包增加语义分析和azure操作关联:

也可以发挥想象,比如使用微信作为监控指令的host或者webhook,通过语义分析等办法增加管理和监控选项。抛砖引玉, 我稍后会把源代码放到我的github repo里,供大家测试。