Configurando o AWS SDK para clientes do serviço Rust em código - AWS SDK para Rust

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á.

Configurando o AWS SDK para clientes do serviço Rust em código

Quando a configuração é tratada diretamente no código, o escopo da configuração é limitado ao aplicativo que usa esse código. Dentro desse aplicativo, há opções para a configuração global de todos os clientes de serviço, a configuração para todos os clientes de um determinado AWS service (Serviço da AWS) tipo ou a configuração para uma instância específica do cliente de serviço.

Para fazer uma solicitação a um AWS service (Serviço da AWS), primeiro você instancia um cliente para esse serviço. Você pode definir configurações comuns para clientes de serviço, como tempos limite, o cliente HTTP e configuração de repetição.

Cada cliente de serviço exige um Região da AWS e um provedor de credenciais. O SDK usa esses valores para enviar solicitações para a região correta para seus recursos e para assinar solicitações com as credenciais corretas. Você pode especificar esses valores programaticamente no código ou fazer com que sejam carregados automaticamente do ambiente.

nota

Os clientes de serviços podem ser caros de construir e geralmente devem ser compartilhados. Para facilitar isso, todas as Client estruturas são Clone implementadas.

Configurar um cliente a partir do ambiente

Para criar um cliente com configuração baseada no ambiente, use métodos estáticos da caixa: aws-config

let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; let s3 = aws_sdk_s3::Client::new(&config);

Criar um cliente dessa forma é útil quando executado no Amazon Elastic Compute Cloud ou em qualquer outro contexto em que a configuração de um cliente de serviço esteja disponível diretamente do ambiente. AWS Lambda Isso separa seu código do ambiente em que ele está sendo executado e facilita a implantação de seu aplicativo em vários Regiões da AWS sem alterar o código.

Você pode substituir explicitamente propriedades específicas. A configuração explícita tem precedência sobre a configuração resolvida no ambiente de execução. O exemplo a seguir carrega a configuração do ambiente, mas substitui explicitamente o: Região da AWS

let config = aws_config::defaults(BehaviorVersion::latest()) .region("us-east-1") .load() .await; let s3 = aws_sdk_s3::Client::new(&config);
nota

Nem todos os valores de configuração são fornecidos pelo cliente no momento da criação. As configurações relacionadas a credenciais, como chaves de acesso temporárias e configuração do IAM Identity Center, são acessadas pela camada do provedor de credenciais quando o cliente é usado para fazer uma solicitação.

O código BehaviorVersion::latest() mostrado nos exemplos anteriores indica a versão do SDK a ser usada como padrão. BehaviorVersion::latest()é apropriado para a maioria dos casos. Para obter detalhes, consulte Usando versões de comportamento no AWS SDK para Rust.

Use o padrão do construtor para configurações específicas do serviço

Há algumas opções que só podem ser configuradas em um tipo específico de cliente de serviço. No entanto, na maioria das vezes, você ainda desejará carregar a maioria das configurações do ambiente e, em seguida, adicionar especificamente as opções adicionais. O padrão do construtor é um padrão comum dentro das AWS SDK para Rust caixas. Primeiro, você carrega a configuração geral usando eaws_config::defaults, em seguida, usa o from método para carregar essa configuração no construtor do serviço com o qual está trabalhando. Em seguida, você pode definir quaisquer valores de configuração exclusivos para esse serviço e chamadabuild. Por fim, o cliente é criado a partir dessa configuração modificada.

// Call a static method on aws-config that sources default config values. let config = aws_config::defaults(BehaviorVersion::latest()) .load() .await; // Use the Builder for S3 to create service-specific config from the default config. let s3_config = aws_sdk_s3::config::Builder::from(&config) .accelerate(true) // Set an S3-only configuration option .build(); // Create the client. let s3 = aws_sdk_s3::Client::from_conf(s3_config);

Uma forma de descobrir métodos adicionais que estão disponíveis para um tipo específico de cliente de serviço é usar a documentação da API, como for aws_sdk_s3::config::Builder.

Configuração avançada explícita do cliente

Para configurar um cliente de serviço com valores específicos em vez de carregar uma configuração do ambiente, você pode especificá-los no Config construtor do cliente, conforme mostrado a seguir:

let conf = aws_sdk_s3::Config::builder() .region("us-east-1") .endpoint_resolver(my_endpoint_resolver) .build(); let s3 = aws_sdk_s3::Client::from_conf(conf);

Quando você cria uma configuração de serviço comaws_sdk_s3::Config::builder(), nenhuma configuração padrão é carregada. Os padrões só são carregados ao criar uma configuração baseada em. aws_config::defaults

Há algumas opções que só podem ser configuradas em um tipo específico de cliente de serviço. O exemplo anterior mostra um exemplo disso usando a endpoint_resolver função em um cliente Amazon S3.