{"id":21300109,"url":"https://github.com/roclark/recipe-handler-lambda","last_synced_at":"2026-04-11T11:38:59.842Z","repository":{"id":96260565,"uuid":"128205024","full_name":"roclark/recipe-handler-lambda","owner":"roclark","description":"An AWS Lambda function designed to read recipes from an S3 bucket and interact with Amazon Alexa devices","archived":false,"fork":false,"pushed_at":"2018-04-19T13:01:00.000Z","size":15,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-09T10:51:53.166Z","etag":null,"topics":["alexa","alexa-skill","aws","aws-lambda","aws-s3","echo","echo-show","lambda","mocha","node-js","nodejs"],"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/roclark.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}},"created_at":"2018-04-05T12:45:20.000Z","updated_at":"2020-11-11T16:32:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"50b3124c-b26d-46df-bded-638b24af1345","html_url":"https://github.com/roclark/recipe-handler-lambda","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/roclark/recipe-handler-lambda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roclark%2Frecipe-handler-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roclark%2Frecipe-handler-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roclark%2Frecipe-handler-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roclark%2Frecipe-handler-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roclark","download_url":"https://codeload.github.com/roclark/recipe-handler-lambda/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roclark%2Frecipe-handler-lambda/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266270424,"owners_count":23902734,"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":["alexa","alexa-skill","aws","aws-lambda","aws-s3","echo","echo-show","lambda","mocha","node-js","nodejs"],"created_at":"2024-11-21T15:07:30.748Z","updated_at":"2026-04-11T11:38:59.806Z","avatar_url":"https://github.com/roclark.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recipe Handler for AWS Lambda\nAn AWS Lambda function designed to read recipes from an S3 bucket and interact\nwith Amazon Alexa devices.\n\n## Description\nThis project is designed to hook with an Amazon Alexa skill which supports all\nAmazon Echo devices including the Echo Show. The skill is a recipe book that\ninteracts with the user by sharing recipes stored in the cloud in an AWS S3\ninstance via AWS Lambda.\n\nThis Lambda function code acts as a middle-ground between the Alexa skill and\nthe S3 bucket. For example, you can tell Alexa to do the following:\n```\nAlexa, ask \"my recipe helper\" to list my recipes\n```\nThe Alexa skill will be called and determine which `intent` was spoken and run\nour Lambda function, such as `ListRecipes`. The Lambda function is connected to\nour Alexa skill via the application ID we include with the code. When the Lambda\nfunction is notified that it needs to run, it checks which intent was used and\nsees if any extra attributes were passed, such as a name of a food or number of\nservings, depending on the specific intent.\n\nIn the example command you spoke above, the code reads all files in the\nspecified AWS S3 bucket and saves the recipe titles in a list to be orated to\nthe user on the Echo device the command was spoken to. If the device supports\ndisplays, it will show a picture of the recipe if applicable as well as all\navailable information, including directions and ingredients, for the user to\neasily go back and check steps.\n\n## Usage\nTo get started using this code in an AWS Lambda function, run the following:\n```\ngit clone https://github.com/roclark/recipe-handler-lambda\ncd recipe-handler-lambda\n```\n\nIf you don't have Node.js installed, you will need to install it by running the\nfollowing:\n```\n# For CentOS/RHEL and Fedora:\nsudo yum install -y gcc-c++ make\ncurl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -\nsudo yum install nodejs\n\n# For Ubuntu:\nsudo apt-get update\nsudo apt-get install nodejs\n```\n\nVerify both Node.js and the Node Package Manager (`npm`) are installed:\n```\n$ node -v\nv9.4.0\n$ npm -v\n5.6.0\n```\n\nTo easily deploy code to an AWS Lambda function, four files are required to be\ncreated in the cloned repositories root directory: `.application_id`,\n`.access_key`, `.bucket`, and `.secret`. In each file, place just the string of\nthe specified value in the contents. For example, if you have an S3 bucket named\n`my-s3-bucket-name`, you will save your `.bucket` file with exactly the\nfollowing contents:\n```\nmy-s3-bucket-name\n```\n\nComplete this process for the Alexa Skill's Application ID in `.application_id`,\nand your AWS access key and secret in `.access_key` and `.secret`, respectively.\n\nThese files are provided for your convenience and security so you don't\naccidently commit code with any of these values. The `create-zip` script creates\na `recipe-handler-lambda.zip` file with all of the necessary credentials for the\ncode to run properly in the AWS Lambda function. To automatically create the\n.zip file, run the `create-zip` script as follows (make sure you have created\nthe four crediental files listed above prior to running this step!):\n```\n./create-zip\n```\n\nThe `recipe-handler-lambda.zip` function will be saved in the project's root\ndirectory.\n\n## Testing\nTo run unit tests against the code, first install all node.js packages specified\nin the `package.json` file:\n```\nnpm install\n```\n\nNext, run the included unit tests:\n```\nnpm test\n```\n\nIf the tests were successful, Mocha (the testing framework used in this project)\nshould output text only in green and white (ie. no red) and indicate all tests\nare passing. If you find at any time that tests aren't passing, be sure to\ncreate an issue in the repository to get it resolved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froclark%2Frecipe-handler-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froclark%2Frecipe-handler-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froclark%2Frecipe-handler-lambda/lists"}