本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 Cloud Control API
使用此简短教程开始使用执行资源操作 AWS Cloud Control API。您将学习关于使用 Cloud Control API 创建、读取、更新、删除和列出资源的基础知识。
步骤 1:创建资源
在本教程中,请创建
类型的资源。将该日志组命名为 AWS::Logs::LogGroup
CloudControlExample
,并将其保留策略设置为 90 天。
-
在 AWS Command Line Interface (AWS 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" } }
-
-
要跟踪资源操作请求的状态,请运行带以下参数的
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:读取(描述)资源
接下来,读取您刚创建的资源的当前状态。
-
在中 AWS 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 天。
-
在中 AWS 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" } }
-
-
要跟踪资源操作请求的状态,请运行带以下参数的
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 发现 AWS 账户中的资源。
-
在中 AWS 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 步:删除资源
最后,从本教程中删除要清理的日志组。
-
在中 AWS 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" } }
-
-
要跟踪资源操作请求的状态,请运行带以下参数的
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 的详细信息和示例,请参阅云控制API资源操作。