

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
<a name="sent-api-ruby-python-java"></a>

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](https://aws.amazon.com/tools/) und scrollen Sie nach unten zum SDKs Abschnitt. Jedes SDK-Installationsprogramm enthält eine README-Datei mit zusätzlichen Codefragmenten.

## Beispiel für AMS API zu CLI
<a name="cli-list-ct-summaries"></a>

Nachdem Sie die AMS-CLI installiert haben (erfordert die AWS CLI; siehe[Installation oder Aktualisierung der AMS-CLI](understand-sent-api.md#install-sent-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` oder`aws 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-using.html).

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
<a name="python-list-ct-summaries"></a>

Um die AMS-API mit Python zu verwenden, installieren Sie die AMS-CLI und installieren Sie boto3. Dazu gehen Sie wie folgt vor:

1. Installieren Sie die AMS-CLI. Siehe [Installation oder Aktualisierung der AMS-CLI](understand-sent-api.md#install-sent-cli).

1. 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](https://aws.amazon.com/blogs/aws/now-available-aws-sdk-for-python-3-boto3/)).

   `import boto3`

1. Holen Sie sich den AMS Change Management-Client:

   `cm = boto3.client('amscm')`

1. Holen Sie sich das AMS CTs:

   `cts = cm.list_change_type_classification_summaries()`

   `print(cts)`

### Python-Beispiele
<a name="python-examples"></a>

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
<a name="python-examples-create-ec2"></a>

Dieses Beispiel zeigt, wie Sie die RESTFul amscm-API innerhalb von Python-Code verwenden können, um RFC-Prozesse zu archivieren und auszuführen.

1. Installieren Sie die AMS-CLI an einem Ort, auf den Sie Zugriff haben. Sie benötigen die bereitgestellten Dateien.

1. 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
<a name="python-examples-lambda"></a>

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**:

1. Installieren Sie die `amscli`. Dadurch wird ein Ordner `~/.aws/models` auf Ihrem Computer (Mac) erstellt.

1. Kopieren Sie die Modelle in ein lokales Verzeichnis:`cp ~/.aws/models ./models`.

1. Nehmen Sie die Modelle in das Bereitstellungspaket Ihres Codes auf.

1. 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 befinden`models`, 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.

1. Installieren Sie das Amscli. Dadurch wird ein Ordner `~/.aws/models` auf Ihrem Computer (Mac) erstellt.

1. Kopieren Sie die Modelle in ein lokales Verzeichnis:

   ```
   cp ~/.aws/models ./models
   ```

1. Fü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 befinden`models`, 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:

1. 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.py
   ```

1. Erstellen 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
<a name="ruby-list-ct-summaries"></a>

Um die AMS-API mit Ruby zu verwenden, installieren Sie das AWS Ruby-SDK und die AMS-CLI. Dazu gehen Sie wie folgt vor:

1. Installieren Sie die AMS-CLI. Siehe [Installation oder Aktualisierung der AMS-CLI](understand-sent-api.md#install-sent-cli).

1. Installieren Sie das AWS Ruby-SDK. Siehe [Tools für Amazon Web Services](https://aws.amazon.com/tools/).

1. Konfigurieren Sie Ruby mit diesen Befehlen:

   `require 'aws-sdk'`

   `config = { `

   ` region: '{{us-east-1}}',`

   ` credentials: Aws::Credentials.new('{{ACCESS_KEY}}','{{SECRET_KEY}}')}`

1. Holen Sie sich das AMS CTs:

   `ams_cm = Aws::amscm::Client.new(config)`

   `cts = ams_cm.list_change_type_classification_summaries`

   `print(cts)`

## Beispiel von AMS API zu Java
<a name="java-list-ct-summaries"></a>

Um die AMS-API mit Java zu verwenden, installieren Sie das AWS Java-SDK und die AMS-CLI. Dazu gehen Sie wie folgt vor:

1. Installieren Sie die AMS-CLI. Siehe [Installation oder Aktualisierung der AMS-CLI](understand-sent-api.md#install-sent-cli).

1. Installieren Sie das AWS Java SDK. Siehe [Tools für Amazon Web Services](https://aws.amazon.com/tools/).

1. 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() {`

1. Stellen Sie die Anmeldeinformationen ein. Wir empfehlen, dass Sie dies nicht fest codieren.

   `final BasicAWSCredentials awsCredsCm = `

   ` new BasicAWSCredentials("{{ACCESS_KEY}}", "{{SECRET_KEY}}");`

1. Erstellen Sie den AMS Change Management-Client:

   `final AWSManagedServicesCMClient cmClient =`

   ` new AWSManagedServicesCMClient(awsCredsCm);`

1. 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);`

   `}`