Коришћење АВС ДинамоДБ у Ноде.јс апликацији

Кључне Такеаваис

  • ДинамоДБ је моћна НоСКЛ база података коју нуди АВС и која може да рукује великим количинама различитих података без угрожавања перформанси, издржљивости или поузданости.
  • Да бисте започели са ДинамоДБ у Ноде.јс, потребно је да инсталирате клијент-динамодб пакет из авс-сдк-а и конфигуришете своје акредитиве.
  • ДинамоДБ вам омогућава да лако креирате табеле, пишете и читате податке, ажурирате записе и бришете записе користећи клијентове методе и параметре. Нуди флексибилност и скалабилност за ефикасан развој апликација.

За велики део модерног развоја апликација потребна је мешавина робусних програмских језика и моћних база података.

Једно од решења које нуди Амазон Веб Сервицес (АВС) је ДинамоДБ, алатка која може да револуционише управљање вашим подацима. Користећи га, можете брзо обезбедити базу података за руковање великим количинама различитих података.

Шта је ДинамоДБ?

АВС нуди услуге за различите потребе база података, као што је Амазон РДС за релационе базе података и ДоцументДБ за базе података докумената као што је МонгоДБ. ДинамоДБ је НоСКЛ база података за складиштење података у формату кључ/вредност.

ДинамоДБ може да рукује великим количинама података широм дистрибуиране инфраструктуре без угрожавања перформанси, издржљивости или поузданости. Нуди флексибилан модел, омогућавајући вам да лако складиштите и постављате упите за податке, било да су структурирани или неструктурирани.

Можете користити ДинамоДБ као базу података за различите типове апликација. Можете му приступити директно са АВС веб конзоле и програмски преко АВС-ЦЛИ или из веб апликација које користе АВС-СДК.

Почетак рада са ДинамоДБ у Ноде.јс

Постоји много алата за прављење позадинских АПИ-ја у Ноде.јс-у и ви сте слободни да изаберете базу података за свој АПИ када радите са било којим од ових алата. Ноде.јс пружа широку подршку за спољне услуге укључујући базе података као што је АВС ДинамоДБ.

Све што вам треба да приступите АВС услузи из ваше Ноде апликације је клијентски авс-сдк пакет за ту услугу. На пример, да бисте приступили ДинамоДБ-у, потребно је да инсталирате клијент-динамодб пакет под авс-сдк.

  Развој људских ресурса (ХРД) наспрам управљања људским ресурсима (ХРМ): Објашњене разлике

Покрените ову команду у директоријуму вашег пројекта да бисте инсталирали пакет:

 npm install @aws-sdk/client-dynamodb

Након што инсталирате авс-сдк/цлиент-динамодб у ваш Ноде.јс пројекат, потребно је да додате регион ваше ДинамоДБ табеле у конфигурацију пре него што ступите у интеракцију са њом. Ово ћете урадити када иницијализујете ДинамоДБ клијент.

Ако сте раније инсталирали и користили АВС-ЦЛИ на свом рачунару, вероватно већ имате постављене АВС акредитиве у свом окружењу, а СДК ће аутоматски добити ваше вредности из окружења.

Али ако нисте, можете отићи до АВС управљање приступом идентитету (ИАМ) сервис у вашој конзоли и креирајте новог корисника. Након креирања корисника, можете добити ИД кључа за приступ и тајни кључ, који су ваши лични акредитиви.

Додајте ове акредитиве свом окружењу тако што ћете покренути следеће команде терминала за своју платформу:

На Уник-у, Линук-у или мацОС-у:

 export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'

У оперативном систему Виндовс (ЦМД):

 set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'

У оперативном систему Виндовс (ПоверСхелл):

 $env:AWS_ACCESS_KEY_ID='your access key ID'
$env:AWS_SECRET_ACCESS_KEY='you secret access key'

Затим, назад у свом пројекту Ноде.јс, креирајте нову датотеку и назовите је динамодб.јс. У овој датотеци инстанцирајте нови АВС ДинамоДБ клијент користећи следећи код:

 const { DynamoDB } = require('@aws-sdk/client-dynamodb')

const region = "us-east-1"

const client = new DynamoDB({ region })

Прилично једноставно! АВС се стара да не излажете ниједан од својих безбедносних акредитива у свом коду, тако да док горњи код покушава да креира клијента, прво чита приступни кључ и тајни кључ из вашег окружења.

Новокреирани клијент вам омогућава да обављате различите операције, као што су креирање табела и читање и писање података.

ДинамоДБ је без шема, баш као и друге НоСКЛ базе података, тако да увек можете додати нове атрибуте (поља) табели у било ком тренутку. Због тога је потребно само да додате атрибуте који ће служити као примарни кључеви у ДинамоДБ табелу када је креирате.

Погледајте следећи код који креира нову табелу (купац) у ДинамоДБ:

 const createCustomerTable = async () => {
    const params = {
        TableName: "Customer",
        AttributeDefinitions: [
            {
                AttributeName: "Email",
                AttributeType: "S"
            },
        ],
        KeySchema: [
            {
                AttributeName: "Email",
                KeyType: "HASH"
            }
        ],
        ProvisionedThroughput: {
            ReadCapacityUnits: 5,
            WriteCapacityUnits: 5
        }
    };

    client.createTable(params, (err, data) => {
        if (err) {
           console.log(err);
        } else {
            console.log(data);
        }
    });
}

createCustomerTable();

Поље АттрибутеДефинитионс је место где дефинишете кључне атрибуте табеле и њихове типове. Атрибут Емаил овде има тип С што значи да поље очекује стринг као своју вредност. Три доступна типа атрибута су С, Н и Б (Стринг, Нумбер и Бинари).

  5 алата за проверу хостинга за проверу ко хостује веб локацију

Потребна вам је КеиСцхема да бисте дефинисали примарне кључеве који помажу у брзом проналажењу и организовању ставки. ДинамоДБ очекује да атрибути које додате приликом креирања табеле буду кључни атрибути, тако да је е-пошта овде примарни кључ. Морате га додати у КеиСцхема и навести његов КеиТипе (ХАСХ).

Друга доступна вредност КеиТипе-а је РАНГЕ који се користи за кључеве за сортирање. Кључеви за сортирање су корисни у случајевима када можда имате податке са истим ХАСХ кључевима у табели, а желите да их групишете према неким додатним подацима као што су датум или боја, можете да додате додатне податке кључу РАНГЕ.

Трећи важан параметар у горњем коду је ПровисионедТхроугхпут. Овде дефинишете број читања и писања које желите да ДинамоДб дозволи на табели у секунди.

Када покренете горњи код, требало би да добијете излаз који изгледа овако:

Ако проверите контролну таблу ДинамоДБ табела на веб конзоли, видећете да је табела још увек обезбеђена или је већ активна.

Увек узмите у обзир потребе ваше апликације када наведете РеадЦапацитиУнитс и ВритеЦапацитиУнитс јер неприкладна вредност може довести до проблема са перформансама или високих трошкова обрачуна на вашем налогу.

Када будете сигурни да је табела већ активна, можете извршити ЦРУД операције на њој.

Следе неки примери кода који вам показују како да пишете и читате податке из табеле Клијент.

  • Додајте податке у табелу. Да бисте уписали податке у табелу, потребна вам је клијентова метода путИтем. Код испод додаје новог купца у табелу купаца у ДинамоДБ-у.
     const createCustomer = async (customer) => {
        const params = {
            TableName: "Customer",
            Item: customer
        }

        client.putItem(params, (err, data) => {
            if (err) {
               console.error(err)
            } else {
                console.log(data)
            }
        })
    }

    const customerData = {
        Name: { "S": "Timilehin O." },
        Email: { "S": "[email protected]" },
        Age: { "N": "18"},
        Country: { "S": "Nigeria" }
    }

    createCustomer(customerData)

    Објекат парамс садржи ТаблеНаме што је табела у коју пишете и поље Итем које садржи податке које додајете са њиховим специфичним типовима. Обратите пажњу на нова поља која у почетку нису била у табели, овако ДинамоДБ функционише флексибилно. Можете да видите податке у својој бази података у својој конзоли на следећи начин:

      Како да повежете ПС4 или Ксбок контролер на ваш иПхоне или иПад
  • Прочитајте податке из табеле. ДинамоДБ вам омогућава да читате податке на различите начине. Функција скенирања СДК-а чита целу табелу, док гетИтем чита само одређене податке. На пример, код у наставку добија све купце:
     const getAllCustomers = async () => {
        const params = {
            TableName: "Customer"
        }

        const customers = await client.scan(params)
        console.log(customers)
    }

    Док следећи код добија корисника по вредности е-поште:

     const getCustomerByEmail = async (email) => {
        const params = {
            TableName: "Customer",
            Key: {
                Email: { "S": email }
            }
        }

        const customer = await client.getItem(params)
        console.log(customer)
    }

    getCustomerByEmail("[email protected]")

  • Ажурирајте податке у табели. Да бисте ажурирали постојеће податке у табели, користите функцију упдатеИтем пакета за развој софтвера. Следећи код показује како да ажурирате одређени запис:
      const updateCustomerLocation = async (email, age) => {
         const params = {
             TableName: "Customer",
             Key: {
                 Email: { "S": email }
             },
             UpdateExpression: "SET Age = :newAge",
             ExpressionAttributeValues: {
                 ':newAge': { "N": age }
             },
             ReturnValues: "ALL_NEW"
         }

         const updatedCustomer = await client.updateItem(params)
         console.log(updatedCustomer.Attributes)
     }

    Такође можете изабрати да своју функцију учините динамичком тако што ћете изградити изразе за ажурирање из ваших података о ажурирању. Флексибилност ДинамоДБ-а вам омогућава да рукујете сваком операцијом у складу са вашим потребама.

  • Избришите податке из табеле. Да бисте избрисали запис из ДинамоДБ-а, потребна вам је функција делетеИтем и кључ одређеног записа. Ево како да то примените:
     const deleteCustomer = async (email) => {
        const params = {
            TableName: "Customer",
            Key: {
                Email: { "S": email }
            }
        }

        client.deleteItem(params, (err, data) => {
            if (err) {
               console.error(err)
            } else {
                console.log("Customer deleted successfully")
            }
        })
    }

    deleteCustomer("[email protected]")

  • Изградња ефикасних апликација са ДинамоДБ

    Амазон Веб Сервицес наставља да напредује. Пружа приступачну платформу коју можете користити за испоруку ефикасних, сигурних дигиталних решења. ДинамоДБ је савршен избор ако тражите базу података за покретање без бриге о инфраструктури или безбедности.

    Сада сте опремљени свиме што вам је потребно да бисте започели са ДинамоДБ-ом у Ноде.јс-у, и можете са сигурношћу изабрати ДинамоДБ за своју следећу Ноде.јс апликацију.