Az Amazon NoSQL adatbázis-szolgáltatásához az Amazon DynamoDB-t használhatjuk. Ebben a példában megmutatom, hogyan lehet létrehozni egy egyszerű webalkalmazást az Express.js és az EJS (Embedded JavaScript templating) használatával Node.js-ben, ami képes adatok olvasására és írására egy DynamoDB táblában.
- Összetevők
- DynamoDB tábla létrehozása
- IAM user létrehozása DynamoDB hozzáféréssel
- Alkalmazás helyi futtatása
- Alkalmazás futtatása Elastic Beanstalk segítségével
- JSON generálás
- AWS Elastic Beanstalk
- AWS DynamoDB
- Lépjünk be az AWS Management Console-ba, és keressük meg a DynamoDB szolgáltatást.
- Kattintsunk az Create table gombra.
- Adja meg a tábla nevét, és az elsődleges kulcsot (Partition key).
- Tábla neve: mentordata
- Partition key: id (String)
- Kattintsunk a Create table gombra.
Pár perc múlva a tábla elkészül, és készen áll az adatok fogadására.
- Lépjünk be az AWS Management Console-ba, és keressük meg az IAM szolgáltatást.
- Kattintsunk az Add user gombra.
- Adja meg a felhasználó nevét.
- Kattintsunk a Next gombra.
- Válasszuk ki a Attach policies directly lehetőséget, és keressük meg a AmazonDynamoDBFullAccess jogosultságot.
- Kattintsunk a Next gombra.
- Kattintsunk a Create user gombra.
- Válasszuk ki a felhasználót, és kattintsunk a Security credentials fülre.
- Válasszuk ki a a Commant Line Interface (CLI) lehetőséget.
- Jelöljük be a I understand the above recommendation and want to proceed to create an access key. lehetőséget.
- Kattintsunk a Next gombra.
- Kattintsunk a Create access key gombra.
- A generált hozzáférési kulcsokat mentse el, mert csak egyszer jelenik meg.
- Klónozd le a projektet
- Telepítsd a szükséges csomagokat:
npm install
- Hozz létre egy
.env
fájlt a projekt gyökérkönyvtárában a következő tartalommal:
# .env file
# .env file
AWS_ACCESS_KEY="{AWS access key}"
AWS_SECRET_KEY="{AWS secret key}"
AWS_REGION=eu-central-1
AWS_TABLE_NAME=mentordata
- Indítsd el az alkalmazást:
npm start
- Nyisd meg a böngészőt, és látogasd meg a
http://localhost:8080
címet
Elastic Beanstalk környezet létrehozásához szükségünk lesz egy EC2 instance profile-ra, amely engedélyezi az EC2 példányoknak a megfelelő hozzáférését.
- Lépjünk be az AWS konzolba
- Keresőbe írjuk be az IAM szolgáltatást
- A bal oldali menüben kattintsunk az "Roles" menüpontra
- A
Trusted entity type
lehetőségek közül válasszuk ki azAWS service
opciót - A
Choose a use case
lehetőségek közül válasszuk ki azEC2
opciót - Kattintsunk a "Next" gombra
- Adjuk hozzá a következő engedélyeket:
- AWSElasticBeanstalkWebTier
- AWSElasticBeanstalkWorkerTier
- AWSElasticBeanstalkMulticontainerDocker
- Kattintsunk a "Next" gombra
- Role name: webalkalmazas-role
- Kattintsunk a "Create role" gombra
- Lépjünk be az AWS konzolba
- Keresőbe írjuk be az Elastic Beanstalk szolgáltatást
- Kattintsunk a "Create environment" gombra
- Töltsük ki a kötelező mezőket
- Application name: mentordata
- Environment name: mentordata-env
- Domain (opcionális): mentordata
- Platform: Node.js
- Platform branch: Node.js 20
- Application code: Sample application
- Presets: Single instance
- Kattintsunk a "Next" gombra
- Create and use new service role
- Service role name: mentordata-role
- EC2 key pair: Create new key pair
- Key pair name: mentordata-key
- EC2 instance profile:
- Instance profile name: webalkalmazas-role
- Kattintsunk a "Next" gombra
- Kattintsunk a "Skip to review" gombra
- Kattintsunk a "Submit" gombra
Ha létrejött a példa alkalmazás, adjuk hozzá az alkalmazás számára szükséges adatbázis hozzásférési paramétereket
- Lépjünk be az AWS konzolba
- Keresőbe írjuk be az Elastic Beanstalk szolgáltatást
- Kattintsunk a "mentordata-env" környezetre
- A bal oldali menüben kattintsunk a "Configuration" menüpontra
- "Updates, monitoring, and logging" részben kattintsunk a "Edit" gombra
- Keressük meg az "Environment properties" részt és kattintsunk az "Add environment property" gombra
- Adjuk hozzá a következő környezeti változókat
Név | Érték |
---|---|
AWS_ACCESS_KEY | {AWS access key} |
AWS_SECRET_KEY | {AWS secret key} |
AWS_REGION | eu-central-1 |
AWS_TABLE_NAME | mentordata |
- Kattintsunk a "Apply" gombra
Pár perc múlva életbe lépnek a változtatások.
Végül CodePipeline segítségével töltsd fel a saját alkalmazásodat:
- Keresőbe írjuk be a CodePipeline szolgáltatást
- Kattintsunk a "Create pipeline" gombra
- Töltsük ki a kötelező mezőket
- Pipeline name: mentordata-pipeline
- Pipeline type: V1
- Execution mode: Suspended
- Service role: New service role
- Role name: mentordata-pipeline-role
- Kattintsunk a "Next" gombra
- Source provider: GitHub (Version 2)
- Repository: {GitHub repository link}
- Branch: main
- Kattintsunk a "Next" gombra
- Build provider: Skip build stage
- Deployment provider: Elastic Beanstalk
- Application name: mentordata
- Environment name: mentordata-env
- Kattintsunk a "Create pipeline" gombra
Amikor elkészült a pipeline, a GitHub repository-ba feltöltött változások automatikusan frissítik az alkalmazást az Elastic Beanstalk környezetben.
Pár perc múlva a http://mentordata.eu-central-1.elasticbeanstalk.com/ címen elérhető lesz az alkalmazás.
Séma:
[
'{{repeat(1, 1)}}',
{
kor: '{{integer(18, 75)}}',
nev: {
vezeteknev: '{{random("Nagy","Kovács","Horváth","Tóth","Szabó","Kiss","Molnár","Varga","Farkas","Pap")}}',
keresztnev: '{{random("Gergő","Petra","Balázs","Krisztián","Anikó","Márton","Zsófia","Bence","Dóra","Gábor",)}}'}
}
]