Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden der AMS-API in CLI, Ruby, Python und Java
Im Folgenden finden Sie eine Liste von Codefragmenten für den ListChangeTypeClassificationSummaries AMS-API-Vorgang in allen verfügbaren Sprachen.
Informationen zu Python, Ruby und Java SDKs finden Sie unter Tools for Amazon Web Services
Beispiel für AMS API zu CLI
Nachdem Sie die AMS-CLI installiert haben (erfordert die AWS CLI; sieheInstallation oder Aktualisierung der AMS-CLI), können Sie jeden AMS-API-Vorgang ausführen, indem Sie den Aufruf neu formieren, indem Sie zuerst angeben, welche AMS-API, aws amscm oderaws amsskms, und dann der Aktion Bindestriche anstelle von Camel case zuweisen. Geben Sie abschließend Anmeldeinformationen wie SAML ein.
Weitere Informationen finden Sie unter Verwenden der AWS Befehlszeilenschnittstelle.
Beispiel:
API:
'ChangeTypeClassificationSummaries[].[Category,Subcategory,Item,Operation,ChangeTypeId]'CLI:
amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
Anmerkung
Wenn Sie sich mit SAML authentifizieren, fügen Sie aws --profile saml am Anfang des Befehls etwas hinzu. Zum Beispiel
aws --profile saml amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
Beispiel für AMS API zu Python
Um die AMS-API mit Python zu verwenden, installieren Sie die AMS-CLI und installieren Sie boto3. Dazu gehen Sie wie folgt vor:
Installieren Sie die AMS-CLI. Siehe Installation oder Aktualisierung der AMS-CLI.
Installieren Sie boto3, das AWS SDK für Python. Weitere Informationen finden Sie in diesem Blogbeitrag Jetzt verfügbar — AWS SDK für Python (Boto3
). import boto3Holen Sie sich den AMS Change Management-Client:
cm = boto3.client('amscm')Holen Sie sich das AMS CTs:
cts = cm.list_change_type_classification_summaries()print(cts)
Python-Beispiele
Im Folgenden finden Sie einige Beispiele für die Verwendung von Python in AMS. and/or Verwenden Sie Lambda, um EC2 Instanzen zu erstellen.
Python-Beispiel zum Erstellen eines EC2
Dieses Beispiel zeigt, wie Sie die RESTFul amscm-API innerhalb von Python-Code verwenden können, um RFC-Prozesse zu archivieren und auszuführen.
Installieren Sie die AMS-CLI an einem Ort, auf den Sie Zugriff haben. Sie benötigen die bereitgestellten Dateien.
Rufen Sie Python-Bibliotheken auf und erstellen Sie die EC2 Instanz:
import boto3 import json import time # Create the amscm client cm = boto3.client('amscm') # Define the execution parameters for EC2 Create AMSExecParams = { "Description": "EC2-Create", "VpcId": "VPC_ID", "Name": "My-EC2", "TimeoutInMinutes": 60, "Parameters": { "InstanceAmiId": "INSTANCE_ID", "InstanceSubnetId": "SUBNET_ID"} } # Create the AMS RFC cts = cm.create_rfc( ChangeTypeId="ct-14027q0sjyt1h", ChangeTypeVersion="3.0", Title="Python Code RFC Create", ExecutionParameters=json.dumps(AMSExecParams) ) # Extract the RFC ID from the response NewRfcID = cts['RfcId'] # Submit the RFC RFC_Submit_Return=cm.submit_rfc(RfcId=NewRfcID) # Check the RFC status every 30 seconds RFC_Status = cm.get_rfc(RfcId=NewRfcID) RFC_Status_Code = RFC_Status['Rfc']['Status']['Name'] while RFC_Status_Code != "Success": if RFC_Status_Code == "PendingApproval": print(RFC_Status_Code) time.sleep(30) elif RFC_Status_Code == "InProgress": print(RFC_Status_Code) time.sleep(30) elif RFC_Status_Code == "Failure": print(RFC_Status_Code) break else: print(RFC_Status_Code) RFC_Status = cm.get_rfc(RfcId=NewRfcID) RFC_Status_Code = RFC_Status['Rfc']['Status']['Name']
Python-Beispiel mit Lambda
Dieses Beispiel zeigt, wie Sie die AMS-Modelle mit Ihrem Code bündeln, sodass Sie ihn mit Lambda oder anderen EC2 Orten verwenden können, die Sie nicht installieren amscli wollen oder können.
Anmerkung
AMS bietet kein importierbares AMS-spezifisches Python-SDK. Das amscli Installationsskript installiert die AMS-Dienstdatenmodelle im normalen Pfad der CLI. Für die CLI-Verwendung und die Verwendung von System-Python ist das in Ordnung, da beide awscli ihre Servicemodelle von denselben Standardspeicherorten (~/.aws/models) boto3 lesen. Wenn Sie jedoch AMS-Dienste über boto3 in Lambda (oder einer anderen nicht-lokalen Laufzeit) verwenden möchten, wird dies unterbrochen, da Sie nicht mehr über die Datenmodelle verfügen. Im Folgenden finden Sie eine Methode, um dieses Problem zu beheben, indem Sie die Datenmodelle mit der Funktion verpacken.
Es gibt einfache Schritte, die Sie unternehmen können, um Ihren AMS-integrierten Python-Code in Lambda oder einer anderen Laufzeit wie Fargate EC2 usw. auszuführen. Der folgende Workflow zeigt die Schritte, die für AMS-integrierte Lambda-Funktionen erforderlich sind.
Indem Sie die Datenmodelle zum Bereitstellungspaket des Codes hinzufügen und den SDK-Suchpfad aktualisieren, können Sie ein SDK-Erlebnis simulieren.
Wichtig
Dieses Beispiel und alle gezeigten Befehle, die keine Python-Befehle sind, wurden auf einem Mac-Computer getestet.
Beispiel für einen Arbeitsablauf:
Installieren Sie die
amscli. Dadurch wird ein Ordner~/.aws/modelsauf Ihrem Computer (Mac) erstellt.Kopieren Sie die Modelle in ein lokales Verzeichnis:
cp ~/.aws/models ./models.Nehmen Sie die Modelle in das Bereitstellungspaket Ihres Codes auf.
Aktualisieren Sie Ihren Funktionscode, um die neuen Modelle zum SDK-Pfad hinzuzufügen. Beachten Sie, dass dieser Code ausgeführt werden muss, bevor Boto3 oder Botocore importiert werden!
# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
Anmerkung
Da sich die Beispielmodelle in einem Verzeichnis mit dem Namen befindenmodels, fügen wir sie zu _PATH hinzu. ./models AWS_DATA Wenn das Verzeichnis benannt wäre/ams/boto3models, würden wir den folgenden Code hinzufügen:
import os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore
Ihr Code sollte die AMS-Modelle erfolgreich finden. Als konkreteres Beispiel für das Verpacken finden Sie hier den Lambda-spezifischen Workflow.
Beispiel für einen AMS Lambda-Workflow:
In diesen Schritten wird das vorherige generische Beispiel auf die Erstellung einer AWS-Lambda-Funktion angewendet.
Installieren Sie das Amscli. Dadurch wird ein Ordner
~/.aws/modelsauf Ihrem Computer (Mac) erstellt.Kopieren Sie die Modelle in ein lokales Verzeichnis:
cp ~/.aws/models ./modelsFügen Sie die Modelle der Deployment-ZIP-Datei Ihrer Funktion hinzu:
zip -r9 function.zip ./models
Wichtig
Aktualisieren Sie Ihren Funktionscode, um die neuen Modelle zum SDK-Pfad hinzuzufügen. Beachten Sie, dass dieser Code ausgeführt werden muss, bevor Boto3 oder Botocore importiert werden!
# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
Anmerkung
Da sich die Beispielmodelle in einem Verzeichnis mit dem Namen befindenmodels, fügen wir sie zu _PATH hinzu. ./models AWS_DATA Wenn das Verzeichnis benannt wäre/ams/boto3models, würden wir den folgenden Code hinzufügen:
import os os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore
Stellen Sie jetzt Ihre Funktion bereit:
Fügen Sie Ihren Funktionscode zur Zip-Datei für die Bereitstellung hinzu (falls Sie dies noch nicht getan haben):
zip -g function.zip lambda-amscm-test.pyErstellen oder aktualisieren Sie Ihre Funktion mit der von Ihnen erstellten Zip-Datei (Konsole oder CLI):
aws lambda update-function-code --function-name lambda-amscm-test --zip-file fileb://function.zip --region us-east-1
Ihr AMS-integriertes Python-Lambda sollte jetzt funktionieren.
Anmerkung
Ihre Funktion muss über IAM-Berechtigungen für verfügen, amscm andernfalls wird ein Berechtigungsfehler angezeigt.
Beispiel für einen Lambda-Funktionscode zum Testen von lambda-amscm-test amscm (Inhalt von.py):
import json # Force lambda to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore def lambda_handler(event, context): use_session = boto3.session.Session(region_name="us-east-1") try: cm = use_session.client("amscm") cts = cm.list_change_type_categories() print(cts) except botocore.exceptions.UnknownServiceError: print("amscm not found") return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }
Ergebnisse testen (erfolgreich):
Antwort der Funktion:
{ "statusCode": 200, "body": "\"Hello from Lambda!\"" } Request ID: "1cea13c0-ed46-43b1-b102-a8ea28529c27"
Funktionsprotokolle:
START RequestId: 1cea13c0-ed46-43b1-b102-a8ea28529c27 Version: $LATEST {'ChangeTypeCategories': ['Deployment', 'Internal Infrastructure Management', 'Management'], 'ResponseMetadata': {'RequestId': 'e27276a0-e081-408d-bcc2-10cf0aa19ece', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'e27276a0-e081-408d-bcc2-10cf0aa19ece', 'content-type': 'application/x-amz-json-1.1', 'content-length': '89', 'date': 'Sun, 10 May 2020 23:21:19 GMT'}, 'RetryAttempts': 0}} END RequestId: 1cea13c0-ed46-43b1-b102-a8ea28529c27
Beispiel für eine AMS-API zu Ruby
Um die AMS-API mit Ruby zu verwenden, installieren Sie das AWS Ruby-SDK und die AMS-CLI. Dazu gehen Sie wie folgt vor:
Installieren Sie die AMS-CLI. Siehe Installation oder Aktualisierung der AMS-CLI.
Installieren Sie das AWS Ruby-SDK. Siehe Tools für Amazon Web Services
. Konfigurieren Sie Ruby mit diesen Befehlen:
require 'aws-sdk'config = {region: 'us-east-1',credentials: Aws::Credentials.new('ACCESS_KEY','SECRET_KEY')}-
Holen Sie sich das AMS CTs:
ams_cm = Aws::amscm::Client.new(config)cts = ams_cm.list_change_type_classification_summariesprint(cts)
Beispiel von AMS API zu Java
Um die AMS-API mit Java zu verwenden, installieren Sie das AWS Java-SDK und die AMS-CLI. Dazu gehen Sie wie folgt vor:
Installieren Sie die AMS-CLI. Siehe Installation oder Aktualisierung der AMS-CLI.
Installieren Sie das AWS Java SDK. Siehe Tools für Amazon Web Services
. Konfigurieren Sie Java mit diesen Befehlen:
import com.amazonaws.auth.BasicAWSCredentials;import com.amazonaws.services.amscm.model.AWSManagedServicesCMClient;import com.amazonaws.services.amscm.model.ListChangeTypeClassificationSummariesRequest;import com.amazonaws.services.amscm.model.ListChangeTypeClassificationSummariesResult;public static void getChangeTypeClassificationSummaries() {Stellen Sie die Anmeldeinformationen ein. Wir empfehlen, dass Sie dies nicht fest codieren.
final BasicAWSCredentials awsCredsCm =new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY");Erstellen Sie den AMS Change Management-Client:
final AWSManagedServicesCMClient cmClient =new AWSManagedServicesCMClient(awsCredsCm);-
Holen Sie sich das AMS CTs:
final ListChangeTypeClassificationSummariesRequest listCtsRequest = new ListChangeTypeClassification SummariesRequest();final ListChangeTypeClassificationSummariesResult listCtsResult =cmClient.listChangeTypeClassificationSummaries(listCtsRequest);System.out.println("List of CTs");listCtsResult.getChangeTypeClassificationSummaries().stream().map(x -> x.getCategory() + "/" + x.getSubcategory() + "/" + x.getItem() + "/" + x.getOperation()).forEach(System.out::println);}