Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So verwalten oder entwickeln Sie ECS-Instanzen über die API individuell
Der Inhalt dieses Artikels befasst sich mit der Verwaltung oder Anpassung der Entwicklung von ECS-Instanzen. Er hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.
ECS-Instanzen flexibel verwalten
RAM-Unterkonto-AK-Schlüssel erhalten
Verwenden Sie die API, um ECS-Instanzen zu verwalten, die Sie benötigen um auf API-Schlüssel (AccessKey ID und AccessKey Secret) für den Zugriff auf ECS-Ressourcen zugreifen zu können. Um die Sicherheit von Cloud-Diensten zu gewährleisten, müssen Sie einen RAM-Benutzer erstellen, der auf ECS-Ressourcen zugreifen, den AccessKey des Benutzers erhalten und diesen RAM-Benutzer und diese API zum Verwalten von ECS-Instanzen verwenden kann.
Im Folgenden sind die Schritte aufgeführt, um den RAM-Benutzer-AccessKey zu erhalten:
Erstellen Sie einen RAM-Benutzer und erhalten Sie den AccessKey.
Autorisieren Sie RAM-Benutzer direkt und erteilen Sie RAM-Benutzern die Berechtigung, Cloud-Server-Dienste (ECS) zu verwalten.
Installieren Sie das ECS Python SDK
Stellen Sie zunächst sicher, dass Sie bereits über Pythons Runtime verfügen. Die in diesem Artikel verwendete Python-Version ist 2.7+.
pip install aliyun-python-sdk-ecs
Wenn Sie die Meldung erhalten, dass Sie keine Berechtigung haben, wechseln Sie bitte zu sudo, um mit der Ausführung fortzufahren.
sudo pip install aliyun-python-sdk-ecs
Die in diesem Artikel verwendete SDK-Version ist 2.1.2.
Hallo Alibaba Cloud
Erstellen Sie die Datei hello_ecs_api.py. Um das SDK zu verwenden, instanziieren Sie zunächst das AcsClient-Objekt, das die AccessKey-ID und das AccessKey-Geheimnis des RAM-Benutzers erfordert.
AccessKey ID und AccessKey Secret sind die Schlüssel für RAM-Benutzer für den Zugriff auf die Alibaba Cloud ECS-Dienst-API. Sie verfügen über vollständige Berechtigungen für das Konto, also bewahren Sie sie bitte sicher auf.
from aliyunsdkcore import client from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest clt = client.AcsClient('Your Access Key Id', 'Your Access Key Secrect', 'cn-beijing')
Nach Abschluss der Instanziierung können Sie die erste Anwendung entwickeln. Fragen Sie die Liste der vom aktuellen Konto unterstützten Regionen ab. Eine spezifische Dokumentation finden Sie unter Abfragen der Liste verfügbarer Regionen.
def hello_aliyun_regions(): request = DescribeRegionsRequest() response = _send_request(request) region_list = response.get('Regions').get('Region') assert response is not None assert region_list is not None result = map(_print_region_id, region_list) logging.info("region list: %s", result) def _print_region_id(item): region_id = item.get("RegionId") return region_id 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) hello_aliyun_regions()
Führen Sie python hello_ecs_api.py in der Befehlszeile aus, um die aktuell unterstützte Regionsliste abzurufen. Eine ähnliche Ausgabe lautet wie folgt:
[u'cn-shenzhen', u'ap-southeast-1', u'cn-qingdao', u'cn-beijing', u'cn-shanghai', u'us-east-1', u'cn-hongkong', u'me-east-1', u'ap-southeast-2', u'cn-hangzhou', u'eu-central-1', u'ap-northeast-1', u'us-west-1']
Fragen Sie die ECS-Instanzliste unter der aktuellen Region ab
Das Abfragen der Instanzliste ist dem Abfragen sehr ähnlich Regionsliste. Ersetzen Das Eingabeparameterobjekt ist DescribeInstancesRequest. Weitere Abfrageparameter finden Sie in der Abfrageinstanzliste.
def list_instances(): request = DescribeInstancesRequest() response = _send_request(request) if response is not None: instance_list = response.get('Instances').get('Instance') result = map(_print_instance_id, instance_list) logging.info("current region include instance %s", result) def _print_instance_id(item): instance_id = item.get('InstanceId'); return instance_id
Das Ausgabeergebnis lautet wie folgt:
current region include instance [u'i-****', u'i-****'']
Für eine weitere API-Referenz-ECS-API-Übersicht können Sie versuchen, die Festplattenliste abzufragen und die Instanzparameter durch DescribeDisksRequest zu ersetzen.
Vollständiges Codebeispiel
Das vollständige Codebeispiel für die obige Operation lautet wie folgt.
# 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 2.1.2, you can use command 'pip show aliyun-python-sdk-ecs' to check import json import logging from aliyunsdkcore import client from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest # 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') clt = client.AcsClient('Your Access Key Id', 'Your Access Key Secrect', 'cn-beijing') # sample api to list aliyun open api. def hello_aliyun_regions(): request = DescribeRegionsRequest() response = _send_request(request) if response is not None: region_list = response.get('Regions').get('Region') assert response is not None assert region_list is not None result = map(_print_region_id, region_list) logging.info("region list: %s", result) # output the instance owned in current region. def list_instances(): request = DescribeInstancesRequest() response = _send_request(request) if response is not None: instance_list = response.get('Instances').get('Instance') result = map(_print_instance_id, instance_list) logging.info("current region include instance %s", result) def _print_instance_id(item): instance_id = item.get('InstanceId'); return instance_id def _print_region_id(item): region_id = item.get("RegionId") return region_id # 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__': logging.info("Hello Aliyun OpenApi!") hello_aliyun_regions() list_instances()
Das obige ist der detaillierte Inhalt vonSo verwalten oder entwickeln Sie ECS-Instanzen über die API individuell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!