

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.

# Abfrage-API-Anfragen mithilfe des AWS JSON-Protokolls in Amazon SQS stellen
<a name="sqs-making-api-requests-json"></a>

In diesem Thema wird erklärt, wie Sie einen Amazon SQS SQS-Endpunkt erstellen, POST-Anfragen stellen und Antworten interpretieren.

**Anmerkung**  
AWS Das JSON-Protokoll wird für die meisten Sprachvarianten unterstützt. Eine Liste der unterstützten Sprachvarianten finden Sie unter [Welche Sprachen werden für das in Amazon SQS APIs verwendete AWS JSON-Protokoll unterstützt?](sqs-json-faqs.md#json-protocol-supported-languages).

## Erstellen eines Endpunkts
<a name="sqs-api-constructing-endpoints-json"></a>

Für die Arbeit mit Amazon-SQS-Warteschlangen müssen Sie einen Endpunkt erstellen. Informationen zu Amazon-SQS-Endpunkten finden Sie auf den folgenden Seiten im *Allgemeine Amazon Web Services-Referenz*:
+ [Regionale Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)
+ [Endpunkte und Kontingente von Amazon Simple Queue Service](https://docs.aws.amazon.com/general/latest/gr/sqs-service)

Jeder Amazon-SQS-Endpunkt ist unabhängig. Wenn z. B. bei zwei Warteschlangen mit dem identischen Namen *MyQueue* eine über Endpunkt `sqs.us-east-2.amazonaws.com` und die andere über Endpunkt `sqs.eu-west-2.amazonaws.com` verfügt, nutzen die beiden Warteschlangen keine Daten gemeinsam.

Das folgende Beispiel zeigt einen Endpunkt, der eine Anforderung zum Erstellen einer Warteschlange stellt. 

```
POST / HTTP/1.1
Host: sqs.us-west-2.amazonaws.com
X-Amz-Target: AmazonSQS.CreateQueue
X-Amz-Date: <Date>
Content-Type: application/x-amz-json-1.0
Authorization: <AuthParams>
Content-Length: <PayloadSizeBytes>
Connection: Keep-Alive 
{
    "QueueName":"MyQueue",
    "Attributes": {
        "VisibilityTimeout": "40"
    },
    "tags": {
        "QueueType": "Production"
    }
}
```

**Anmerkung**  
Bei Warteschlangennamen und Warteschlangen wird zwischen Groß- und Kleinschreibung URLs unterschieden.  
Die Struktur von *`AUTHPARAMS`* hängt davon ab, wie Sie Ihre API-Anforderung signieren. Weitere Informationen finden Sie unter [AWS API-Anfragen signieren](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) in der *Allgemeinen Referenz zu Amazon Web Services*.

## Durchführen einer POST-Anforderung
<a name="structure-post-request"></a>

Eine Amazon-SQS-POST-Anforderung sendet Abfrageparameter als Formular im Text einer HTTP-Anforderung.

Im Folgenden finden Sie ein Beispiel für einen HTTP-Header mit der `X-Amz-Target`-Einstellung auf `AmazonSQS.<operationName>` und einen HTTP-Header mit der `Content-Type`-Einstellung auf `application/x-amz-json-1.0`.

```
POST / HTTP/1.1
Host: sqs.<region>.<domain>
X-Amz-Target: AmazonSQS.SendMessage
X-Amz-Date: <Date>
Content-Type: application/x-amz-json-1.0
Authorization: <AuthParams>
Content-Length: <PayloadSizeBytes>
Connection: Keep-Alive 
{
    "QueueUrl": "https://sqs.<region>.<domain>/<awsAccountId>/<queueName>/",
    "MessageBody": "This is a test message"
}
```

Diese HTTP-POST-Anforderung sendet eine Nachricht an eine Amazon-SQS-Warteschlange.

**Anmerkung**  
Beide HTTP-Header, `X-Amz-Target` und `Content-Type`, sind erforderlich.  
Der HTTP-Client fügt abhängig von der HTTP-Version des Clients möglicherweise weitere Elemente zur HTTP-Anforderung hinzu.

# Interpretieren von Amazon-SQS-JSON-API-Antworten
<a name="sqs-json-api-responses"></a>

Wenn Sie eine Anfrage an Amazon SQS senden, wird eine JSON-Antwort mit den Ergebnissen zurückgegeben. Die Antwortstruktur hängt von der API-Aktion ab, die Sie verwendet haben.

Weitere Informationen zu diesen Antworten finden Sie unter:
+ Die spezifische API-Aktion in den [API-Aktionen](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html) in der *Amazon Simple Queue Service API-Referenz*
+ Die [Amazon SQS AWS JSON-Protokoll FAQs](sqs-json-faqs.md)

## Struktur einer JSON-Antwort bei Erfolg
<a name="sqs-json-api-successful-response-structure"></a>

Ist die Anfrage erfolgreich, ist das Hauptantwortelement `x-amzn-RequestId`, das den Universal Unique Identifier (UUID) der Anfrage sowie weitere angehängte Antwortfelder enthält. Beispielsweise enthält die folgende [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)-Antwort das Feld `QueueUrl`, das wiederum die URL der erstellten Warteschlange enthält.

```
HTTP/1.1 200 OK
x-amzn-RequestId: <requestId>
Content-Length: <PayloadSizeBytes>
Date: <Date>
Content-Type: application/x-amz-json-1.0
{
    "QueueUrl":"https://sqs.us-east-1.amazonaws.com/111122223333/MyQueue"
}
```

## Struktur einer JSON-Antwort bei Fehlschlagen
<a name="sqs-api-error-response-structure"></a>

Wenn eine Anfrage nicht erfolgreich ist, gibt Amazon SQS die Hauptantwort zurück, einschließlich des HTTP-Headers und des Texts.

`x-amzn-RequestId` enthält im HTTP-Header die UUID der Anfrage. `x-amzn-query-error` enthält zwei Informationen: die Art des Fehlers, und ob es sich bei dem Fehler um einen Produzenten- oder einen Konsumentenfehler handelt. 

`"__type"` gibt im Antworttext weitere Fehlerdetails an und `Message` zeigt die Fehlerbedingung in lesbarem Format an. 

Im Folgenden finden Sie eine Beispielfehlerantwort im JSON-Format:

```
HTTP/1.1 400 Bad Request
x-amzn-RequestId: 66916324-67ca-54bb-a410-3f567a7a0571
x-amzn-query-error: AWS.SimpleQueueService.NonExistentQueue;Sender
Content-Length: <PayloadSizeBytes>
Date: <Date>
Content-Type: application/x-amz-json-1.0
{
    "__type": "com.amazonaws.sqs#QueueDoesNotExist",
    "message": "The specified queue does not exist."
}
```

# Amazon SQS AWS JSON-Protokoll FAQs
<a name="sqs-json-faqs"></a>

Dieses Thema behandelt häufig gestellte Fragen zur Verwendung des AWS JSON-Protokolls mit Amazon SQS.

## Was ist das AWS JSON-Protokoll und wie unterscheidet es sich von bestehenden Amazon SQS SQS-API-Anfragen und -Antworten?
<a name="json-protocol-what-is"></a>

JSON ist eine der am weitesten verbreiteten und akzeptierten Verbindungsmethoden für die Kommunikation zwischen heterogenen Systemen. Amazon SQS verwendet JSON als Medium für die Kommunikation zwischen einem AWS SDK-Client (z. B. Java, Python, Golang JavaScript) und einem Amazon SQS-Server. Eine HTTP-Anfrage eines Amazon-SQS-API-Vorgangs akzeptiert Eingaben in Form von JSON. Der Amazon-SQS-Vorgang wird ausgeführt und die Ausführungsantwort wird im JSON-Format an den SDK-Client zurückgesendet. Im Vergleich zu AWS -Abfragen ist JSON effizienter, wenn es darum geht, Daten zwischen Client und Server zu transportieren. 
+ Das Amazon SQS AWS JSON-Protokoll fungiert als Vermittler zwischen dem Amazon SQS SQS-Client und dem Server.
+ Der Server versteht die Programmiersprache, in der der Amazon SQS SQS-Vorgang erstellt wurde, nicht, aber er versteht das AWS JSON-Protokoll.
+ Das Amazon SQS AWS JSON-Protokoll verwendet die Serialisierung (Objekt in das JSON-Format konvertieren) und Deserialisierung (JSON-Format in Objekt konvertieren) zwischen dem Amazon SQS SQS-Client und -Server.

## Wie fange ich mit AWS JSON-Protokollen für Amazon SQS an?
<a name="json-protocol-getting-started"></a>

Um mit der neuesten AWS SDK-Version zu beginnen und schnelleres Messaging für Amazon SQS zu erreichen, aktualisieren Sie Ihr AWS SDK auf die angegebene Version oder eine nachfolgende Version. Weitere Informationen zu SDK-Clients finden Sie in der Spalte „Leitfaden“ in der Tabelle unten.

Im Folgenden finden Sie eine Liste der SDK-Versionen in allen Sprachvarianten für das AWS JSON-Protokoll zur Verwendung mit Amazon SQS: APIs


| Sprache | SDK-Client-Repository | Erforderliche SDK-Clientversion | Richtlinie | 
| --- | --- | --- | --- | 
|  C\$1\$1  |  [aws/ aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)  |  [1.11.98](https://github.com/aws/aws-sdk-cpp/releases/tag/1.11.198)  |  [AWS SDK for C\$1\$1](https://aws.amazon.com/sdk-for-cpp/)  | 
|  Golang 1.x  |  [aws/ aws-sdk-go](https://github.com/aws/aws-sdk-go)  |  [v1.47.7](https://github.com/aws/aws-sdk-go/releases/tag/v1.47.7)  |  [AWS SDK for Go](https://aws.amazon.com/sdk-for-go/)  | 
|  Golang 2.x  |  [aws/2 aws-sdk-go-v](https://github.com/aws/aws-sdk-go-v2)  |  [v1.28.0](https://github.com/aws/aws-sdk-go-v2/blob/release-2023-11-09/service/sqs/CHANGELOG.md#v1270-2023-11-09)  |  [AWS SDK for Go V2](https://aws.github.io/aws-sdk-go-v2/docs/)  | 
|  Java 1.x  |  [aws/ aws-sdk-java](https://github.com/aws/aws-sdk-java)  |  [1.12.585](https://github.com/aws/aws-sdk-java/releases/tag/1.12.585)  |  [AWS SDK für Java](https://aws.amazon.com/sdk-for-java/)  | 
|  Java 2.x  |  [Ahnen/ 2 aws-sdk-java-v](https://github.com/aws/aws-sdk-java-v2)  |  [2.21,19](https://github.com/aws/aws-sdk-java-v2/releases/tag/2.21.19)  |  [AWS SDK für Java](https://aws.amazon.com/sdk-for-java/)  | 
|  JavaScript v2.x  |  [aws/ aws-sdk-js](https://github.com/aws/aws-sdk-js)  |  [JavaScript nein AWS](https://aws.amazon.com/developer/language/javascript/)  | 
|  JavaScript v3.x  |  [aws/3 aws-sdk-js-v](https://github.com/aws/aws-sdk-js-v3)  |  [v3.447.0](https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.447.0)  |  [JavaScript nein AWS](https://aws.amazon.com/developer/language/javascript/)  | 
|  .NET  |  [aws/ aws-sdk-net](https://github.com/aws/aws-sdk-net)  |  [3.7.681,0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.681.0)  |  [AWS SDK for .NET](https://aws.amazon.com/sdk-for-net/)  | 
|  PHP  |  [aws/ aws-sdk-php](https://github.com/aws/aws-sdk-php)  |  [3,285,2](https://github.com/aws/aws-sdk-php/releases/tag/3.285.2)  |  [AWS SDK for PHP](https://aws.amazon.com/sdk-for-php/)  | 
|  Python-boto3  |   [boto/boto3](https://github.com/boto/boto3)   |  [1.28.82](https://github.com/boto/boto3/releases/tag/1.28.82)  |  [AWS SDK for Python (Boto3)](https://aws.amazon.com/sdk-for-python/)  | 
|  Python-botocore  |   [boto/botocore](https://github.com/boto/botocore/)   |  [1.31.82](https://github.com/boto/botocore/releases/tag/1.31.82)  |  [AWS SDK for Python (Boto3)](https://aws.amazon.com/sdk-for-python/)  | 
|  awscli  |  [AWS -CLI](https://github.com/aws/aws-cli)  |  [1.29.82](https://github.com/aws/aws-cli/releases/tag/1.29.82)  |  [AWS-Befehlszeilenschnittstelle](https://aws.amazon.com/cli/)  | 
|  Ruby  |  [sägen/ aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby)  |  [1,67,0](https://rubygems.org/gems/aws-sdk-sqs/versions/1.67.0)  |  [AWS SDK for Ruby](https://aws.amazon.com/sdk-for-ruby/)  | 

## Was sind die Risiken, wenn ich das JSON-Protokoll für meine Amazon-SQS-Workloads aktiviere?
<a name="json-protocol-risks"></a>

Wenn Sie eine benutzerdefinierte Implementierung von AWS SDK oder eine Kombination aus benutzerdefinierten Clients und AWS SDK für die Interaktion mit Amazon SQS verwenden, das AWS abfragebasierte (auch bekannt als XML-basierte) Antworten generiert, ist dies möglicherweise nicht mit dem AWS JSON-Protokoll kompatibel. Wenn Sie auf Probleme stoßen, wenden Sie sich an den AWS Support.

## Was ist, wenn ich bereits die neueste AWS SDK-Version verwende, aber meine Open-Source-Lösung JSON nicht unterstützt?
<a name="json-protocol-sdk-version-open-source"></a>

Sie müssen Ihre SDK-Version auf die Version ändern, die vor der von Ihnen verwendeten Version liegt. Weitere Informationen [Wie fange ich mit AWS JSON-Protokollen für Amazon SQS an?](#json-protocol-getting-started) finden Sie unter. AWS Die unter aufgeführten SDK-Versionen [Wie fange ich mit AWS JSON-Protokollen für Amazon SQS an?](#json-protocol-getting-started) verwenden das JSON-Wire-Protokoll für Amazon SQS. APIs Wenn Sie Ihr AWS SDK auf die vorherige Version ändern, verwendet Ihr Amazon SQS APIs die AWS Abfrage.

## Welche Sprachen werden für das in Amazon SQS APIs verwendete AWS JSON-Protokoll unterstützt?
<a name="json-protocol-supported-languages"></a>

Amazon SQS unterstützt alle Sprachvarianten, sofern sie allgemein verfügbar AWS SDKs sind (GA). Derzeit unterstützen wir Kotlin, Rust oder Swift nicht. Weitere Informationen zu anderen Sprachvarianten finden Sie unter [Tools, auf der Grundlage von AWS](https://aws.amazon.com/developer/tools/).

## Welche Regionen werden für das in Amazon SQS verwendete AWS JSON-Protokoll unterstützt APIs
<a name="json-protocol-supported-regions"></a>

Amazon SQS unterstützt das AWS JSON-Protokoll in allen [AWS Regionen](https://docs.aws.amazon.com/general/latest/gr/sqs-service.html), in denen Amazon SQS verfügbar ist. 

## Welche Latenzverbesserungen kann ich erwarten, wenn ich ein Upgrade auf die angegebenen AWS SDK-Versionen für Amazon SQS mithilfe des AWS JSON-Protokolls durchführe?
<a name="json-protocol-upgrading-sdk"></a>

AWS Das JSON-Protokoll ist im Vergleich zum Abfrageprotokoll effizienter bei der Serialisierung und Deserialisierung von Anfragen und Antworten. AWS Basierend auf AWS Leistungstests für eine Nachrichtennutzlast von 5 KB reduziert das JSON-Protokoll für Amazon SQS die Latenz bei der end-to-end Nachrichtenverarbeitung um bis zu 23% und reduziert die clientseitige CPU- und Speicherauslastung der Anwendung. 

## Wird das AWS Abfrageprotokoll veraltet sein?
<a name="query-protocol"></a>

AWS Das Abfrageprotokoll wird weiterhin unterstützt. Sie können das AWS Abfrageprotokoll weiterhin verwenden, solange für Ihre AWS SDK-Version eine andere Version festgelegt ist als die, die unter [Wie fange ich mit AWS JSON-Protokollen für Amazon SQS an](#json-protocol-getting-started)? aufgeführt ist.

## Wo finde ich weitere Informationen zum AWS JSON-Protokoll?
<a name="json-protocol-more-info"></a>

Weitere Informationen zum JSON-Protokoll finden Sie unter [AWS -JSON-1.0-Protokoll](https://smithy.io/2.0/aws/protocols/aws-json-1_0-protocol.html) in der *Smithy*-Dokumentation. Weitere Informationen zu Amazon-SQS-API-Anfragen mit dem AWS -JSON-Protokoll finden Sie unter [Abfrage-API-Anfragen mithilfe des AWS JSON-Protokolls in Amazon SQS stellen](sqs-making-api-requests-json.md).