{"id":23362923,"url":"https://github.com/remotesynth/aws-devopsdotcom","last_synced_at":"2025-08-30T15:09:46.338Z","repository":{"id":173627401,"uuid":"611434018","full_name":"remotesynth/aws-devopsdotcom","owner":"remotesynth","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-04T13:57:19.000Z","size":12063,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T23:18:21.278Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/remotesynth.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":"2023-03-08T20:23:09.000Z","updated_at":"2023-04-04T19:37:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"7871a5f3-5c0e-4131-9d20-5f1102aa209c","html_url":"https://github.com/remotesynth/aws-devopsdotcom","commit_stats":null,"previous_names":["remotesynth/aws-devopsdotcom"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remotesynth%2Faws-devopsdotcom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remotesynth%2Faws-devopsdotcom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remotesynth%2Faws-devopsdotcom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remotesynth%2Faws-devopsdotcom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remotesynth","download_url":"https://codeload.github.com/remotesynth/aws-devopsdotcom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737729,"owners_count":20987717,"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":"2024-12-21T12:33:31.881Z","updated_at":"2025-04-07T21:46:28.058Z","avatar_url":"https://github.com/remotesynth.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Using LaunchDarkly in AWS Serverless\n\nThe examples here show how to integrate LaunchDarkly within AWS Serverless using Lamba and DynamoDB. They were presented as part of a webinar to DevOps.com on April 6, 2023. Each folder contains a version of the same Lambda implemented in CommonJS and in ESModule formats. They contain the following examples:\n\n0. The `lamda-layers` folder contains the layers used throughout the examples. Layers make it easier to add and manage a dependency like LaunchDarkly's SDKs across multiple Lambdas.\n1. The `basic-integration` shows how to add LaunchDarkly to a Lambda built with Node.js and get the value of a flag.\n2. The `user-targeting` example shows how to get user data passed from a JWT token and pass that to LaunchDarkly to get a user targeted flag variation. Note that this also requires the `jswebtoken` library. The token is passed in the `Authortization` header of the request and should contain an email address under the object key of `key`.\n3. The `sync-to-dynamo` example will write the value of all the flags for the LaunchDarkly environment (specified by the SDK key) to a DynamoDB table. To enable this to sync automatically, you'll need to ensure that it has a function URL and to call this URL via a webhook integration in LaunchDarkly.\n4. The `read-from-dynamo` example updates the prior `user-targeting` example to use DynamoDB as the source of truth rather than LaunchDarkly. This assumes that the synchronisation is working in order to get proper flag updates.\n5. The `sending-analytics-on-shutdown` example shows how to ensure that all of the analytics events created by flag calls are sent back to LaunchDarkly prior to a Lambda shutting down. It relies on the `LambdaInsightsExtension` layer being added to the Lambda.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremotesynth%2Faws-devopsdotcom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremotesynth%2Faws-devopsdotcom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremotesynth%2Faws-devopsdotcom/lists"}