AWS开发工具包:无法导入AWSSecurityTokenServiceClientBuilder以获取临时凭证

时间:2020-07-09 14:14:25

标签: scala aws-sdk aws-sdk-java

AWS开发工具包上有两个示例如何获取凭证,例如:

但是当我运行这些代码片段时,我无法导入channel 1: [0,0,1,0,1,0,1,0,1,0] channel 2: [0,0,0,0,0,0,1,0,0,1] channel 3: [0,0,0,0,0,0,0,1,1,1]

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()
  • scala版本2.11.12
  • spark版本2.3.4,这意味着我对hadoop-aws 2.7.3十分严格,它取决于aws-java-sdk 1.7.4:/

1 个答案:

答案 0 :(得分:0)

AFAICS,该类直到1.11.0版才成为AWS Java SDK的一部分。

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

将此称为constructor

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