Как да задам версията на API, която да се извиква в API Gateway при интегриране с AWS Service CloudWatch?

Получавам следното съобщение за грешка при извикване на действия за CloudWatch в API Gateway.

"Error": {
    "Code": "InvalidAction",
    "Message": "Could not find operation DescribeAlarms for version 2009-05-15",
    "Type": "Sender"
}

Използвах DescribeAlarms за тестване. Моята настройка е следната.

  • Тип интеграция = AWS услуга
  • AWS услуга = CloudWatch
  • HTTP метод = POST
  • Действие = Опишете аларми

Грешката препраща към API версия 2009-05-15, която има само ListMetrics и GetMetricStatistics според нейния документация на страница 54. ListMetrics наистина работи според очакванията с моята настройка.

Текущата версия е 2010-08-01, но така или иначе не виждам да се споменава това в API Gateway. В пример за POST заявка в документацията показва заглавка с етикет x-amz-target със стойност GraniteServiceVersion20100801.API_Name.

Моята интерпретация е, че мога да поставя Name = x-amz-target и стойност „GraniteServiceVersion20100801.DescribeAlarms“ в моя http заглавка за заявката за интегриране в API Gateway.

Това не променя отговора и дава същото съобщение за грешка.

Използвах също --debug в CLI, когато извиквах describe-alarms, и в тялото показва...

"body": {
   "Action":"DescribeAlarms",
   "Version":"2010-08-01"
}

Така че аз също зададох http заглавки да включват Content-Type със стойност 'application/x-amz-json-1.1' и след това поставих

{
   "Action":"DescribeAlarms",
   "Version":"2010-08-01"
}

но и с това нищо не се промени.

Всяка помощ или насоки ще бъдат много оценени.


person pixpixpix    schedule 15.12.2020    source източник


Отговори (1)


Под Интегриране на метод -› Параметри на низ на заявка за URL

Добавих версия като име и „2010-08-01“ под Mapped From.

Всички действия вече работят според очакванията.

person pixpixpix    schedule 16.12.2020