0

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
  • 斯卡拉版本 2.11.12
  • spark 版本 2.3.4,这意味着我对 hadoop-aws 2.7.3 很紧,这取决于 aws-java-sdk 1.7.4:/
4

1 回答 1

0

AFAICS,这个类直到版本 1.11.0 才成为 AWS Java 开发工具包的一部分。

您必须自己实例化AWSSecurityTokenServiceClient该类,而不使用构建器。

调用此构造函数

val stsClient = new AWSSecurityTokenServiceClient(new ProfileCredentialsProvider())
stsClient.setRegion(clientRegion)
于 2020-07-09T15:11:36.520 回答