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á.
Configurar clientes de serviço no código do AWS SDK para Rust no código
Quando a configuração é tratada diretamente no código, o escopo da configuração é limitado à aplicação que usa esse código. Dentro dessa aplicação, há opções para a configuração global de todos os clientes de serviço, a configuração para todos os clientes de determinado tipo de AWS service (Serviço da AWS) 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 uma Região da AWS e um provedor de credenciais. O SDK usa esses valores para enviar solicitações à região correta para seus recursos e para assinar solicitações com as credenciais corretas. Você pode especificar esses valores de modo programático no código ou fazer com que sejam carregados automaticamente do ambiente.
nota
Os clientes de serviços podem ser caros para construir e geralmente devem ser compartilhados. Para facilitar isso, todas as estruturas Client implementam Clone.
Configurar um cliente 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,AWS Lambda, ou em qualquer outro contexto em que a configuração de um cliente de serviço esteja disponível diretamente do ambiente. Isso desvincula o código do ambiente no qual está em execução e facilita a implantação da aplicação em várias Regiões da AWS sem precisar 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 seguinte exemplo carrega a configuração do ambiente, mas substitui explicitamente a 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 Centro de Identidade do IAM, 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. O BehaviorVersion::latest()é adequado para a maioria dos casos. Para obter detalhes, consulte Usar versões de comportamento no AWS SDK para Rust.
Use o padrão do builder 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, será importante 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 nas caixas AWS SDK para Rust. Primeiro, você carrega a configuração geral usando aws_config::defaults e, em seguida, usa o método from para carregar essa configuração no construtor do serviço com o qual você está trabalhando. Em seguida, você pode definir valores de configuração exclusivos para esse serviço e chamada build. Por fim, o cliente é criado com base nessa 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 disponíveis para um tipo específico de cliente de serviço é usar a documentação da API, como para 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 builder Config do cliente, conforme mostrado abaixo:
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 como aws_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 função endpoint_resolver em um cliente Amazon S3.