2013-07-29 65 views
3

我试图以编程方式使用Python REST API封装器启动Azure虚拟机。我只需要一个简单的虚拟机,而不是部署的任何部分或类似的东西。我已经按照这里的例子:http://www.windowsazure.com/en-us/develop/python/how-to-guides/service-management/#CreateVMWindows Azure API:以编程方式创建虚拟机

我已经得到了代码运行,但我没有看到门户中的任何新的虚拟机;它所做的只是创建一个新的云服务,其中说“您没有任何部署到生产环境”。我究竟做错了什么?

回答

0

也许我不理解你的问题,但虚拟机本质上是一个云服务内的部署(把它想象成一个逻辑容器)。

+0

我试图让一个部署设置了一个虚拟机下运行它(使用Python API包装)。 –

3

您已经创建了hosted_service(云服务),但尚未在该服务中部署任何内容。你需要做一些事情,所以我会从你离开的地方coninue,其中name是虚拟机的名称:

# Where should the OS VHD be created: 
media_link = 'http://portalvhdsexample.blob.core.windows.net/vhds/%s.vhd' % name 

# Linux username/password details: 
linux_config = azure.servicemanagement.LinuxConfigurationSet(name, 'username', 'password', True) 

# Endpoint (port) configuration example, since documentation on this is lacking: 
endpoint_config = azure.servicemanagement.ConfigurationSet() 
endpoint_config.configuration_set_type = 'NetworkConfiguration' 
endpoint1 = azure.servicemanagement.ConfigurationSetInputEndpoint(name='HTTP', protocol='tcp', port='80', local_port='80', load_balanced_endpoint_set_name=None, enable_direct_server_return=False) 
endpoint2 = azure.servicemanagement.ConfigurationSetInputEndpoint(name='SSH', protocol='tcp', port='22', local_port='22', load_balanced_endpoint_set_name=None, enable_direct_server_return=False) 

endpoint_config.input_endpoints.input_endpoints.append(endpoint1) 
endpoint_config.input_endpoints.input_endpoints.append(endpoint2) 

# Set the OS HD up for the API: 
os_hd = azure.servicemanagement.OSVirtualHardDisk(image_name, media_link) 

# Actually create the machine and start it up: 
try: 
    sms.create_virtual_machine_deployment(service_name=name, deployment_name=name, 
              deployment_slot='production', label=name, role_name=name, 
              system_config=linux_config, network_config=endpoint_config, 
              os_virtual_hard_disk=os_hd, role_size='Small') 

except Exception as e: 
    logging.error('AZURE ERROR: %s' % str(e)) 
    return False 

return True