0

關於AWS Console對於API Gateway,可以在apiroot/)中添加新的method,而無需先添加新的資源。AWS API網關 - 如何通過CLI或GO aws-sdk將方法添加到根資源?

但我不知道如何做到這一點與aws cliaws-sdk(GO)。

這甚至可能嗎?

PS:最終我想通過terraform來做到這一點。

+0

我不確定我是否按照你所說的。當您在API網關上創建新方法時,您可以同時將其連接到資源(即使在控制檯中),因爲實際上該方法是資源的一部分(定義方法在AWS控制檯中的資源下)。因此,使用Terraform時,創建新方法時,您必須提供方法的資源。 – ydaetskcoR

回答

0

好的,我想我至少找到了terraform的答案。

得到我們想要添加的方法root resource來,我們就可以使用

aws_api_gateway_rest_api.ApiName.root_resource_id

0

高興你發現在terraform這樣的答案。

如果你想在aws-cli中使用,請使用put-method

0

您可以按照以下步驟使用aws-cli來實現它。

您可以創建aws apigateway put-method一個新的方法,其中需要進行以下參數:--rest-API-ID,--resource-ID,--http法,--authorization型

首先,找到您的--rest-api-id從json-output中添加到根資源的方法。

aws apigateway get-rest-apis 

--resource-ID是這裏的關鍵組成部分。 rest-api的root-resource-id可以通過返回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