关于AWS Console
对于API Gateway
,可以在api
的root
(/
)中添加新的method
,而无需先添加新的资源。AWS API网关 - 如何通过CLI或GO aws-sdk将方法添加到根资源?
但我不知道如何做到这一点与aws cli
或aws-sdk
(GO)。
这甚至可能吗?
PS:最终我想通过terraform
来做到这一点。
关于AWS Console
对于API Gateway
,可以在api
的root
(/
)中添加新的method
,而无需先添加新的资源。AWS API网关 - 如何通过CLI或GO aws-sdk将方法添加到根资源?
但我不知道如何做到这一点与aws cli
或aws-sdk
(GO)。
这甚至可能吗?
PS:最终我想通过terraform
来做到这一点。
好的,我想我至少找到了terraform
的答案。
得到我们想要添加的方法root resource
来,我们就可以使用
aws_api_gateway_rest_api.ApiName.root_resource_id
高兴你发现在terraform这样的答案。
如果你想在aws-cli中使用,请使用put-method。
您可以按照以下步骤使用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
我不确定我是否按照你所说的。当您在API网关上创建新方法时,您可以同时将其连接到资源(即使在控制台中),因为实际上该方法是资源的一部分(定义方法在AWS控制台中的资源下)。因此,使用Terraform时,创建新方法时,您必须提供方法的资源。 – ydaetskcoR