开始使用 Cloud Control API - Cloud Control API
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 Cloud Control API

使用此简短教程开始使用执行资源操作 Amazon Cloud Control API。您将学习关于使用 Cloud Control API 创建、读取、更新、删除和列出资源的基础知识。

步骤 1:创建资源

在本教程中,请创建 AWS::Logs::LogGroup 类型的资源。将该日志组命名为 CloudControlExample,并将其保留策略设置为 90 天。

  1. 在 Amazon Command Line Interface (Amazon CLI) 中,使用以下参数运行create-resource命令:

    • type-name 指定为 AWS::Logs::LogGroup

    • desired-state 指定为一个字符串,其中包含设置所需属性的 JSON:

      {"LogGroupName": "CloudControlExample", "RetentionInDays": 90}

    $ aws cloudcontrol create-resource --type-name AWS::Logs::LogGroup \ --desired-state '{"LogGroupName": "CloudControlExample","RetentionInDays":90}'

    Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 ProgressEvent 对象。

    { "ProgressEvent": { "EventTime": "2021-08-26T22:07:23.347Z", "TypeName": "AWS::Logs::LogGroup", "OperationStatus": "IN_PROGRESS", "Operation": "CREATE", "Identifier": "CloudControlExample", "RequestToken": "758f4a4e-fef4-491a-9b07-00123456789" } }
  2. 要跟踪资源操作请求的状态,请运行带以下参数的 get-resource-request-status 命令:

    • request-token 参数指定为 ProgressEvent 对象中返回的 RequestToken 属性值。

    $ aws cloudcontrol get-resource-request-status --request-token 758f4a4e-fef4-491a-9b07-00123456789

    Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 ProgressEvent 对象。当 Cloud Control API 成功创建资源后,它会将 OperationStatus 值设置为 SUCCESS

    { "ProgressEvent": { "EventTime": "2021-08-26T22:29:23.326Z", "TypeName": "AWS::Logs::LogGroup", "OperationStatus": "SUCCESS", "Operation": "CREATE", "Identifier": "CloudControlExample", "RequestToken": "758f4a4e-fef4-491a-9b07-00123456789" } }

步骤 2:读取(描述)资源

接下来,读取您刚创建的资源的当前状态。

  • 在中 Amazon CLI,使用以下参数运行get-resource命令:

    • identifier 指定为创建资源时 ProgressEvent 对象中返回的 identifier 属性值。在本例中,它是 CloudControlExample,即您为日志组指定的名称。

    $ aws cloudcontrol get-resource --type-name AWS::Logs::LogGroup --identifier CloudControlExample

    Cloud Control API 返回有关资源当前状态的详细信息,包括其属性和设置的模型。在本例中,这包括资源创建时由 Amazon Ev CloudWatch ents 生成的属性。Arn

    { "TypeName": "AWS::Logs::LogGroup", "ResourceDescription": { "Identifier": "CloudControlExample", "ResourceModel": '{"RetentionInDays": 90, "LogGroupName": "CloudControlExample", "Arn": "arn:aws:logs:us-west-2:090123456789:log-group:CloudControlExample:*"}' } }

步骤 3:更新资源

接下来,更新日志组,将保留策略天数翻一番,使其达到 180 天。

  1. 在中 Amazon CLI,使用以下参数运行update-resource命令:

    • type-name 指定为 AWS::Logs::LogGroup

    • identifier 指定为创建资源时 ProgressEvent 对象中返回的 identifier 属性值。在本例中,它是 CloudControlExample,即您为日志组指定的名称。

    • patch-document 参数指定为字符串,其中包含的 JSON 表示将保留策略更新为 180 天的替换操作。

      [{"op": "replace", "path": "RetentionInDays", "value": 180}]

      有关撰写补丁文档的详细信息,请参阅编写补丁文档

    $ aws cloudcontrol update-resource --type-name AWS::Logs::LogGroup \ --identifier CloudControlExample \ --patch-document '[{"op": "replace", "path": "RetentionInDays", "value":180}]'

    Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 ProgressEvent 对象。

    { "ProgressEvent": { "EventTime": "2021-08-26T22:29:22.547Z", "ResourceModel": '{"RetentionInDays":180,"LogGroupName":"CloudControlExample"}', "TypeName": "AWS::Logs::LogGroup", "OperationStatus": "IN_PROGRESS", "Operation": "UPDATE", "Identifier": "CloudControlExample", "RequestToken": "2026055d-f21c-4b50-bd40-111111111111" } }
  2. 要跟踪资源操作请求的状态,请运行带以下参数的 get-resource-request-status 命令:

    • request-token 参数指定为 ProgressEvent 对象中返回的 RequestToken 属性值。

    $ aws cloudcontrol get-resource-request-status --request-token 2026055d-f21c-4b50-bd40-123456789012

    Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 ProgressEvent 对象。当 Cloud Control API 成功更新资源后,它会将 OperationStatus 值设置为 SUCCESS

    { "ProgressEvent": { "EventTime": "2021-08-26T22:29:23.326Z", "TypeName": "AWS::Logs::LogGroup", "OperationStatus": "SUCCESS", "Operation": "UPDATE", "Identifier": "CloudControlExample", "RequestToken": "2026055d-f21c-4b50-bd40-123456789012" } }

步骤 4:列出特定类型的所有资源

接下来,使用 Cloud Control API 发现 Amazon Web Services 账户中的资源。

  • 在中 Amazon CLI,使用以下参数运行list-resources命令:

    • type-name 指定为 AWS::Logs::LogGroup

    $ aws cloudcontrol list-resources --type-name AWS::Logs::LogGroup

    Cloud Control API 会按主标识符返回账户中 AWS::Logs::LogGroup 资源的列表。这包括 CloudControlExample、您在本教程中创建的资源,以及账户中已存在的任何其他日志组。此外,对于 AWS::Logs::LogGroup 资源,list-resources 返回的信息包括每个资源的属性。

    { "TypeName": "AWS::Logs::LogGroup", "ResourceDescriptions": [ { "Identifier": "CloudControlExample", "Properties": '{"RetentionInDays":180, "LogGroupName": "CloudControlExample", "Arn":"arn:aws:logs:us-west-2:090123456789:log-group:CloudControlExample:*"}' }, { "Identifier": "AnotherLogGroupResourceExample", "Properties": '{"RetentionInDays": 90, "LogGroupName": "AnotherLogGroupResourceExample", "Arn": "arn:aws:logs:us-west-2:011111111111:log-group:AnotherLogGroupResourceExample:*"}' }, ] }

第 5 步:删除资源

最后,从本教程中删除要清理的日志组。

  1. 在中 Amazon CLI,使用以下参数运行delete-resource命令:

    • type-name 指定为 AWS::Logs::LogGroup

    • identifier 指定为创建资源时 ProgressEvent 对象中返回的 identifier 属性值。在本例中,它是 CloudControlExample,即您为日志组指定的名称。

    $ aws cloudcontrol delete-resource --type-name AWS::Logs::LogGroup --identifier CloudControlExample

    Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 ProgressEvent 对象。

    { "ProgressEvent": { "EventTime": "2021-08-26T22:50:20.037Z", "TypeName": "AWS::Logs::LogGroup", "OperationStatus": "IN_PROGRESS", "Operation": "DELETE", "Identifier": "CloudControlExample", "RequestToken": "bb0ed9cd-84f9-44c2-b638-000000000000" } }
  2. 要跟踪资源操作请求的状态,请运行带以下参数的 get-resource-request-status 命令:

    • request-token 参数指定为 ProgressEvent 对象中返回的 RequestToken 属性值。

    $ aws cloudcontrol get-resource-request-status --request-token 2026055d-f21c-4b50-bd40-111111111111

    Cloud Control API 会返回一个包含有关资源操作请求状态的信息的 ProgressEvent 对象。当 Cloud Control API 成功删除资源后,它会将 OperationStatus 值设置为 SUCCESS

    { "ProgressEvent": { "EventTime": "2021-08-26T22:50:20.831Z", "TypeName": "AWS::Logs::LogGroup", "OperationStatus": "SUCCESS", "Operation": "DELETE", "Identifier": "CloudControlExample", "RequestToken": "bb0ed9cd-84f9-44c2-b638-000000000000" } }

后续步骤

有关在资源中使用云控制 API 的详细信息和示例,请参阅执行资源操作