为" AWS :: ApiGateway :: Resource"指定ParentId;在CloudFormation模板中

时间:2018-06-14 14:43:01

标签: amazon-web-services yaml amazon-cloudformation

如何指定现有的" 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做到这一点?

2 个答案:

答案 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"
          ]
        }

享受!