0.1.1 • Published 10 months ago
ac-support-connector v0.1.1
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)
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
Parameter | Type | Usage |
---|---|---|
serviceName | string | Name of the service sending the support ticket |
region | string OPTIONAL | AWS region |
instanceId | string OPTIONAL | Unique identifier, if service runs on multiple machines |
sqsQueue | string OPTIONAL | Name of AWS SQS queue. If not send, defaults to 'supportQueue' |
Create Message
Parameter | Type | Usage |
---|---|---|
subject | string | Subject of the message |
text | string | Text of the message |
level | string | Level of the message, if not set defaults to info. Available: error, warn, debug, verbose, info |
block | integer | Seconds 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