雲端控制 API 入門 - 雲端控制 API

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

雲端控制 API 入門

使用此簡短教學課程,開始使用執行資源作業AWS Cloud Control API。您將學習使用 Cloud Control API 建立、讀取、更新、刪除和列出資源的基礎知識。

步驟 1:建立資源

在本教學課程中,請建立類型的資源AWS::Logs::LogGroup。為這個記錄群組命名CloudControlExample,並將其上的保留原則設定為 90 天。

  1. 在AWS Command Line Interface (AWS CLI) 中,使用下列參數執行create-resource命令:

    • 指定type-nameAWS::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參數指定為RequestToken物件中傳回的ProgressEvent屬性值。

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

    Cloud Control API 會傳回包ProgressEvent含資源作業要求狀態相關資訊的物件。當雲端控制 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 E CloudWatch vents 所產生的屬性。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. 在中AWS CLI,使用下列參數執行update-resource命令:

    • 指定type-nameAWS::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參數指定為RequestToken物件中傳回的ProgressEvent屬性值。

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

    Cloud Control API 會傳回包ProgressEvent含資源作業要求狀態相關資訊的物件。當雲端控制 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:列出特定類型的所有資源

接下來,使用雲端控制 API 探索AWS 帳戶.

  • 在中AWS CLI,使用下列參數執行list-resources命令:

    • 指定type-nameAWS::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. 在中AWS CLI,使用下列參數執行delete-resource命令:

    • 指定type-nameAWS::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參數指定為RequestToken物件中傳回的ProgressEvent屬性值。

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

    Cloud Control API 會傳回包ProgressEvent含資源作業要求狀態相關資訊的物件。當雲端控制 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" } }

後續步驟

如需搭配資源使用 Cloud Control API 的詳細資訊和範例,請參閱執行資源作業