{"id":24282584,"url":"https://github.com/takumakira/job-trend-analyzer-api-lambda","last_synced_at":"2026-04-20T02:03:14.172Z","repository":{"id":224225431,"uuid":"762748774","full_name":"TakumaKira/job-trend-analyzer-api-lambda","owner":"TakumaKira","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-20T00:35:17.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-16T03:45:28.969Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TakumaKira.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-02-24T15:30:56.000Z","updated_at":"2024-02-25T06:07:29.000Z","dependencies_parsed_at":"2024-02-24T17:24:00.137Z","dependency_job_id":"332ebc23-5e25-48b2-a39b-9cd156b0dcd0","html_url":"https://github.com/TakumaKira/job-trend-analyzer-api-lambda","commit_stats":null,"previous_names":["takumakira/job-trend-analyzer-api-lambda"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TakumaKira%2Fjob-trend-analyzer-api-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TakumaKira%2Fjob-trend-analyzer-api-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TakumaKira%2Fjob-trend-analyzer-api-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TakumaKira%2Fjob-trend-analyzer-api-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TakumaKira","download_url":"https://codeload.github.com/TakumaKira/job-trend-analyzer-api-lambda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242048572,"owners_count":20063404,"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","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-01-16T03:33:41.493Z","updated_at":"2026-04-20T02:03:09.107Z","avatar_url":"https://github.com/TakumaKira.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Job Trend Analyzer API Lambda\n\n## Table of Contents\n\n- [Job Trend Analyzer API Lambda](#job-trend-analyzer-api-lambda)\n  - [Table of Contents](#table-of-contents)\n  - [Prerequisites](#prerequisites)\n  - [Setup your database](#setup-your-database)\n  - [Run](#run)\n  - [Run tests](#run-tests)\n  - [Deploying to AWS Lambda](#deploying-to-aws-lambda)\n    - [Required environment variables](#required-environment-variables)\n    - [Package this manually to zip for uploading to AWS Lambda](#package-this-manually-to-zip-for-uploading-to-aws-lambda)\n\n## Prerequisites\n\nYou can quickly run this app using [Poetry](https://python-poetry.org/).\n\n```bash\npip install poetry\n```\n\nThen install packages:\n\n```bash\npoetry install --sync\n```\n\n## Setup your database\n\nYou need a database setup for [job_post_counts_scraper](https://github.com/TakumaKira/job_post_counts_scraper#setup-your-database). **This app works only with PostgreSQL database so Sqlite3 database won't work. Please prepare local PostgreSQL database like [this](https://postgresapp.com/)**\n\n## Run\n\nTo run this app in production, you need to provide some environment variables like the following:\n\n```bash\nDB_USER=your_db_app_user_name \\\nDB_PASS=your_db_app_user_pass \\\nDB_HOST=your_db_host_name \\\nDB_PORT=your_db_port \\\nDB_NAME=your_db_name \\\npoetry run python src/app/lambda_function.py\n```\n\n## Run tests\n\nTo run the tests, run:\n\n```bash\npoetry run python -m pytest -s\n```\n\n*You can omit `-s` if you don't need prints.*\n\n## Deploying to AWS Lambda\n\n### Required environment variables\n\n`FUNCTION_ENVIRONMENT` needs to be `aws_lambda`.\n`AWS_RDS_ENDPOINT` has to tell your RDS database endpoint.\n`AWS_DB_SECRETS_NAME`\thas to tell your AWS Secrets Manager secrets name which contains `username` / `password` / `port` / `dbname` of your target database.\n\n### Package this manually to zip for uploading to AWS Lambda\n\nI set up GitHub actions workflow to package and deploy this to AWS lambda, but you can also do it manually with the following commands **if your environment is Linux**;\n\n*Packaging needs to be executed on Linux to make psycopg2 work on the Lambda environment. See \u003chttps://stackoverflow.com/a/46366104\u003e*\n\n```bash\nrm -rf dist \u0026\u0026 mkdir -p dist/lambda-package\nrm -rf .venv \u0026\u0026 poetry install --only main --sync\ncp -r .venv/lib/python*/site-packages/* dist/lambda-package/\ncp -r src/app/* dist/lambda-package/\nrm -rf dist/lambda-package/**/__pycache__\ncd dist/lambda-package\nzip -r ../lambda.zip .\ncd ../..\n```\n\nThe above makes your packages only for production (which means excluding packages for development purposes such as testing).\nSo you'd better revert it to the development environment ASAP with the below:\n\n```bash\nrm -rf .venv \u0026\u0026 poetry install --sync\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftakumakira%2Fjob-trend-analyzer-api-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftakumakira%2Fjob-trend-analyzer-api-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftakumakira%2Fjob-trend-analyzer-api-lambda/lists"}