Создание интеграции api-gateway lambda с помощью aws-cli
Мне нужно создать API-шлюз с помощью клиента aws. я успешно создаю и интегрирую свою функцию aws-lambda с помощью веб-консоли. Но меня путают с aws-клиентом. Вот шаги, которым я следовал.
- Создайте API gateway и интегрируйтесь с моей образцовой функцией lambda с помощью веб-консоли.
- развертывание созданного api и экспорт в виде файла json.
Создайте новый API-шлюз, используя экспортированный JSON-файл с помощью aws-cli. команда нравится этот.
aws apigateway import-rest-api --body file://tmpfile.json --region us-east-1;
Но он создал только ресурсы и методы.
Для метода integrate api с моей лямбда-функцией. я выполняю команду следующим образом
aws apigateway put-integration --rest-api-id 42ku123id8u3a --resource-id core-api-dev --http-method DELETE --type AWS --integration-http-method POST --uri 'arn:aws:lambda:us-east-1:my-lambda-function-arn' --region us-east-1
Но это производит сообщение об ошибке, как это
Произошла ошибка (NotFoundException) при вызове операции PutIntegration: указан недопустимый идентификатор ресурса
Можно ли интегрировать метод api gateway с существующей функцией lambda с помощью клиента aws? что такое идентификатор ресурса ?
2 ответов:
Вы можете запустить
aws apigateway get-resources, чтобы получитьresource-idaws apigateway get-resources --rest-api-id 42ku123id8u3a --region us-east-1Он вернет JSon, как
{ "items": [ { "path": "/resource/xxx", "resourceMethods": { "POST": {} }, "id": "_yourresourceid_", "pathPart": "xxx", "parentId": "ai5b02" } ] }Вы можете взять id из этого JSon и использовать его по своей команде для
aws apigateway put-integration
В идеале вы должны экспортировать как JSON в шаге 2 'с расширениями интеграции'. В консоли есть 3 варианта типа экспорта, и средний из них будет включать в себя интеграции и авторизаторы в экспорте. Затем, когда вы импортируете, у вас уже будут интеграции.

Comments