0

На AWS Console для API Gateway можно добавить новый method в root() вашего api без необходимости добавлять новый ресурс в первую очередь.AWS API Gateway - Как добавить метод для корневого ресурса через CLI или GO aws-sdk?

Но я не могу понять, как это сделать с помощью aws cli или aws-sdk (для GO).

Возможно ли это?

PS: В конце концов я хочу сделать это через terraform.

+0

Я не уверен, что следую тому, что вы говорите. Когда вы создаете новый метод в шлюзе API, вы связываете его с ресурсом одновременно (даже в консоли), поскольку на самом деле этот метод является частью ресурса (методы определения находятся в ресурсах в консоли AWS). Таким образом, при использовании Terraform при создании нового метода вы должны предоставить ресурс, для которого предназначен метод. – ydaetskcoR

ответ

0

ОК, я думаю, что нашел ответ хотя бы на terraform.

Чтобы получить root resource мы хотим, чтобы добавить метод, мы можем использовать

aws_api_gateway_rest_api.ApiName.root_resource_id

0

Рад, что вы нашли ответ на делать это в терраформировать.

Если вы хотите сделать это в aws-cli, используйте put-method.

0

Вы можете достичь этого, используя aws-cli, выполнив следующие шаги.

Вы можете создать новый метод по aws apigateway put-method, где требуются следующие аргументы: --rest-Апи-идентификатор, --resource-идентификатор, --http-метод, --authorization типа

Во-первых, найти ваш --rest-api-id из json-вывода, к которому будет добавлен метод для корневого ресурса.

aws apigateway get-rest-apis 

--resource-идентификатор является ключевой частью здесь. Идентификатор root-resource для rest-api может получить следующую команду, которая возвращает объект JSON.

aws apigateway get-resources --rest-api-id <restApiId> | jq -r '.items[0].id' 

jq - быстрый, легкий, гибкий процессор CLI JSON. Посетите здесь для получения дополнительной информации «http://blog.librato.com/posts/jq-json»

Замените значения и вызовите функцию из CLI.

Пример:

aws apigateway put-method --rest-api-id hgwwri3w30 --http-method POST --authorization-type NONE --resource-id `aws apigateway get-resources --rest-api-id hgwwri3w30 | jq -r '.items[0].id'` 

В случае успеха вы получите ответ, как это,

{ 
    "httpMethod": "POST", 
    "authorizationType": "NONE", 
    "apiKeyRequired": false 
} 

Вы можете настроить метод либо из консоли сейчас или во время вызова функции себя, используя другие параметры.

aws apigateway put-method help