小编MMi*_*Mil的帖子

java.lang.IllegalArgumentException:尝试获取 AWS ECR 身份验证令牌时主机名不能为空

我正在尝试使用 aws-java-sdk 版本 1.11.339 从 AWS 获取 ECR 授权令牌。我创建了一个类来这样做:

public class ECRTokenGetter {
    private static final Logger LOGGER = LoggerFactory.getLogger(ECRTokenGetter.class);
    private static final int SINGLE_ELEMENT_INDEX = 0;


    public static String getEcrAuthorisationToken(Credentials creds, String awsRegion, String registryId) {
        LOGGER.debug("Obtaining temporary authorisation credentials from AWS ECR");

        AmazonECR ecrClient = AmazonECRClientBuilder.standard()
                .withRegion(awsRegion)
                .withCredentials(new AWSStaticCredentialsProvider(new BasicSessionCredentials(
                        creds.getAccessKeyId(),
                        creds.getSecretAccessKey(),
                        creds.getSessionToken())))
                .build();
        return ecrClient.getAuthorizationToken(new GetAuthorizationTokenRequest()
                        .withRegistryIds(registryId))
                .getAuthorizationData().get(SINGLE_ELEMENT_INDEX)
                .getAuthorizationToken();
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在执行代码时,我收到以下异常:

Exception in thread "main" java.lang.IllegalArgumentException: hostname cannot be null
    at com.amazonaws.util.AwsHostNameUtils.parseRegion(AwsHostNameUtils.java:79)
    at com.amazonaws.util.AwsHostNameUtils.parseRegionName(AwsHostNameUtils.java:59)
    at com.amazonaws.auth.internal.AWS4SignerRequestParams.resolveRegion(AWS4SignerRequestParams.java:121) …
Run Code Online (Sandbox Code Playgroud)

java aws-java-sdk

2
推荐指数
2
解决办法
7034
查看次数

标签 统计

aws-java-sdk ×1

java ×1