В StdLib мы недавно создали для наших пользователей служебную службу под названием utils. Эта услуга началась с нашего желания предоставить шаблоны услуг для наших пользователей, когда они создают новые услуги и проекты с нашей платформой.

По мере того, как мы росли и продолжали использовать наши собственные технологии, чтобы двигаться быстрее, нам стало ясно, что, хотя наши процессы построения с использованием микросервисов просты, были времена, когда мы дублировали части основных функций, которыми мы могли бы легко делиться друг с другом. проекты. Например, один из наших инженеров создал навык Alexa, который отправляет SMS, а несколько недель спустя другой инженер включил уведомления на основе SMS в проект хакатона. Вместо того, чтобы создавать одну службу, охватывающую эти идентичные варианты использования, каждый инженер создал свою собственную версию микросервиса, который отправляет SMS-сообщения.

Это вдохновило нас на выпуск небольших, простых в использовании, но мощных сервисов под учетной записью utils. Мы рады показать вам, что мы уже создали, и надеемся, что вы сочтете это ценным! Как и все службы StdLib, эти служебные службы доступны в Ruby, Python, Node и в веб-браузерах.

utils.storage - высокодоступный сервис хранения ключей и значений с DynamoDB

Одна из основных проблем для наших пользователей, когда они начинают работать с небольшими сервисами, - это хранилище. Никто не хочет создавать кластер MongoDB или настраивать PostgresDB, когда они просто хотят создать простой навык Alexa или бота Slack, которому просто нужно сохранить пару имен или адресов электронной почты.

Мы рады представить нашу высокодоступную службу хранения ключей и значений (построенную на основе DynamoDB). Это бесплатно и дает вам возможность сохранить любое JSON-сериализуемое значение в ключ всего за несколько строк кода:

// Retrieve your Library Token at dashboard.stdlib.com/dashboard
const lib = require('lib')({token: STDLIB_LIBRARY_TOKEN});
// Set a String
lib.utils.storage.set('key', 'value', (err, value) => {
  // Do something with result
});
// Get a key's value
lib.utils.storage.get('key', (err, value) => {
  // Do something with result
});

Он привязан к вашей учетной записи пользователя StdLib, поэтому помните об этом при использовании с несколькими службами.

Подробнее о том, как им пользоваться, читайте здесь.

utils.sms - простая и быстрая доставка SMS с Twilio

Как упоминалось выше, один вариант использования, с которым мы сталкивались несколько раз при создании наших собственных приложений с помощью StdLib, - это отправка текстовых сообщений себе или другим людям с результатом работы службы. Это простой и легкий способ интегрировать уведомления в ваши проекты. Например, я создал навык Alexa, который отправляет моей девушке текстовое сообщение о времени прибытия, когда я выхожу из офиса.

Существует масса разнообразных и интересных вариантов использования SMS, и мы хотели упростить этот процесс:

const lib = require('lib');

lib.utils.sms({
  to: '415xxxxxxx',
  body: 'Hello!'
}, (err, result) => {
  // handle err
});

Существует ограничение по количеству, которое вы можете использовать (в основном для защиты от спама), но вы не должны сталкиваться с этим в обычных случаях использования.

Подробнее о том, как им пользоваться, читайте здесь.

utils.image - сервис форматирования изображений для файлов и объектов AWS с ImageMagick

Этот сервис является результатом опыта и головной боли, которые мы прошли при настройке и использовании ImageMagick. Каким бы замечательным ни был ImageMagick, его на удивление сложно настроить и правильно использовать на всем парке машин.

В ответ на это мы выпустили utils.image. Он работает как с загруженными файлами, так и с объектами AWS (вам нужно будет ввести учетные данные, которые дадут ему доступ для чтения файла - подробности см. Здесь). С utils.image вы можете изменять размер, обрезать, размывать и иным образом манипулировать любым изображением программно с помощью всего нескольких строк кода:

const fs = require('fs');
const lib = require('lib');

const file = fs.readFileSync('./image-file.png');
// Resize and flip the image
lib.utils.image.format(file, {
  resize: [300, 200],
  flip: true
}, (err, convertedImage) => {
  // Do something
});

Подробнее о том, как им пользоваться, читайте здесь.

Мы планируем продолжить добавление часто используемых сервисов в нашу службу утилит. Если у вас есть идеи по поводу услуг, которые, по вашему мнению, будут ценными, напишите нам в Твиттере @StdLibHQ!

Если вы еще не слышали о StdLib - зацените. Мы хотели бы знать, что вы думаете!

Джейкоб Ли - инженер-программист в StdLib. Он бывший гуглер, который любит играть в сквош и тусоваться в Sunset, где расположены офисы StdLib. Следуйте за ним в Twitter здесь!