private void notifyMessage0(String topicArn, String originalSubject, String message) { String subject = String.format( Locale.ENGLISH, "[%s:%s] %s (%s)", appCodeName, stackName, originalSubject, env.getActiveProfilesAsString()); if (subject.length() > 100) { logger.warn("Topic message subject is truncated. Full subject is: {}", subject); subject = subject.substring(0, 100); } logger.debug("notify message to topic[{}] - {} : {}", topicArn, subject, message); if (topicArn == null || topicArn.isEmpty() || topicArn.equals("arn:aws:sns:null")) { logger.debug("topicArn: NULL"); return; } try { sns.publish( new PublishRequest().withTopicArn(topicArn).withSubject(subject).withMessage(message)); logger.debug("SNS Notification published: {} - {}", topicArn, subject); } catch (Exception e) { // NOPMD logger.error("SNS Publish failed: {} - {} - {}", topicArn, subject, message, e); } }
/** * 開発担当者にメッセージを通知する。 * * @param subject タイトル * @param messageMap メッセージ * @param t 例外 * @since 0.3 */ public void notifyDev(String subject, Map<String, String> messageMap, Throwable t) { messageMap.put("environment", env.toString()); if (instanceInfo != null) { messageMap.put("instanceMetadata", Jackson.toJsonString(instanceInfo)); } else if (instanceMetadata != null) { @SuppressWarnings("deprecation") String metadataString = instanceMetadata.toString(); messageMap.put("instanceMetadata", metadataString); } if (t != null) { messageMap.put("stackTrace", toString(t)); } notifyMessage0(devTopicArn, subject, createMessage(messageMap)); }