CloudTrail 使用 SDK for C++ 的範例 - AWS SDK 程式碼範例

文件範例儲存庫中有更多 AWS SDK可用的AWS SDK範例 GitHub 。

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

CloudTrail 使用 SDK for C++ 的範例

下列程式碼範例示範如何使用 AWS SDK for C++ 搭配 來執行動作和實作常見案例 CloudTrail。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 CreateTrail

SDK 適用於 C++
注意

還有更多功能 GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

// Routine which creates an AWS CloudTrail trail. /*! \param trailName: The name of the CloudTrail trail. \param bucketName: The Amazon S3 bucket designate for publishing logs. \param clientConfig: Aws client configuration. \return bool: Function succeeded. */ bool AwsDoc::CloudTrail::createTrail(const Aws::String trailName, const Aws::String bucketName, const Aws::Client::ClientConfiguration &clientConfig) { Aws::CloudTrail::CloudTrailClient trailClient(clientConfig); Aws::CloudTrail::Model::CreateTrailRequest request; request.SetName(trailName); request.SetS3BucketName(bucketName); Aws::CloudTrail::Model::CreateTrailOutcome outcome = trailClient.CreateTrail( request); if (outcome.IsSuccess()) { std::cout << "Successfully created trail " << trailName << std::endl; } else { std::cerr << "Failed to create trail " << trailName << ": " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • 如需API詳細資訊,請參閱 AWS SDK for C++ API 參考CreateTrail中的 。

下列程式碼範例示範如何使用 DeleteTrail

SDK 適用於 C++
注意

還有更多功能 GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

// Routine which deletes an AWS CloudTrail trail. /*! \param trailName: The name of the CloudTrail trail. \param clientConfig: Aws client configuration. \return bool: Function succeeded. */ bool AwsDoc::CloudTrail::deleteTrail(const Aws::String trailName, const Aws::Client::ClientConfiguration &clientConfig) { Aws::CloudTrail::CloudTrailClient trailClient(clientConfig); Aws::CloudTrail::Model::DeleteTrailRequest request; request.SetName(trailName); auto outcome = trailClient.DeleteTrail(request); if (outcome.IsSuccess()) { std::cout << "Successfully deleted trail " << trailName << std::endl; } else { std::cerr << "Error deleting trail " << trailName << " " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • 如需API詳細資訊,請參閱 AWS SDK for C++ API 參考DeleteTrail中的 。

下列程式碼範例示範如何使用 DescribeTrail

SDK 適用於 C++
注意

還有更多功能 GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

// Routine which describes the AWS CloudTrail trails in an account. /*! \param clientConfig: Aws client configuration. \return bool: Function succeeded. */ bool AwsDoc::CloudTrail::describeTrails( const Aws::Client::ClientConfiguration &clientConfig) { Aws::CloudTrail::CloudTrailClient cloudTrailClient(clientConfig); Aws::CloudTrail::Model::DescribeTrailsRequest request; auto outcome = cloudTrailClient.DescribeTrails(request); if (outcome.IsSuccess()) { const Aws::Vector<Aws::CloudTrail::Model::Trail> &trails = outcome.GetResult().GetTrailList(); std::cout << trails.size() << " trail(s) found." << std::endl; for (const Aws::CloudTrail::Model::Trail &trail: trails) { std::cout << trail.GetName() << std::endl; } } else { std::cerr << "Failed to describe trails." << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • 如需API詳細資訊,請參閱 AWS SDK for C++ API 參考DescribeTrail中的 。

下列程式碼範例示範如何使用 LookupEvents

SDK 適用於 C++
注意

還有更多功能 GitHub。尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

// Routine which looks up events captured by AWS CloudTrail. /*! \param clientConfig: Aws client configuration. \return bool: Function succeeded. */ bool AwsDoc::CloudTrail::lookupEvents( const Aws::Client::ClientConfiguration &clientConfig) { Aws::CloudTrail::CloudTrailClient cloudtrail(clientConfig); Aws::String nextToken; // Used for pagination. Aws::Vector<Aws::CloudTrail::Model::Event> allEvents; Aws::CloudTrail::Model::LookupEventsRequest request; size_t count = 0; do { if (!nextToken.empty()) { request.SetNextToken(nextToken); } Aws::CloudTrail::Model::LookupEventsOutcome outcome = cloudtrail.LookupEvents( request); if (outcome.IsSuccess()) { const Aws::Vector<Aws::CloudTrail::Model::Event> &events = outcome.GetResult().GetEvents(); count += events.size(); allEvents.insert(allEvents.end(), events.begin(), events.end()); nextToken = outcome.GetResult().GetNextToken(); } else { std::cerr << "Error: " << outcome.GetError().GetMessage() << std::endl; return false; } } while (!nextToken.empty() && count <= 50); // Limit to 50 events. std::cout << "Found " << allEvents.size() << " event(s)." << std::endl; for (auto &event: allEvents) { std::cout << "Event name: " << event.GetEventName() << std::endl; std::cout << "Event source: " << event.GetEventSource() << std::endl; std::cout << "Event id: " << event.GetEventId() << std::endl; std::cout << "Resources: " << std::endl; for (auto &resource: event.GetResources()) { std::cout << " " << resource.GetResourceName() << std::endl; } } return true; }
  • 如需API詳細資訊,請參閱 AWS SDK for C++ API 參考LookupEvents中的 。