本文介绍如何使用C++ SDK更新一个事件规则的配置。

示例代码如下:

#include <alibabacloud/event_bridge.hpp>
#include <alibabacloud/sample.hpp>
#include <darabonba/console.hpp>
#include <darabonba/core.hpp>
#include <darabonba/util.hpp>
#include <iostream>
#include <map>
#include <vector>

using namespace std;

using namespace Alibabacloud_Sample;

Alibabacloud_EventBridge::Client Alibabacloud_Sample::Client::createClient() {
  shared_ptr<Alibabacloud_EventBridge::Config> config =
      make_shared<Alibabacloud_EventBridge::Config>();
  //AccessKey ID。
  config->accessKeyId = make_shared<string>("<accessKeyId>");
  //AccessKey Secret。
  config->accessKeySecret = make_shared<string>("<accessKeySecret>");
  //接入点。
  config->endpoint = make_shared<string>("<endpoint>");
  return Alibabacloud_EventBridge::Client(config);
}

void Alibabacloud_Sample::Client::updateEventRuleSample(
    shared_ptr<Alibabacloud_EventBridge::Client> client) {
  try {
    shared_ptr<Alibabacloud_EventBridge::UpdateRuleRequest>
        updateEventRuleRequest =
            make_shared<Alibabacloud_EventBridge::UpdateRuleRequest>();
    updateEventRuleRequest->eventBusName = make_shared<string>("demo-bus");
    updateEventRuleRequest->ruleName = make_shared<string>("myRule");
    updateEventRuleRequest->filterPattern =
        make_shared<string>(string("{\"source\":[\"acs.oss\"],\"type\":[\"oss:"
                                   "BucketQueried:GetBucketStat\"]}"));
    shared_ptr<Alibabacloud_EventBridge::UpdateRuleResponse> resp =
        make_shared<Alibabacloud_EventBridge::UpdateRuleResponse>(
            client->updateRule(updateEventRuleRequest));
    Darabonba_Console::Client::log(make_shared<string>(
        "--------------------update rule success--------------------"));
    Darabonba_Console::Client::log(
        make_shared<string>(Darabonba_Util::Client::toJSONString(
            make_shared<map<string, boost::any>>(resp->toMap()))));
  } catch (std::exception &error) {
    Darabonba_Console::Client::log(error.message);
  }
}

void Alibabacloud_Sample::Client::main(shared_ptr<vector<string>> args) {
  shared_ptr<Alibabacloud_EventBridge::Client> client =
      make_shared<Alibabacloud_EventBridge::Client>(Client::createClient());
  Client::updateEventRuleSample(client);
}