aws-producer-service
Screwdriver AWS Integration Producer Service
Producer Service for Screwdriver Kafka Queue
This service acts as a message producer and provides and interface to publish messages to Screwdriver Kafka Instance.
Table of Contents
Installation and Usage
npm install screwdriver-aws-producer-service
Configuration
The configuration for the package
Parameter | Type | Default | Description |
---|---|---|---|
enabled | bool | true | Flag for enabling broker config |
hosts | array | [] | Array of broker endpoints |
sasl | object | sasl object | |
sasl.mechanism | string | scram-sha-512 | sasl mechanism |
sasl.secretId | string | - | AWS secret manager id for sasl secret |
clientId | string | - | Client id connecting to kafka brokers |
accessKeyId | string | - | AWS access key id |
secretAccessKey | string | - | AWS secret key id |
region | string | - | AWS region |
kafka:
# flag for kafka broker
enabled: true
# kafka brokers list
hosts: KAFKA_BROKERS_LIST
# sasl options
sasl:
# sasl mechanism
mechanism: scram-sha-512
# secret id for sasl/scram
secretId: fakesecret
# client id of the producer
clientId: sd-producer
# Amazon access key
accessKeyId: KAFKA_ACCESS_KEY_ID
# Amazon secret access key
secretAccessKey: KAFKA_ACCESS_KEY_SECRET
# AWS region
region: AWS_REGION
Methods
Producer Methods
connect
Expected Outcome
Connects as a client instance to the kafka broker based on the specified configuration
Expected Return
A Promise that resolves to a Kafka producer object.
sendMessage
Expected Outcome
Sends a message to a kafka topic.
Required Parameters
Parameter | Type | Description |
---|---|---|
producer | Object | The producer object after calling connect() |
data | Object | The message data object |
topic | String | The name of the topic |
messageId | String | The id of the message |
Admin Methods
connectAdmin
Expected Outcome
Connects as a client instance to the kafka broker based as an admin with elevated permissions on the specified configuration
Expected Return
A Promise that resolves to a Kafka admin object.
createTopic
Expected Outcome
Creates a kafka topic and disconnects the admin connection.
Required Parameters
Parameter | Type | Description |
---|---|---|
admin | Object | The admin object after calling connectAdmin() |
topic | String | The name of the topic |
getTopicMetadata
Expected Outcome
Gets kafka metadata for the give kafka topic and disconnects the admin connection.
Required Parameters
Parameter | Type | Description |
---|---|---|
admin | Object | The admin object after calling connectAdmin() |
topic | String | The name of the topic |
Expected Return
A Promise that resolves to a Kafka topic metadata object.
Testing
npm test
Contribute
To start contributing to Screwdriver, have a look at our guidelines, as well as pointers on where to start making changes, in our contributing guide.
License
Code licensed under the BSD 3-Clause license. See LICENSE file for terms.