亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

ECS開放批量創(chuàng)建實(shí)例接口RunInstances

supernavy / 1732人閱讀

摘要:摘要為了更方便的實(shí)現(xiàn)彈性的資源創(chuàng)建,方便您一次運(yùn)行多臺按量實(shí)例來完成應(yīng)用的開發(fā)和部署,我們開放了的批量創(chuàng)建實(shí)例接口。直到實(shí)例狀態(tài)變成結(jié)束創(chuàng)建流程。自動釋放時間按照標(biāo)準(zhǔn)表示,并需要使用時間。

摘要: 為了更方便的實(shí)現(xiàn)彈性的資源創(chuàng)建,方便您一次運(yùn)行多臺ECS按量實(shí)例來完成應(yīng)用的開發(fā)和部署,我們開放了ECS的批量創(chuàng)建實(shí)例接口RunInstances。和目前的CreateInstance相比,RunInstances有下面的優(yōu)點(diǎn): 批量提交一定的ECS實(shí)例數(shù)目,如果庫存不足,則直接失敗,避免您創(chuàng)建的實(shí)例數(shù)目不能滿足需求而額外產(chǎn)生費(fèi)用。

為了更方便的實(shí)現(xiàn)彈性的資源創(chuàng)建,方便您一次運(yùn)行多臺ECS按量實(shí)例來完成應(yīng)用的開發(fā)和部署,我們開放了ECS的批量創(chuàng)建實(shí)例接口RunInstances。和目前的CreateInstance相比,RunInstances有下面的優(yōu)點(diǎn):

單次可以最多創(chuàng)建100臺實(shí)例,避免重復(fù)調(diào)用。
批量提交一定的ECS實(shí)例數(shù)目,如果庫存不足,則直接失敗,避免您創(chuàng)建的實(shí)例數(shù)目不能滿足需求而額外產(chǎn)生費(fèi)用。
實(shí)例創(chuàng)建之后,會自動的開始Start,實(shí)例會變成Starting狀態(tài),直至Running,不需要您調(diào)用Start的操作。
創(chuàng)建實(shí)例的時候指定了InternetMaxBandwidthOut,則自動為您分配公網(wǎng)IP,不需要您再調(diào)用分配IP的操作。
您可以在創(chuàng)建的時候指定自動釋放時間,自動釋放,不需要您再額外設(shè)置自動釋放時間。
您也可以一次創(chuàng)建100臺的SpotInstance,充分滿足您的彈性需求。
創(chuàng)建的參數(shù)保持和CreateInstance保持兼容,提供了Amount來設(shè)定創(chuàng)建的個數(shù),提供了AutoReleaseTime來設(shè)定自動釋放時間。
創(chuàng)建返回一個InstanceIdSets會記錄相關(guān)的InstanceIds,您只需要根據(jù)實(shí)例ID輪詢實(shí)例狀態(tài)即可。
下文以Python為示例,其他的版本SDK都需要大于4.4.3即可。

安裝ECS Python SDK
首先確保您已經(jīng)具備Python的Runtime,本文中使用的Python版本為2.7+。

pip install aliyun-python-sdk-ecs

如果提示您沒有權(quán)限,請切換sudo 繼續(xù)執(zhí)行。

sudo pip install aliyun-python-sdk-ecs

本文使用的sdk版本為4.4.3, 如果您使用是舊版本的sdk,需要你更新下。

批量創(chuàng)建實(shí)例
首先創(chuàng)建RunInstancesRequest的實(shí)例,然后填入相關(guān)需要的參數(shù)即可。

下面的例子創(chuàng)建了2臺實(shí)例,并且添加了自動每隔10秒鐘檢查一次實(shí)例的運(yùn)行狀態(tài)。直到實(shí)例狀態(tài)變成Running結(jié)束創(chuàng)建流程。

# your access key Id
ak_id = "YOU_ACCESS_KEY_ID"
# your access key secret
ak_secret = "YOU_ACCESS_SECRET"
region_id = "cn-beijing"

# your expected instance type
instance_type = "ecs.n4.small"
# 選擇的vswitchId
vswitch_id = "vws-xxxxx"
# 使用的鏡像信息
image_id = "centos_7_03_64_20G_alibase_20170818.vhd"
# 當(dāng)前vpc類型的安全組
security_group_id = "sg-xxxxx"

# instance number to lunch, support 1-100, default value is 100
amount = 2;

# instance auto delete time 按照 ISO8601 標(biāo)準(zhǔn)表示,并需要使用 UTC 時間。格式為 yyyy-MM-ddTHH:mm:ssZ 。 最短在當(dāng)前時間之后半小時。最長不能超過當(dāng)前時間起三年
auto_release_time = "2017-12-05T22:40:00Z"

clt = client.AcsClient(ak_id, ak_secret, "cn-beijing")


# create instance automatic running
def batch_create_instance():
    request = build_request()
    request.set_Amount(amount)
    _execute_request(request)


def _execute_request(request):
    response = _send_request(request)
    if response.get("Code") is None:
        instance_ids = response.get("InstanceIdSets").get("InstanceIdSet")
        running_amount = 0
        while running_amount < amount:
            time.sleep(10)
            running_amount = check_instance_running(instance_ids)
    print("ecs instance %s is running", instance_ids)


def check_instance_running(instance_ids):
    request = DescribeInstancesRequest()
    request.set_InstanceIds(json.dumps(instance_ids))
    response = _send_request(request)
    if response.get("Code") is None:
        instances_list = response.get("Instances").get("Instance")
        running_count = 0
        for instance_detail in instances_list:
            if instance_detail.get("Status") == "Running":
                running_count += 1
        return running_count


def build_request():
    request = RunInstancesRequest()
    request.set_ImageId(image_id)
    request.set_VSwitchId(vswitch_id)
    request.set_SecurityGroupId(security_group_id)
    request.set_InstanceName("Instance12-04")
    request.set_InstanceType(instance_type)
    return request


# 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)

批量創(chuàng)建實(shí)例并自動分配公網(wǎng)IP
相比上面的代碼,我們只需要添加一行屬性,指定公網(wǎng)的帶寬即可。下面的例子中我們默認(rèn)給實(shí)例都分配了1M的按流量帶寬。

# create instance with public ip.
def batch_create_instance_with_public_ip():
    request = build_request()
    request.set_Amount(amount)
    request.set_InternetMaxBandwidthOut(1)
    _execute_request(request)

批量創(chuàng)建實(shí)例并自動設(shè)置自動釋放時間
相比上面的代碼,我們只需要添加一行屬性,實(shí)例的自動釋放時間即可。 自動釋放時間按照 ISO8601 標(biāo)準(zhǔn)表示,并需要使用 UTC 時間。格式為 yyyy-MM-ddTHH:mm:ssZ 。 最短在當(dāng)前時間之后半小時。最長不能超過當(dāng)前時間起三年。

# create instance with auto release time.
def batch_create_instance_with_auto_release_time():
    request = build_request()
    request.set_Amount(amount)
    request.set_AutoReleaseTime(auto_release_time)
    _execute_request(request)

完整代碼如下

#  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.4.3, you can use command "pip show aliyun-python-sdk-ecs" to check

import json
import logging
import time

from aliyunsdkcore import client
from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
from aliyunsdkecs.request.v20140526.RunInstancesRequest import RunInstancesRequest

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")

# your access key Id
ak_id = "YOU_ACCESS_KEY_ID"
# your access key secret
ak_secret = "YOU_ACCESS_SECRET"
region_id = "cn-beijing"

# your expected instance type
instance_type = "ecs.n4.small"
# 選擇的vswitchId
vswitch_id = "vws-xxxxx"
# 使用的鏡像信息
image_id = "centos_7_03_64_20G_alibase_20170818.vhd"
# 當(dāng)前vpc類型的安全組
security_group_id = "sg-xxxxx"

# instance number to lunch, support 1-100, default value is 100
amount = 2;

# instance auto delete time 按照 ISO8601 標(biāo)準(zhǔn)表示,并需要使用 UTC 時間。格式為 yyyy-MM-ddTHH:mm:ssZ 。 最短在當(dāng)前時間之后半小時。最長不能超過當(dāng)前時間起三年
auto_release_time = "2017-12-05T22:40:00Z"

clt = client.AcsClient(ak_id, ak_secret, "cn-beijing")


# create instance automatic running
def batch_create_instance():
    request = build_request()
    request.set_Amount(amount)
    _execute_request(request)


# create instance with public ip.
def batch_create_instance_with_public_ip():
    request = build_request()
    request.set_Amount(amount)
    request.set_InternetMaxBandwidthOut(1)
    _execute_request(request)


# create instance with auto release time.
def batch_create_instance_with_auto_release_time():
    request = build_request()
    request.set_Amount(amount)
    request.set_AutoReleaseTime(auto_release_time)
    _execute_request(request)


def _execute_request(request):
    response = _send_request(request)
    if response.get("Code") is None:
        instance_ids = response.get("InstanceIdSets").get("InstanceIdSet")
        running_amount = 0
        while running_amount < amount:
            time.sleep(10)
            running_amount = check_instance_running(instance_ids)
    print("ecs instance %s is running", instance_ids)


def check_instance_running(instance_ids):
    request = DescribeInstancesRequest()
    request.set_InstanceIds(json.dumps(instance_ids))
    response = _send_request(request)
    if response.get("Code") is None:
        instances_list = response.get("Instances").get("Instance")
        running_count = 0
        for instance_detail in instances_list:
            if instance_detail.get("Status") == "Running":
                running_count += 1
        return running_count


def build_request():
    request = RunInstancesRequest()
    request.set_ImageId(image_id)
    request.set_VSwitchId(vswitch_id)
    request.set_SecurityGroupId(security_group_id)
    request.set_InstanceName("Instance12-04")
    request.set_InstanceType(instance_type)
    return request


# 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)


if __name__ == "__main__":
    print "hello ecs batch create instance"
    # batch_create_instance()
    # batch_create_instance_with_public_ip()
    # batch_create_instance_with_auto_release_time()

通過RunInstances將簡化您的資源創(chuàng)建和運(yùn)行管理。
點(diǎn)此查看原文

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/11320.html

相關(guān)文章

  • 阿里云ECS開放批量創(chuàng)建實(shí)例接口,實(shí)現(xiàn)彈性資源的創(chuàng)建

    摘要:摘要為了更方便的實(shí)現(xiàn)彈性的資源創(chuàng)建,方便用戶一次運(yùn)行多臺按量實(shí)例來完成應(yīng)用的開發(fā)和部署,阿里云開放了的批量創(chuàng)建實(shí)例接口,可以單次最多創(chuàng)建臺實(shí)例,避免重復(fù)調(diào)用和創(chuàng)建。批量創(chuàng)建實(shí)例創(chuàng)建的實(shí)例,填入相關(guān)需要的參數(shù)即可。 摘要: 為了更方便的實(shí)現(xiàn)彈性的資源創(chuàng)建,方便用戶一次運(yùn)行多臺ECS按量實(shí)例來完成應(yīng)用的開發(fā)和部署,阿里云開放了ECS的批量創(chuàng)建實(shí)例接口RunInstances,可以單次最多創(chuàng)...

    gplane 評論0 收藏0
  • 阿里云建站產(chǎn)品:虛擬主機(jī),輕量應(yīng)用服務(wù)器,ECS云服務(wù)器,模板建站區(qū)別

    摘要:我們選擇阿里云產(chǎn)品建站的時候,常常面對虛擬主機(jī)輕量應(yīng)用服務(wù)器云服務(wù)器模板建站不知道如何選擇,下面就比較下這幾個阿里云建站產(chǎn)品的優(yōu)勢和劣勢以及各自適合的用戶,以供參考。獨(dú)享云虛擬主機(jī)獨(dú)享資源,空間超大,不限流量,更高配置,企業(yè)建站首選。我們選擇阿里云產(chǎn)品建站的時候,常常面對虛擬主機(jī),輕量應(yīng)用服務(wù)器,ECS云服務(wù)器,模板建站不知道如何選擇,下面就比較下這幾個阿里云建站產(chǎn)品的優(yōu)勢和劣勢以及各自適合...

    Rindia 評論0 收藏0
  • 中型電商解決方案

    摘要:阿里云服務(wù)器支持全球多個地區(qū)節(jié)點(diǎn),可支持小型電商的出海業(yè)務(wù),云產(chǎn)品隨時升級擴(kuò)容,輕松應(yīng)對高并發(fā),負(fù)載均衡一鍵搭建方便靈活,實(shí)時防攻擊。為電商企業(yè)保駕護(hù)航。? ? ? ?適用于初創(chuàng)電商公司快速搭建平臺,例如電商網(wǎng)站/APP/電子商城,能輕松承受約5~30萬的日均訪問量,支持約300-3000單/天的有效成單量。阿里云服務(wù)器ECS支持全球多個地區(qū)節(jié)點(diǎn),可支持小型電商的出海業(yè)務(wù),云產(chǎn)品隨時升級擴(kuò)容...

    yimo 評論0 收藏0
  • 阿里云異構(gòu)計(jì)算發(fā)布:輕量級GPU云服務(wù)器實(shí)例VGN5i

    摘要:輕量級云服務(wù)器如何使用實(shí)例的用法與普通彈性計(jì)算實(shí)例一樣便捷,用戶可以使用控制臺或者方式配置和購買服務(wù)。阿里云發(fā)布了國內(nèi)首個公共云上的輕量級GPU異構(gòu)計(jì)算產(chǎn)品——VGN5i實(shí)例,該實(shí)例打破了傳統(tǒng)直通模式的局限,可以提供比單顆物理GPU更細(xì)粒度的服務(wù),從而讓客戶以更低成本、更高彈性開展業(yè)務(wù)。適用于云游戲、VR/AR、AI推理和DL教學(xué)等輕量級GPU計(jì)算場景,更細(xì)粒度的GPU計(jì)算服務(wù)。 輕量級GP...

    hufeng 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<