Ошибка при получении токена AWS ECR через aws лямбда - PullRequest
0 голосов
/ 05 августа 2020

Я написал лямбда-функцию, которая должна в основном возвращать токен авторизации 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; Идентификатор запроса: f6ee624e-acd3-4cd7-a053-21b9c7389d1f): com.amazon aws .services.ecr.model.AmazonECRException com.amazon aws. services.ecr.model.AmazonECRException: токен безопасности, включенный в запрос, недействителен. (Сервис: AmazonECR; Код состояния: 400; Код ошибки: UnrecognizedClientException; Идентификатор запроса: f6ee624e-acd3-4cd7-a053-21b9c7389d1f) в com.amazon aws .http.AmazonHttpClient $ RequestExecutor.handleClient (*. AmazonHttpClient) 1695) по адресу com.amazon aws .http.AmazonHttpClient $ RequestExecutor.executeOneRequest (AmazonHttpClient. java: 1350) по адресу com.amazon aws .http.AmazonHttpClient $ RequestExecutor.executeHelpClient * 110 (AmazonHelpClient). в com.amazon aws .http.AmazonHttpClient $ RequestExecutor.doExecute (AmazonHttpClient. java: 758) в com.amazon aws .http.AmazonHttpClient $ RequestExecutor.executeWithTimer (AmazonHttpClient) 7: .amazon aws .http.AmazonHttpClient $ RequestExecutor.execute (AmazonHttpClient. java: 714) на com.amazon aws .http.AmazonHttpClient $ RequestExecutor.access $ 500 (AmazonHttpClient. java: 674) на com.amazon. *1026*: 674 amazon aws .http.AmazonHttpClient $ RequestExecutionBuilderImpl.execute (AmazonHttpClient. java: 656) в com.amazon aws .http.AmazonHttpClient.execute (Ama zonHttpClient. java: 520) на com.amazon aws .services.ecr.AmazonECRClient.doInvoke (AmazonECRClient. java: 1848) на com.amazon aws .services.ecr.AmazonECRClient.invoke (AmazonECRClient. java: 1815) на com.amazon aws .services.ecr.AmazonECRClient.invoke (AmazonECRClient. java: 1804) на com.amazon aws .services.ecr.AmazonECRClient.executeGetAuthorizationToken (AmazonECRClient. * 10 *: 1047) на com.amazon aws .services.ecr.AmazonECRClient.getAuthorizationToken (AmazonECRClient. java: 1018) на com.amazon aws .lambda.demo.Hello.handleRequest (Здравствуйте. java: 26) на com.amazon aws .lambda.demo.Hello.handleRequest (Здравствуйте. java: 1)

Я проверил правильность access_key и secret_key.

Do i необходимо передавать доступ и секретный ключ по-разному. Может ли кто-нибудь сообщить мне, как я могу решить эту проблему.

...