Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Migrar da versão 1 ou 2 para a versão 3 do AWS SDK para Ruby - AWS SDK para Ruby

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Migrar da versão 1 ou 2 para a versão 3 do AWS SDK para Ruby

O objetivo deste tópico é ajudar a migrar da versão 1 ou 2 do AWS SDK para Ruby para a versão 3.

Uso lado a lado

Não é necessário substituir a versão 1 ou 2 do AWS SDK para Ruby pela versão 3. Você pode usá-las em conjunto no mesmo aplicativo. Veja esta postagem de blog para obter mais informações.

Um exemplo rápido.

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

Não é necessário reescrever o código existente da versão 1 ou 2 em funcionamento para começar a usar o SDK da versão 3. Uma estratégia de migração válida é simplesmente escrever um novo código com base no SDK da versão 3.

Diferenças gerais

A versão 3 difere da versão 2 de uma maneira importante.

  • Cada serviço está disponível como um gem separado.

A versão 2 difere da versão 1 de várias maneiras importantes.

  • Namespace raiz diferente – Aws versus AWS. Isso permite o uso lado a lado.

  • Aws.config — agora é um hash Ruby vanilla, em vez de um método.

  • Opções de construtor restritas - Ao construir um objeto de cliente ou recurso no SDK da versão 1, opções de construtor desconhecidas são ignoradas. Na versão 2, as opções de construtor desconhecidas acionam um ArgumentError. Por exemplo:

    # 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

Diferenças de clientes

Não há diferenças entre as classes de cliente na versão 2 e na versão 3.

Entre a versão 1 e a versão 2, as classes de clientes têm o menor número possível de diferenças externas. Muitos clientes de serviços terão interfaces compatíveis após a construção do cliente. Algumas diferenças importantes:

  • Aws::S3::Client - A classe de cliente do Amazon S3 na versão 1 foi codificada manualmente. A versão 2 é gerada a partir de um modelo de serviço. Os nomes e entradas do método são muito diferentes na versão 2.

  • Aws::EC2::Client - A versão 2 usa nomes plurais para listas de saída, enquanto a versão 1 usa o sufixo _set. Por exemplo:

    # 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 – a versão 2 usa respostas estruturadas, enquanto a versão 1 usa hashes Ruby vanilla.

  • Renomeações de classes de serviços – a versão 2 usa um nome diferente para vários serviços:

    • AWS::SimpleWorkflow se tornou Aws::SWF

    • AWS::ELB se tornou Aws::ElasticLoadBalancing

    • AWS::SimpleEmailService se tornou Aws::SES

  • Opções de configuração de cliente: algumas das opções de configuração da versão 1 foram renomeadas na versão 2. Outras são removidas ou substituídas. Veja a seguir as principais mudanças:

    • :use_ssl foi removido. A versão 2 usa SSL em todos os locais. Para desabilitar o SSL, você deve configurar um :endpoint que use http://.

    • :ssl_ca_file é agora :ssl_ca_bundle

    • :ssl_ca_path é agora :ssl_ca_directory

    • Adição do :ssl_ca_store.

    • O :endpoint agora deve ser um URI HTTP ou HTTPS totalmente qualificado, em vez de um nome de host.

    • As opções de :*_port foram removidas para cada serviço, agora são substituídas por :endpoint.

    • :user_agent_prefix é agora :user_agent_suffix

Diferenças de recursos

Não há diferenças entre as interfaces de recursos na versão 2 e na versão 3.

Existem diferenças significativas entre as interfaces de recursos na versão 1 e na versão 2. A versão 1 era codificada manualmente na íntegra, enquanto as interfaces de recursos da versão 2 são geradas a partir de um modelo. As interfaces de recursos da versão 2 são significativamente mais consistentes. Algumas das diferenças sistêmicas incluem:

  • Classe de recurso separada: na versão 2, o nome do serviço é um módulo, não uma classe. Neste módulo, ela é a interface de recurso:

    # version 1 s3 = AWS::S3.new # version 2 s3 = Aws::S3::Resource.new
  • Referência a recursos – o SDK da versão 2 separa coleções e getters de recursos individuais em dois métodos diferentes:

    # version 1 s3.buckets['bucket-name'].objects['key'].delete # version 2 s3.bucket('bucket-name').object('key').delete
  • Operações em lotes: na versão 1, todas as operações em lotes eram utilitários codificados manualmente. Na versão 2, muitas operações em lotes são operações em lotes geradas automaticamente por meio da API. As interfaces de lote de versão 2 são muito diferentes daquelas da versão 1.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.