0.1.1 • Published 10 months ago

ac-support-connector v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

AC Support Connector

This module sends unified support payloads to SQS. A dedicated service (not part of the connector) then processes those SQS messages and delivers the support messages to different channels (e.g. Teams, a helpdesk, etc)

Node.js CI

Prerequisites

Create a SQS queue (e.g. supportQueue) and use a policy that allows all (or selected) IAM users from the account to send messages to the queue:

{
      "Sid": "Statement1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNTID:root"
      },
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:eu-central-1:ACCOUNTID:supportQueue"
    }

The function itself uses the default AWS profile on the machine or a set profile. You can set the profile using export profile=PROFILE_NAME.

Usage

// Init during bootstrap

const supportConnector = require('ac-support-connector')

await supportConnector.init({
  serviceName: 'my-service',
  instanceId: 'abc123' // optional unique identifier (for the instance the service is running on)
  sqsQueue: 'mySupportList' // optional SQS queue name, if none set, defaults to 'supportQueue'
})

// now send logs like this

await supportConnector.createMessage({ 
  subject: 'Operation failed',
  text: 'The operation ABC failed due to missing parameter',
  level: 'warn' // optional, if none is set, the level is info
})

Parameters

Init

ParameterTypeUsage
serviceNamestringName of the service sending the support ticket
regionstring OPTIONALAWS region
instanceIdstring OPTIONALUnique identifier, if service runs on multiple machines
sqsQueuestring OPTIONALName of AWS SQS queue. If not send, defaults to 'supportQueue'

Create Message

ParameterTypeUsage
subjectstringSubject of the message
textstringText of the message
levelstringLevel of the message, if not set defaults to info. Available: error, warn, debug, verbose, info
blockintegerSeconds before the message is sent again (if the error occurs again). If Redis is not available, memory is used.

Links

License

Copyright AdmiralCloud AG, Mark Poepping