{"id":27155891,"url":"https://github.com/cloudsteak/trn-aws-webapp-nosql","last_synced_at":"2025-09-06T04:32:27.583Z","repository":{"id":223308894,"uuid":"759851164","full_name":"cloudsteak/trn-aws-webapp-nosql","owner":"cloudsteak","description":"AWS WebApp NoSQL hozzáféréssel","archived":false,"fork":false,"pushed_at":"2024-02-21T09:37:05.000Z","size":388,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-08T19:57:09.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudsteak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-19T13:08:34.000Z","updated_at":"2024-02-19T14:21:55.000Z","dependencies_parsed_at":"2024-02-21T09:36:07.555Z","dependency_job_id":"e80f23c1-9e60-41c4-a017-f51c6c08f59f","html_url":"https://github.com/cloudsteak/trn-aws-webapp-nosql","commit_stats":null,"previous_names":["cloudsteak/trn-aws-webapp-nosql"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cloudsteak/trn-aws-webapp-nosql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsteak%2Ftrn-aws-webapp-nosql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsteak%2Ftrn-aws-webapp-nosql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsteak%2Ftrn-aws-webapp-nosql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsteak%2Ftrn-aws-webapp-nosql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudsteak","download_url":"https://codeload.github.com/cloudsteak/trn-aws-webapp-nosql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsteak%2Ftrn-aws-webapp-nosql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273858615,"owners_count":25180764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-08T19:57:12.859Z","updated_at":"2025-09-06T04:32:27.532Z","avatar_url":"https://github.com/cloudsteak.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS WebApp NoSQL hozzáféréssel\n\nAz 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.\n\n## Tartalomjegyzék\n\n- [Összetevők](#Összetevők)\n- [DynamoDB tábla létrehozása](#DynamoDB-tábla-létrehozása)\n- [IAM user létrehozása DynamoDB hozzáféréssel](#IAM-user-létrehozása-DynamoDB-hozzáféréssel)\n- [Alkalmazás helyi futtatása](#Alkalmazás-helyi-futtatása)\n- [Alkalmazás futtatása Elastic Beanstalk segítségével](#Alkalmazás-futtatása-Elastic-Beanstalk-segítségével)\n  - [Elastic Beanstalk környezet létrehozása](#Elastic-Beanstalk-környezet-létrehozása)\n  - [Adatbázis hozzáférési paraméterek hozzáadása Elastic Beanstalk környezethez](#Adatbázis-hozzáférési-paraméterek-hozzáadása-Elastic-Beanstalk-környezethez)\n  - [CodePipeline konfigurálása a folyamatos üzembehelyezéshez](#CodePipeline-konfigurálása-a-folyamatos-üzembehelyezéshez)\n- [JSON generálás](#JSON-generálás)\n\n## Összetevők\n\n- AWS Elastic Beanstalk\n- AWS DynamoDB\n\n## DynamoDB tábla létrehozása\n\n1. Lépjünk be az AWS Management Console-ba, és keressük meg a DynamoDB szolgáltatást.\n2. Kattintsunk az **Create table** gombra.\n3. Adja meg a tábla nevét, és az elsődleges kulcsot (Partition key).\n   - Tábla neve: mentordata\n   - Partition key: id (String)\n4. Kattintsunk a **Create table** gombra.\n\nPár perc múlva a tábla elkészül, és készen áll az adatok fogadására.\n\n## IAM user létrehozása DynamoDB hozzáféréssel\n\n1. Lépjünk be az AWS Management Console-ba, és keressük meg az IAM szolgáltatást.\n2. Kattintsunk az **Add user** gombra.\n3. Adja meg a felhasználó nevét.\n4. Kattintsunk a **Next** gombra.\n5. Válasszuk ki a **Attach policies directly** lehetőséget, és keressük meg a **AmazonDynamoDBFullAccess** jogosultságot.\n6. Kattintsunk a **Next** gombra.\n7. Kattintsunk a **Create user** gombra.\n8. Válasszuk ki a felhasználót, és kattintsunk a **Security credentials** fülre.\n9. Válasszuk ki a a **Commant Line Interface (CLI)** lehetőséget.\n10. Jelöljük be a **I understand the above recommendation and want to proceed to create an access key.** lehetőséget.\n11. Kattintsunk a **Next** gombra.\n12. Kattintsunk a **Create access key** gombra.\n13. A generált hozzáférési kulcsokat mentse el, mert csak egyszer jelenik meg.\n\n## Alkalmazás helyi futtatása\n\n1. Klónozd le a projektet\n2. Telepítsd a szükséges csomagokat: `npm install`\n3. Hozz létre egy `.env` fájlt a projekt gyökérkönyvtárában a következő tartalommal:\n\n```\n# .env file\n# .env file\nAWS_ACCESS_KEY=\"{AWS access key}\"\nAWS_SECRET_KEY=\"{AWS secret key}\"\nAWS_REGION=eu-central-1\nAWS_TABLE_NAME=mentordata\n```\n\n4. Indítsd el az alkalmazást: `npm start`\n5. Nyisd meg a böngészőt, és látogasd meg a `http://localhost:8080` címet\n\n## Alkalmazás futtatása Elastic Beanstalk segítségével\n\n### EC2 instance profile létrehozása\n\nElastic 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.\n\n1. Lépjünk be az AWS konzolba\n2. Keresőbe írjuk be az IAM szolgáltatást\n3. A bal oldali menüben kattintsunk az \"Roles\" menüpontra\n4. A `Trusted entity type` lehetőségek közül válasszuk ki az `AWS service` opciót\n5. A `Choose a use case` lehetőségek közül válasszuk ki az `EC2` opciót\n6. Kattintsunk a \"Next\" gombra\n7. Adjuk hozzá a következő engedélyeket:\n   - AWSElasticBeanstalkWebTier\n   - AWSElasticBeanstalkWorkerTier\n   - AWSElasticBeanstalkMulticontainerDocker\n8. Kattintsunk a \"Next\" gombra\n9. Role name: webalkalmazas-role\n10. Kattintsunk a \"Create role\" gombra\n\n### Elastic Beanstalk környezet létrehozása\n\n1. Lépjünk be az AWS konzolba\n2. Keresőbe írjuk be az Elastic Beanstalk szolgáltatást\n3. Kattintsunk a \"Create environment\" gombra\n4. Töltsük ki a kötelező mezőket\n   - Application name: mentordata\n   - Environment name: mentordata-env\n   - Domain (opcionális): mentordata\n   - Platform: Node.js\n   - Platform branch: Node.js 20\n   - Application code: Sample application\n   - Presets: Single instance\n5. Kattintsunk a \"Next\" gombra\n6. Create and use new service role\n   - Service role name: mentordata-role\n7. EC2 key pair: Create new key pair\n   - Key pair name: mentordata-key\n8. EC2 instance profile:\n   - Instance profile name: webalkalmazas-role\n9. Kattintsunk a \"Next\" gombra\n10. Kattintsunk a \"Skip to review\" gombra\n11. Kattintsunk a \"Submit\" gombra\n\nHa 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\n\n### Adatbázis hozzáférési paraméterek hozzáadása Elastic Beanstalk környezethez\n\n1. Lépjünk be az AWS konzolba\n2. Keresőbe írjuk be az Elastic Beanstalk szolgáltatást\n3. Kattintsunk a \"mentordata-env\" környezetre\n4. A bal oldali menüben kattintsunk a \"Configuration\" menüpontra\n5. \"Updates, monitoring, and logging\" részben kattintsunk a \"Edit\" gombra\n6. Keressük meg az \"Environment properties\" részt és kattintsunk az \"Add environment property\" gombra\n7. Adjuk hozzá a következő környezeti változókat\n\n| Név            | Érték            |\n| -------------- | ---------------- |\n| AWS_ACCESS_KEY | {AWS access key} |\n| AWS_SECRET_KEY | {AWS secret key} |\n| AWS_REGION     | eu-central-1     |\n| AWS_TABLE_NAME | mentordata       |\n\n8. Kattintsunk a \"Apply\" gombra\n\nPár perc múlva életbe lépnek a változtatások.\n\n### CodePipeline konfigurálása a folyamatos üzembehelyezéshez\n\nVégül CodePipeline segítségével töltsd fel a saját alkalmazásodat:\n\n1. Keresőbe írjuk be a CodePipeline szolgáltatást\n2. Kattintsunk a \"Create pipeline\" gombra\n3. Töltsük ki a kötelező mezőket\n   - Pipeline name: mentordata-pipeline\n   - Pipeline type: V1\n   - Execution mode: Suspended\n   - Service role: New service role\n   - Role name: mentordata-pipeline-role\n4. Kattintsunk a \"Next\" gombra\n5. Source provider: GitHub (Version 2)\n   - Repository: {GitHub repository link}\n   - Branch: main\n6. Kattintsunk a \"Next\" gombra\n7. Build provider: Skip build stage\n8. Deployment provider: Elastic Beanstalk\n   - Application name: mentordata\n   - Environment name: mentordata-env\n9. Kattintsunk a \"Create pipeline\" gombra\n\nAmikor 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.\n\nPár perc múlva a [http://mentordata.eu-central-1.elasticbeanstalk.com/](http://mentordata.eu-central-1.elasticbeanstalk.com/) címen elérhető lesz az alkalmazás.\n\n## JSON generálás\n\nhttps://json-generator.com/\n\nSéma:\n\n```bash\n[\n  '{{repeat(1, 1)}}',\n  {\n    kor: '{{integer(18, 75)}}',\n    nev: {\n      vezeteknev: '{{random(\"Nagy\",\"Kovács\",\"Horváth\",\"Tóth\",\"Szabó\",\"Kiss\",\"Molnár\",\"Varga\",\"Farkas\",\"Pap\")}}',\n        keresztnev: '{{random(\"Gergő\",\"Petra\",\"Balázs\",\"Krisztián\",\"Anikó\",\"Márton\",\"Zsófia\",\"Bence\",\"Dóra\",\"Gábor\",)}}'}\n    }\n]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudsteak%2Ftrn-aws-webapp-nosql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudsteak%2Ftrn-aws-webapp-nosql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudsteak%2Ftrn-aws-webapp-nosql/lists"}