通过AWS Lambda获取AWS ECR令牌时出现问题

我写了一个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正确。

我是否必须以不同的方式传递访问和密钥,有人可以让我知道如何解决此问题。

iCMS 回答:通过AWS Lambda获取AWS ECR令牌时出现问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1800778.html

大家都在问