def createEventRule()

in solution/compliance/3.4-sub-resource-changes/python_script/subscription.py [0:0]


    def createEventRule(client, logArchiveUid, logArchiveRole, ruleName):
        global region_id, event_bridge_bus_name, member_account_eventbridge_filter
        try:
            create_event_rule_request = event_bridge_models.CreateRuleRequest()

            target_entry = event_bridge_models.TargetEntry()
            target_entry.id = random.randint(0,10000)
            target_entry.type = "acs.eventbridge"
            target_entry.endpoint = "acs:eventbridge:" + region_id + ":" + logArchiveUid + ":eventbus/default"
            target_entry.push_retry_strategy = "BACKOFF_RETRY"
            # 需要使用指定的Model初始化对象
            param_list = []
            paramObject1 = event_bridge_models.EBTargetParam("AccountType", "CONSTANT", "AnotherAccount", None)
            paramObject2 = event_bridge_models.EBTargetParam("AccountId", "CONSTANT", logArchiveUid, None)
            paramObject3 = event_bridge_models.EBTargetParam("EventBusName", "CONSTANT", event_bridge_bus_name, None)
            paramObject4 = event_bridge_models.EBTargetParam("RAMRoleName", "CONSTANT", logArchiveRole, None)
            paramObject5 = event_bridge_models.EBTargetParam("Body", "ORIGINAL", "", None)
            param_list.append(paramObject1)
            param_list.append(paramObject2)
            param_list.append(paramObject3)
            param_list.append(paramObject4)
            param_list.append(paramObject5)

            target_entry.param_list = param_list
            # 定义Targets 事件列表
            target_entry_list = [
                target_entry
            ]
            create_event_rule_request.rule_name = ruleName
            create_event_rule_request.event_bus_name = event_bridge_bus_name
            # TODO 用户需要参考内部规范,配置对应的过滤条件
            create_event_rule_request.filter_pattern = member_account_eventbridge_filter
            create_event_rule_request.status = "enable"
            create_event_rule_request.targets = target_entry_list

            response = client.create_rule(create_event_rule_request)
            ConsoleClient.log("--------------------create rule success--------------------")
            ConsoleClient.log(UtilClient.to_jsonstring(response.to_map()))
        except Exception as error:
            ConsoleClient.log(error.message)