AWS SDK: невозможно импортировать AWSSecurityTokenServiceClientBuilder для получения временных учетных данных - PullRequest
0 голосов
/ 09 июля 2020

В AWS SDK есть несколько примеров получения учетных данных, например:

Но когда я запускаю эти фрагменты, я не могу импортировать AWSSecurityTokenServiceClientBuilder:

// note that the AWS SDK is pretty brittle across versions.
import $ivy.`com.amazonaws:aws-java-sdk:1.7.4`
import $ivy.`org.apache.hadoop:hadoop-aws:2.7.3`

import com.amazonaws.auth.profile.ProfileCredentialsProvider
import com.amazonaws.services.securitytoken.model.AssumeRoleRequest
import com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClientBuilder

var clientRegion = "*** Client region ***";
var roleARN = "*** ARN for role to be assumed ***";
var roleSessionName = "*** Role session name ***";

var stsClient = AWSSecurityTokenServiceClientBuilder.standard()
    .withCredentials(new ProfileCredentialsProvider())
    .withRegion(clientRegion)
    .build()
var roleRequest = new AssumeRoleRequest()
    .withRoleArn(roleARN)
    .withRoleSessionName(roleSessionName)
var roleResponse = stsClient.assumeRole(roleRequest)
var sessionCredentials = roleResponse.getCredentials()
import com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClientBuilder
       ^cmd16.sc:13: not found: value AWSSecurityTokenServiceClientBuilder
var stsClient = AWSSecurityTokenServiceClientBuilder.standard()
                ^Compilation Failed
Compilation Failed
  • scala версия 2.11.12
  • Spark версия 2.3.4, это означает, что мне не хватает oop - aws 2.7.3, который зависит от aws - java -sdk 1.7 .4: /

1 Ответ

0 голосов
/ 09 июля 2020

AFAICS, этот класс не является частью AWS Java SDK до версии 1.11.0.

Вместо этого вы должны создать экземпляр класса AWSSecurityTokenServiceClient самостоятельно, без использования построителя.

Вызовите этот конструктор :

val stsClient = new AWSSecurityTokenServiceClient(new ProfileCredentialsProvider())
stsClient.setRegion(clientRegion)
...