如何指定现有的" AWS :: ApiGateway :: RestApi" for" AWS :: ApiGateway :: Resource"在CloudFormation模板中?例如,我已经创建了API Gateway REST API,我想在我的模板中指定它:
MyTestResource:
Type: 'AWS::ApiGateway::Resource'
Properties:
RestApiId:
Ref: 'RestApi'
ParentId: <<placeholder_for_my_value>>
如果我描述&#34; AWS :: ApiGateway :: RestApi&#34;在我的模板中,我也可以这样做:
ParentId: !GetAtt "RestApi.RootResourceId"
但是我如何为现有的REST API做到这一点?
答案 0 :(得分:1)
您可以通过控制台查找现有REST API的资源ID 点击&#34;您的REST API&#34; - &GT; &#34;资源&#34; 在左上方,你会看到像
这样的东西 APIs>YOUR_API_NAME (YOUT_API_ID)>Resources>/your_already_existing_resource (YOUR_RESOURCE_ID)
然后您可以将资源ID指定为&#34; parentId&#34;。
或者,使用aws
cli。
https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-resources.html
您需要指定rest-api-id
,您可以从控制台或通过https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-rest-apis.html
my $query = $connection->prepare("select * from table");
$query->execute();
while (my @row=$query->fetchrow_array)
{
print format_row(@row);
}
答案 1 :(得分:1)
实际上,如果需要在现有API中指定新资源,则可以在CloudFormation的资源选项卡中检查堆栈,并查看生成API的逻辑依据。
以逻辑方式将您指定的LogicalId命名为 RestApiLogicalId :
"ParentId": {
"Fn::GetAtt": [
"RestApiLogicalId",
"RootResourceId"
]
}
享受!