国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

supernavy / 1650人閱讀

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

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

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

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

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

pip install aliyun-python-sdk-ecs

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

sudo pip install aliyun-python-sdk-ecs

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

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

下面的例子創(chuàng)建了2臺實例,并且添加了自動每隔10秒鐘檢查一次實例的運行狀態(tài)。直到實例狀態(tài)變成Running結束創(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"
# 當前vpc類型的安全組
security_group_id = "sg-xxxxx"

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

# instance auto delete time 按照 ISO8601 標準表示,并需要使用 UTC 時間。格式為 yyyy-MM-ddTHH:mm:ssZ 。 最短在當前時間之后半小時。最長不能超過當前時間起三年
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)建實例并自動分配公網(wǎng)IP
相比上面的代碼,我們只需要添加一行屬性,指定公網(wǎng)的帶寬即可。下面的例子中我們默認給實例都分配了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)建實例并自動設置自動釋放時間
相比上面的代碼,我們只需要添加一行屬性,實例的自動釋放時間即可。 自動釋放時間按照 ISO8601 標準表示,并需要使用 UTC 時間。格式為 yyyy-MM-ddTHH:mm:ssZ 。 最短在當前時間之后半小時。最長不能超過當前時間起三年。

# 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"
# 當前vpc類型的安全組
security_group_id = "sg-xxxxx"

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

# instance auto delete time 按照 ISO8601 標準表示,并需要使用 UTC 時間。格式為 yyyy-MM-ddTHH:mm:ssZ 。 最短在當前時間之后半小時。最長不能超過當前時間起三年
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)建和運行管理。
點此查看原文

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11320.html

相關文章

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

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

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

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

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

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

    yimo 評論0 收藏0
  • 阿里云異構計算發(fā)布:輕量級GPU云服務器實例VGN5i

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

    hufeng 評論0 收藏0

發(fā)表評論

0條評論

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