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.
Migration von AWS SDK for Ruby Version 1 oder 2 zu AWS SDK for Ruby Version 3
Dieses Thema enthält Informationen, die Ihnen bei der Migration von Version 1 oder 2 des AWS SDK for Ruby auf Version 3 helfen sollen.
Side-by-side Verwendung
Es ist nicht notwendig, die Version 1 oder 2 des AWS SDK for Ruby durch Version 3 zu ersetzen. Sie können sie in derselben Anwendung gemeinsam verwenden. Weitere Informationen dazu finden Sie in diesem Blog-Beitrag
Ein kurzes Beispiel.
require 'aws-sdk-v1' # version 1 require 'aws-sdk' # version 2 require 'aws-sdk-s3' # version 3 s3 = AWS::S3::Client.new # version 1 s3 = Aws::S3::Client.new # version 2 or 3
Sie müssen vorhandenen, funktionierenden Code der Version 1 oder 2 nicht umschreiben, um die SDK-Version 3 zu verwenden. Es ist eine gültige Strategie für die Migration, nur neuen Code für die SDK-Version 3 zu schreiben.
Allgemeine Unterschiede
Version 3 unterscheidet sich von Version 2 in einem wesentlichen Aspekt.
-
Jeder Service ist als separates Gem verfügbar.
Version 2 unterscheidet sich von Version 1 in mehreren wichtigen Punkten.
-
Anderer Root-Namespace —
AwsversusAWS. Dies ermöglicht die side-by-side Verwendung. -
Aws.config– Jetzt ein Standard-Ruby-Hash anstelle von einer Methode. -
Strikte Konstruktoroptionen – Beim Erstellen von einem Client- oder Ressourcenobjekt in der SDK-Version 1 werden unbekannte Konstruktoroptionen ignoriert. In Version 2 lösen unbekannte Konstruktoroptionen einen
ArgumentErroraus. Beispiel:# version 1 AWS::S3::Client.new(http_reed_timeout: 10) # oops, typo'd option is ignored # version 2 Aws::S3::Client.new(http_reed_timeout: 10) # => raises ArgumentError
Unterschiede zwischen den Kunden
Es gibt keine Unterschiede zwischen den Clientklassen in Version 2 und Version 3.
Zwischen Version 1 und Version 2 haben die Client-Klassen die wenigsten externen Unterschiede. Viele Service-Clients haben nach der Clientkonstruktion kompatible Schnittstellen. Einige wichtige Unterschiede:
-
Aws::S3::Client- Die Amazon S3 S3-Clientklasse der Version 1 wurde von Hand codiert. Version 2 wird aus einem Service-Modell generiert. Die Methodennamen und Eingaben in Version 2 unterscheiden sich deutlich. -
Aws::EC2::Client– Version 2 verwendet Pluralnamen für Ausgabelisten. Version 1 verwendet das_set-Suffix. Beispiel:# version 1 resp = AWS::EC2::Client.new.describe_security_groups resp.security_group_set #=> [...] # version 2 resp = Aws::EC2::Client.new.describe_security_groups resp.security_groups #=> [...] -
Aws::SWF::Client– Version 2 verwendet strukturierte Antworten, wo Version 1 Standard-Ruby-Hashes nutzt. -
Umbenennungen von Service-Klassen – Version 2 verwendet für mehrere Services einen anderen Namen:
-
AWS::SimpleWorkflowist jetztAws::SWF. -
AWS::ELBist jetztAws::ElasticLoadBalancing. -
AWS::SimpleEmailServiceist jetztAws::SES.
-
-
Client-Konfigurationsoptionen — Einige der Konfigurationsoptionen von Version 1 wurden in Version 2 umbenannt. Andere werden entfernt oder ersetzt. Hier sind die wichtigsten Änderungen:
-
:use_sslwurde entfernt. Version 2 verwendet überall SSL. Zum Deaktivieren von SSL müssen Sie einen:endpointkonfigurieren, derhttp://verwendet. -
:ssl_ca_fileist jetzt:ssl_ca_bundle -
:ssl_ca_pathist jetzt:ssl_ca_directory -
:ssl_ca_storehinzugefügt. -
:endpointmuss jetzt ein vollqualifizierter HTTP- oder HTTPS-URI anstelle eines Hostnamens sein. -
:*_port-Optionen für die einzelnen Services wurden entfernt und jetzt durch:endpointersetzt. -
:user_agent_prefixist jetzt:user_agent_suffix
-
Unterschiede bei den Ressourcen
Es gibt keine Unterschiede zwischen den Ressourcenschnittstellen in Version 2 und Version 3.
Es gibt signifikante Unterschiede zwischen den Ressourcenschnittstellen in Version 1 und Version 2. Version 1 war vollständig handcodiert. Die Ressourcenschnittstellen in Version 2 werden hingegen aus einem Modell generiert. Die Ressourcenschnittstellen in Version 2 sind wesentlich konsistenter. Einige der systemischen Unterschiede sind:
-
Separate Ressourcenklasse — In Version 2 ist der Dienstname ein Modul, keine Klasse. In diesem Modul ist es die Ressourcenschnittstelle:
# version 1 s3 = AWS::S3.new # version 2 s3 = Aws::S3::Resource.new -
Verweise auf Ressourcen – Die SDK-Version 2 trennt Sammlungen und einzelne Ressourcen-Getter in zwei verschiedene Methoden:
# version 1 s3.buckets['bucket-name'].objects['key'].delete # version 2 s3.bucket('bucket-name').object('key').delete -
Batch-Operationen — In Version 1 waren alle Batch-Operationen handcodierte Dienstprogramme. In Version 2 sind viele Stapeloperationen automatisch generierte Stapelverarbeitungsoperationen über die API. Die Stapelverarbeitungsschnittstellen in Version 2 unterscheiden sich stark von Version 1.