

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 und CLI
<a name="understand-sent-api"></a>

Die AWS Managed Services (AMS) -API ähnelt der APIs für andere AWS Services. Weitere Informationen zur AMS-API finden Sie in der [AMS-API-Referenz](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/index.html).

## AMS-API-HTTP-Endpunkte für REST-Aufrufe
<a name="sent-api-endpoints"></a>

Neben den verschiedenen SDKs bietet AMS eine CLI; Sie können auch REST-API-Aufrufe für den AMS-Endpunkt aufrufen.

Es gibt zwei AMS APIs (der Endpunkt für beide befindet sich in us-east-1):
+ Change Management: Verwenden Sie diese API, um Zugriff auf oder Änderungen an Ihrer Infrastruktur anzufordern. Dazu gehören das Erstellen und Aktualisieren, Bereitstellen neuer Instances RFCs, das Aktualisieren und Löschen von Instances, das Abrufen von Informationen CTs und das Erstellen von Instances. AMIs Der HTTP-Endpunkt ist:

  `https://amscm.us-east-1.amazonaws.com`
+ SKMS: Verwenden Sie diese API, um Informationen über Ihre Infrastruktur abzurufen VPCs, einschließlich Stacks, Subnetze und. AMIs Der HTTP-Endpunkt ist:

  `https://amsskms.us-east-1.amazonaws.com`

## Installation oder Aktualisierung der AMS-CLI
<a name="install-sent-cli"></a>

Die AMS-CLI ist eine einfache Möglichkeit, mit der AMS-API zu interagieren, und wird in den Beispielen in diesem Abschnitt verwendet. Die Verwendungskonventionen für die AWS CLI und AMS CLI finden Sie [unter Verwenden der AWS Befehlszeilenschnittstelle](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-using.html). 

Informationen zur Installation von SAML finden Sie unter[AD FS-Anspruchsregel und SAML-Einstellungen](adfs-claim-rule-saml.md). 

Gehen Sie folgendermaßen vor, um die AMS-CLI zu installieren oder zu aktualisieren:
**Anmerkung**  
Für dieses Verfahren benötigen Sie Administratoranmeldedaten.

Die AWS-CLI ist eine Voraussetzung für die Nutzung der AWS Managed Services (AMS) CLIs (Change Management und SKMS).

1. Informationen zur Installation der AWS-CLI finden Sie unter [Installation der AWS-Befehlszeilenschnittstelle](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) und folgen Sie den entsprechenden Anweisungen. Beachten Sie, dass sich unten auf dieser Seite Anweisungen zur Verwendung verschiedener Installationsprogramme befinden: [Linux](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html), [MS Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html), [macOS](https://docs.aws.amazon.com/cli/latest/userguide/cli-install-macos.html), [Virtual Environment](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-virtualenv.html), [Bundled Installer (Linux, macOS oder Unix](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html)).

   Führen Sie nach der Installation den Befehl aus, `aws help` um die Installation zu überprüfen.

1. Sobald die AWS-CLI installiert ist, laden Sie zur Installation oder zum Upgrade der AMS CLI entweder die AMS **CLI- oder die AMS** **SDK-Distributionsdatei** herunter und entpacken Sie sie. Sie können auf die AMS-CLI-Distributionsdateien über den Link [https://console.aws.amazon.com/managedservices/developerResources](https://console.aws.amazon.com/managedservices/developerResources) im linken Navigationsbereich der AMS-Konsole zugreifen.

1. Die README-Datei enthält Anweisungen für jede Installation.

   Öffnen Sie entweder:
   + CLI zip: Stellt nur die AMS-CLI bereit.
   + SDK-Zip: Stellt das gesamte AMS APIs und die AMS-CLI bereit.

   Führen Sie für **Windows** das entsprechende Installationsprogramm aus (nur 32- oder 64-Bit-Systeme):
   + 32 Bit: **ManagedCloudAPI\$1x86.msi**
   + 64 Bit: **ManagedCloudAPI\$1x64.msi**

   Führen Sie für **Mac/Linux** die Datei mit dem Namen: **AWSManagedServices\$1InstallCLI.sh aus, indem Sie** diesen Befehl ausführen:. `sh AWSManagedServices_InstallCLI.sh` **Beachten Sie, dass sich die Verzeichnisse **amscm** und **amsskms** und ihr Inhalt im selben Verzeichnis wie die .sh-Datei befinden müssen. AWSManagedServices\$1InstallCLI**

1. Wenn Ihre Unternehmensanmeldedaten über den Verbund mit AWS (die AMS-Standardkonfiguration) verwendet werden, müssen Sie ein Tool zur Verwaltung von Anmeldeinformationen installieren, das auf Ihren Verbundservice zugreifen kann. Sie können beispielsweise diesen AWS-Sicherheitsblog [How to Implementation Federated API and CLI Access Using SAML 2.0 and AD FS verwenden](https://blogs.aws.amazon.com/security/post/Tx1LDN0UBGJJ26Q/How-to-Implement-Federated-API-and-CLI-Access-Using-SAML-2-0-and-AD-FS), um Hilfe bei der Konfiguration Ihrer Tools zur Verwaltung Ihrer Anmeldeinformationen zu erhalten.

1. Führen Sie nach der Installation die Befehle und Optionen aus `aws amscm help` und sehen Sie `aws amsskms help` sich diese an.
**Anmerkung**  
Die AMS-CLI muss installiert sein, damit diese Befehle funktionieren. Um die AMS-API oder CLI zu installieren, rufen Sie die Seite **Entwicklerressourcen** der AMS-Konsole auf. Referenzmaterial zur AMS CM API oder AMS SKMS API finden Sie im Abschnitt AMS-Informationsressourcen im Benutzerhandbuch. Möglicherweise müssen Sie eine `--profile` Option für die Authentifizierung hinzufügen, `aws amsskms ams-cli-command --profile SAML` z. B. Möglicherweise müssen Sie die `--region` Option auch hinzufügen, da allen AMS-Befehlen beispielsweise us-east-1 ausgeht. `aws amscm ams-cli-command --region=us-east-1`

# 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\$1

```
# 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 \$1PATH hinzu. `./models` AWS\$1DATA 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\$1

```
# 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 \$1PATH hinzu. `./models` AWS\$1DATA 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);`

   `}`