我写了一个Lambda函数,该函数基本上应该返回ecr授权令牌。我正在创建BasicAWSCredentials,并传递访问密钥和秘密密钥。
@Override
public String handleRequest(String input,Context context) {
AWSCredentials awsCredentials = new BasicAWSCredentials("XXXXX","YYYY");
AmazonECR amazonECR = AmazonECRClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();
GetauthorizationTokenResult authorizationToken = amazonECR.getauthorizationToken(new GetauthorizationTokenRequest());
List<AuthorizationData> authorizationData = authorizationToken.getauthorizationData();
String encodedToken = authorizationData.get(0).getauthorizationToken();
//String token=encodeUtils.decodeStr(encodedToken);
System.out.println("Token="+encodedToken);
return token;
}
运行此命令时,出现以下异常。
请求中包含的安全令牌无效。 (服务:AmazonECR;状态代码:400;错误代码:UnrecognizedClientException;请求ID:f6ee624e-acd3-4cd7-a053-21b9c7389d1f):com.amazonaws.services.ecr.model.AmazonECRException com.amazonaws.services.ecr.model.AmazonECRException:请求中包含的安全令牌无效。 (服务:AmazonECR;状态代码:400;错误代码:UnrecognizedClientException;请求ID:f6ee624e-acd3-4cd7-a053-21b9c7389d1f) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1695) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeoneRequest(AmazonHttpClient.java:1350) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeHelper(AmazonHttpClient.java:1101) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.doExecute(AmazonHttpClient.java:758) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.executeWithTimer(AmazonHttpClient.java:732) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.execute(AmazonHttpClient.java:714) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.access $ 500(AmazonHttpClient.java:674) 在com.amazonaws.http.AmazonHttpClient $ RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:656) 在com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:520) 在com.amazonaws.services.ecr.AmazonECRClient.doInvoke(AmazonECRClient.java:1848) 在com.amazonaws.services.ecr.AmazonECRClient.invoke(AmazonECRClient.java:1815) 在com.amazonaws.services.ecr.AmazonECRClient.invoke(AmazonECRClient.java:1804) 在com.amazonaws.services.ecr.AmazonECRClient.executeGetauthorizationToken(AmazonECRClient.java:1047) 在com.amazonaws.services.ecr.AmazonECRClient.getauthorizationToken(AmazonECRClient.java:1018) 在com.amazonaws.lambda.demo.Hello.handleRequest(Hello.java:26) 在com.amazonaws.lambda.demo.Hello.handleRequest(Hello.java:1)
我已验证access_key和secret_key正确。
我是否必须以不同的方式传递访问和密钥,有人可以让我知道如何解决此问题。