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á.
Crie um cliente de serviço
Para fazer uma solicitação a um AWS service (Serviço da AWS), você deve primeiro instanciar um cliente para esse serviço.
Você pode definir configurações comuns para clientes de serviço, como o cliente HTTP a ser usado, o nível de registro e a configuração de repetição. Além disso, 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 e 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.
Configurar um cliente em código
Para configurar um cliente de serviço com valores específicos, você pode especificá-los em uma função lambda passada para o método de fábrica do cliente de serviço, conforme mostrado no trecho a seguir.
val dynamoDbClient = DynamoDbClient { region = "us-east-1" credentialsProvider = ProfileCredentialsProvider(profileName = "myprofile") }
Todos os valores que você não especificar no bloco de configuração são definidos como padrões. Por exemplo, se você não especificar um provedor de credenciais como o código anterior, o provedor de credenciais usará como padrão a cadeia de fornecedores de credenciais padrão.
Atenção
Algumas propriedades, como region
não têm um padrão. Você deve especificá-los explicitamente no bloco de configuração ao usar a configuração programática. Se o SDK não conseguir resolver a propriedade, as solicitações de API poderão falhar.
Configurar um cliente a partir do ambiente
Ao criar um cliente de serviço, o SDK pode inspecionar locais no ambiente de execução atual para determinar algumas propriedades de configuração. Esses locais incluem arquivos compartilhados de configuração e credenciais, variáveis de ambiente e propriedades do sistema JVM. As propriedades disponíveis para serem resolvidas incluem AWS Região, estratégia de repetição, modo de registro e outras. Para obter mais informações sobre todas as configurações que o SDK pode resolver no ambiente de execução, consulte o Guia de referência de configurações AWS SDKs e ferramentas.
Para criar um cliente com configuração baseada no ambiente, use o método estático suspend fun fromEnvironment()
na interface do cliente de serviço:
val dynamoDbClient = DynamoDbClient.fromEnvironment()
Criar um cliente dessa forma é útil quando executado na Amazon EC2 ou em qualquer outro contexto em que a configuração de um cliente de serviço esteja disponível no ambiente. AWS Lambda Isso separa seu código do ambiente em que ele está sendo executado e facilita a implantação do aplicativo em várias regiões sem alterar o código.
Além disso, você pode substituir propriedades específicas passando um bloco lambda para. fromEnvironment
O exemplo a seguir carrega algumas propriedades de configuração do ambiente (por exemplo, Região), mas substitui especificamente o provedor de credenciais para usar credenciais de um perfil.
val dynamoDbClient = DynamoDbClient.fromEnvironment { credentialsProvider = ProfileCredentialsProvider(profileName = "myprofile") }
O SDK usa valores padrão para qualquer propriedade de configuração que não possa ser determinada a partir de configurações programáticas ou do ambiente. Por exemplo, se você não especificar um provedor de credenciais no código ou em uma configuração de ambiente, o provedor de credenciais usará como padrão a cadeia de fornecedores de credenciais padrão.
Atenção
Algumas propriedades, como Região, não têm um padrão. Você deve especificá-los em uma configuração de ambiente ou explicitamente no bloco de configuração. Se o SDK não conseguir resolver a propriedade, as solicitações de API poderão falhar.
nota
Embora propriedades relacionadas a credenciais, como chaves de acesso temporárias e configuração de SSO, possam ser encontradas no ambiente de execução, os valores não são fornecidos pelo cliente no momento da criação. Em vez disso, os valores são acessados pela camada do provedor de credenciais em cada solicitação.
Feche o cliente
Quando você não precisar mais do cliente de serviço, feche-o para liberar os recursos que ele está usando:
val dynamoDbClient = DynamoDbClient.fromEnvironment() // Invoke several DynamoDB operations. dynamoDbClient.close()
Como os clientes de serviço estendem a Closeable
use
DynamoDbClient.fromEnvironment().use { dynamoDbClient -> // Invoke several DynamoDB operations. }
No exemplo anterior, o bloco lambda recebe uma referência ao cliente que acabou de ser criado. Você pode invocar operações nessa referência de cliente e, quando o bloco for concluído, inclusive lançando uma exceção, o cliente será fechado.