【產品功能】配置網卡今後與關機無緣,彈性網卡支持熱插拔功能

摘要: 本文主要介紹了彈性網卡的熱插撥功能改進,彈性網卡插拔對應的實例再也不要求必須爲 Stopped 狀態,如今只要求是穩定狀態( Running Stopped )便可。以及介紹了控制檯、OpenAPI如何對彈性網卡進行熱插拔操做。python

背景json

在雲計算飛速發展的今天,用戶ECS服務器身處的網絡環境愈來愈複雜,彈性網卡讓ECS服務器完美遊走在日益複雜的網絡環境中。可是之前服務器必須是Stopped狀態才能夠進行彈性網卡(ENI)的插拔,這樣可能會影響運行在服務器上的業務。如今很高興的向你們宣佈:彈性網卡從今天開始支持熱插撥,即ECS服務器只要處在穩定狀態(Running Stopped),就能夠對彈性網卡進行插拔操做。api

彈性網卡熱插拔:控制檯安全

控制檯操做彈性網卡的位置:進入控制檯 -> 雲服務器 ECS -> 彈性網卡。
建立彈性網卡:點擊建立彈性網卡按鈕,在彈窗中填寫網卡名稱,選擇專有網絡 交換機 安全組等信息後建立彈性網卡。
圖片描述
熱掛載彈性網卡:點擊彈性網卡對應的綁定實例按鈕,在彈窗中選擇要綁定實例。實例狀態只要求爲穩定狀態(Running Stopped)。
圖片描述
熱卸載彈性網卡:點擊彈性網卡對應的解綁實例按鈕,肯定便可解綁。實例狀態只要求爲穩定狀態(Running Stopped)。
圖片描述
彈性網卡熱插拔:OpenAPI
attach_eni detach_eni 分別能夠根據彈性網卡ID,實例ID,進行彈性網卡的熱插拔。相關API參考幫助文檔:掛載彈性網卡,卸載彈性網卡。服務器

#  coding=utf-8

# if the python sdk is not install using 'sudo pip install aliyun-python-sdk-ecs'
# if the python sdk is install using 'sudo pip install --upgrade aliyun-python-sdk-ecs'
# make sure the sdk version is 4.7.1, you can use command 'pip show aliyun-python-sdk-ecs' to check

import json
import logging

from aliyunsdkcore import client
from aliyunsdkecs.request.v20140526.CreateNetworkInterfaceRequest import CreateNetworkInterfaceRequest
from aliyunsdkecs.request.v20140526.AttachNetworkInterfaceRequest import AttachNetworkInterfaceRequest
from aliyunsdkecs.request.v20140526.DetachNetworkInterfaceRequest import DetachNetworkInterfaceRequest
from aliyunsdkecs.request.v20140526.DeleteNetworkInterfaceRequest import DeleteNetworkInterfaceRequest

# configuration the log output formatter, if you want to save the output to file,
# append ",filename='ecs_invoke.log'" after datefmt.

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S')


# send open api request
def _send_request(request):
    request.set_accept_format('json')
    try:
        response_str = clt.do_action(request)
        logging.info(response_str)
        response_detail = json.loads(response_str)
        return response_detail
    except Exception as e:
        logging.error(e)


# create eni
def create_eni(vSwitchId, securityGroupId, networkInterfaceName=None, primaryIpAddress=None, description=None,
               clientToken=None):
    request = CreateNetworkInterfaceRequest()
    request.set_VSwitchId(vSwitchId)
    request.set_SecurityGroupId(securityGroupId)
    if (networkInterfaceName != None):
        request.set_NetworkInterfaceName(networkInterfaceName)
    if (primaryIpAddress != None):
        request.set_PrimaryIpAddress(primaryIpAddress)
    if (description != None):
        request.set_Description(description)
    if (clientToken != None):
        request.set_ClientToken(clientToken)
    _send_request(request)


# attach eni to instance
def attach_eni(eniId, instanceId):
    request = AttachNetworkInterfaceRequest()
    request.set_NetworkInterfaceId(eniId)
    request.set_InstanceId(instanceId)
    _send_request(request)


# detach eni from instance
def detach_eni(eniId, instanceId):
    request = DetachNetworkInterfaceRequest()
    request.set_NetworkInterfaceId(eniId)
    request.set_InstanceId(instanceId)
    _send_request(request)


# delete eni
def delete_eni(eniId):
    request = DeleteNetworkInterfaceRequest()
    request.set_NetworkInterfaceId(eniId)
    _send_request(request)


if __name__ == '__main__':
    clt = client.AcsClient('Your Access Key Id', 'Your Access Key Secrect', 'cn-zhangjiakou')
    vSwitchId = "vsw-test"
    securityGroupId = "sg-test"
    # create_eni(vSwitchId=vSwitchId, securityGroupId=securityGroupId)

    attach_eniId = "eni-test"
    attach_instanceId = "i-test"
    # attach_eni(attach_eniId, attach_instanceId)

    detach_eniId = "eni-test"
    detach_instanceId = "i-test"
    # detach_eni(detach_eniId, detach_instanceId)

    delete_eniId = "eni-test"
    # delete_eni(delete_eniId)

小結網絡

如今的彈性網卡熱插拔只要求實例爲穩定狀態便可,改進了之前實例只能爲Stopped狀態才能插拔彈性網卡的現狀。提高了用戶體驗,如今服務器不用關機就能輕鬆配置彈性網卡,更加靈活實用。app

原文連接雲計算

相關文章
相關標籤/搜索