AWS Data Pipeline ist für Neukunden nicht mehr verfügbar. Bestehende Kunden von AWS Data Pipeline können den Service weiterhin wie gewohnt nutzen. Weitere Informationen
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.
Erstellen einer HTTP-Anforderung an AWS Data Pipeline
Eine vollständige Beschreibung der programmgesteuerten Objekte in AWS Data Pipeline finden Sie in der AWS Data Pipeline-API-Referenz.
Wenn Sie keinen AWS-SDK verwenden, können Sie AWS Data Pipeline-Operationen über HTTP ausführen, indem Sie die POST-Anforderungsmethode verwenden. Bei der POST-Methode müssen Sie den Vorgang im Header der Anforderung festlegen und im Anforderungstext die Daten für den Vorgang im JSON-Format angeben.
Inhalt des HTTP-Headers
AWS Data Pipeline benötigt die folgenden Informationen im Header einer HTTP-Anforderung:
-
host
Den AWS Data Pipeline-Endpunkt.Weitere Informationen zu Endpunkten finden Sie unter Regionen und Endpunkte.
-
x-amz-date
Sie müssen den Zeitstempel entweder im HTTP-Datums-Header oder im AWS-x-amz-date-Header angeben. (Einige HTTP-Client-Bibliotheken lassen den Datums-Header nicht zu.) Ist der x-amz-date-Header vorhanden, ignoriert das System bei der Anforderungsauthentifizierung alle Datums-Header.Das Datum muss in einem der folgenden drei Formate angegeben werden, wie in HTTP/1.1 RFC festgelegt:
-
Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, aktualisiert durch RFC 1123)
-
Sunday, 06-Nov-94 08:49:37 GMT (RFC 850, abgelöst durch RFC 1036)
-
Sun Nov 6 08:49:37 1994 (ANSI C asctime()-Format)
-
-
Authorization
Der Satz an Autorisierungsparametern, mit denen AWS die Gültigkeit und Authentizität der Anforderung sicherstellt. Weitere Informationen zum Aufbau dieses Headers finden Sie unter Signature Version 4-Signaturprozess. -
x-amz-target
Der Zieldienst der Anforderung und des Vorgangs für die Daten, in folgendem Format:<<serviceName>>_<<API version>>.<<operationName>>
Beispiel,
DataPipeline_20121129.ActivatePipeline
-
content-type
Gibt JSON und die Version an. Beispiel,Content-Type: application/x-amz-json-1.0
Nachfolgend finden Sie einen Beispiel-Header für eine HTTP-Anforderung zum Aktivieren einer Pipeline.
POST / HTTP/1.1 host: https://datapipeline.us-east-1.amazonaws.com x-amz-date: Mon, 12 Nov 2012 17:49:52 GMT x-amz-target: DataPipeline_20121129.ActivatePipeline Authorization: AuthParams Content-Type: application/x-amz-json-1.1 Content-Length: 39 Connection: Keep-Alive
HTTP-Textinhalt
Der Textkörper einer HTTP-Anforderung enthält die Daten für den Vorgang, der im Header der HTTP-Anforderung festgelegt ist. Die Daten müssen für jede AWS Data Pipeline-API entsprechend dem JSON-Datenschema formatiert werden. Das AWS Data Pipeline-JSON-Datenschema definiert die Datentypen und Parameter (z. B. Vergleichsoperatoren und Aufzählungskonstanten), die für die einzelnen Vorgänge verfügbar sind.
Format des Textkörpers einer HTTP-Anforderung
Verwenden Sie das JSON-Datenformat zur gleichzeitigen Übermittlung von Datenwerten und -strukturen. Elemente können mit der Klammerschreibweise innerhalb anderer Elemente verschachtelt werden. Das folgende Beispiel zeigt eine Anforderung für das Erstellen einer Pipeline-Definition, die aus drei Objekten und ihren entsprechenden Slots besteht.
{ "pipelineId": "df-00627471SOVYZEXAMPLE", "pipelineObjects": [ {"id": "Default", "name": "Default", "slots": [ {"key": "workerGroup", "stringValue": "MyWorkerGroup"} ] }, {"id": "Schedule", "name": "Schedule", "slots": [ {"key": "startDateTime", "stringValue": "2012-09-25T17:00:00"}, {"key": "type", "stringValue": "Schedule"}, {"key": "period", "stringValue": "1 hour"}, {"key": "endDateTime", "stringValue": "2012-09-25T18:00:00"} ] }, {"id": "SayHello", "name": "SayHello", "slots": [ {"key": "type", "stringValue": "ShellCommandActivity"}, {"key": "command", "stringValue": "echo hello"}, {"key": "parent", "refValue": "Default"}, {"key": "schedule", "refValue": "Schedule"} ] } ] }
Handhaben der HTTP-Antwort
Nachfolgend finden Sie einige wichtige Header in der HTTP-Antwort und Informationen dazu, wie Sie diese Header in Ihrer Anwendung behandeln sollten:
-
HTTP/1.1— Auf diesen Header folgt ein Statuscode. Ein Code-Wert von 200 gibt an, dass ein Vorgang erfolgreich war. Jeder andere Wert weist auf einen Fehler hin.
-
x-amzn-RequestId – Dieser Header enthält eine Anforderungs-ID, die Sie für die Fehlerbehebung bei einer Anfrage bei AWS Data Pipeline nutzen können. Ein Beispiel für eine Anforderungs-ID ist K2QH8DNOU907N97FNA2GDLL8OBVV4KQNSO5AEMVJF66Q9ASUAAJG.
-
x-amz-crc32 – AWS Data Pipeline berechnet eine CRC32-Prüfsumme der HTTP-Nutzlast und gibt diese Prüfsumme an den x-amz-crc32-Header zurück. Wir empfehlen Ihnen, Ihre eigene CRC32-Prüfsumme clientseitig zu berechnen und sie mit dem x-amz-crc32-Header zu vergleichen. Wenn die Prüfsummen nicht übereinstimmen, kann dies ein Hinweis darauf sein, dass die Daten während der Übertragung beschädigt wurden. Wenn dies der Fall ist, sollten Sie Ihre Anforderung erneut übermitteln.
AWS-SDK-Benutzer müssen diese Verifizierung nicht manuell ausführen, da die SDKs die Prüfsumme jeder Antwort von Amazon DynamoDB berechnen und den Versuch automatisch wiederholen, wenn keine Übereinstimmung vorliegt.
Beispiel AWS Data Pipeline, JSON-Anforderung und -Antwort
Die folgenden Beispiele zeigen eine Anforderung zum Erstellen einer neuen Pipeline. Anschließend wird die AWS Data Pipeline-Antwort angezeigt, einschließlich der Pipeline-ID der neu erstellten Pipeline.
HTTP-POST-Anforderung
POST / HTTP/1.1 host: https://datapipeline.us-east-1.amazonaws.com x-amz-date: Mon, 12 Nov 2012 17:49:52 GMT x-amz-target: DataPipeline_20121129.CreatePipeline Authorization: AuthParams Content-Type: application/x-amz-json-1.1 Content-Length: 50 Connection: Keep-Alive {"name": "MyPipeline", "uniqueId": "12345ABCDEFG"}
AWS Data Pipeline-Antwort
HTTP/1.1 200 x-amzn-RequestId: b16911ce-0774-11e2-af6f-6bc7a6be60d9 x-amz-crc32: 2215946753 Content-Type: application/x-amz-json-1.0 Content-Length: 2 Date: Mon, 16 Jan 2012 17:50:53 GMT {"pipelineId": "df-00627471SOVYZEXAMPLE"}