class HuaweiCloudSmnAlertNotifyHandlerImpl extends AbstractAlertNotifyHandlerImpl {
    private final ResourceBundle bundle = ResourceBundleUtil.getBundle("alerter");

    private final Map<String, SmnClient> smnClientMap = new ConcurrentHashMap<>();

    @Override
    public void send(NoticeReceiver receiver, NoticeTemplate noticeTemplate, Alert alert) {
        try {
            var smnClient = getSmnClient(receiver);
            var request = new PublishMessageRequest()
                    .withTopicUrn(receiver.getSmnTopicUrn());
            var body = new PublishMessageRequestBody()
                    .withSubject(bundle.getString("alerter.notify.title"))
                    .withMessage(renderContent(noticeTemplate, alert));
            request.withBody(body);
            var response = smnClient.publishMessage(request);
            log.debug("huaweiCloud smn alert response: {}", response);
        } catch (Exception e) {
            throw new AlertNoticeException("[Huawei Cloud Smn Notify Error] " + e.getMessage());
        }
    }

    private SmnClient getSmnClient(NoticeReceiver receiver) {<FILL_FUNCTION_BODY>}

    @Override
    public byte type() {
        return 11;
    }
}

        var key = receiver.getSmnProjectId() + receiver.getSmnAk() + receiver.getSmnSk() + receiver.getSmnRegion();
        if (smnClientMap.containsKey(key)) {
            return smnClientMap.get(key);
        }
        var auth = new BasicCredentials()
                .withProjectId(receiver.getSmnProjectId())
                .withAk(receiver.getSmnAk())
                .withSk(receiver.getSmnSk());

        var smnAsyncClient = SmnClient.newBuilder()
                .withCredential(auth)
                .withRegion(SmnRegion.valueOf(receiver.getSmnRegion()))
                .build();
        smnClientMap.put(key, smnAsyncClient);
        return smnAsyncClient;
    
<methods>public void onEvent(org.apache.hertzbeat.common.support.event.SystemConfigChangeEvent) <variables>protected static final java.time.format.DateTimeFormatter DTF,private static final java.lang.String NUMBER_FORMAT,protected org.apache.hertzbeat.alert.AlerterProperties alerterProperties,protected java.util.ResourceBundle bundle,protected org.apache.hertzbeat.manager.service.NoticeConfigService noticeConfigService,protected RestTemplate restTemplate