Skip to main content

A Python package to invoke your Aws Lambda function with fake payload

Project description

Lambda Faker

lambdafaker is a versatile Python package that empowers you to effortlessly create realistic but synthetic payload data and trigger your lambda function with it. If you need to generate test data for software development, this tool simplifies the process with an intuitive schema definition in YAML format.

Key Features

Schema Definition: Define your target schema using a simple YAML file. Specify the structure of your lambda payload attribute names and fake data generation code.

Faker and Randomization: Leverage the power of the Faker library and random data generation to create authentic-looking fake data that mimics real-world scenarios.

Installation

pip install lambdafaker

Sample Yaml File

version: 1
config:
  locale: en_US                 # faker locale Default:en_US
  on_error: RAISE_ERROR         # RAISE_ERROR, SKIP Default:RAISE_ERROR
  python_import:                # Optional, list of python packages to use in data generation
    - datetime
aws:
  region: us-east-1
  credentials_profile: default  #the profile name in your local .aws/config file Default:default
lambda_function:
  function_name: my_function
  invocation_count: 10          # Optional Default:1
  invocation_type: Event        # Event / RequestResponse Default:Event
  batch: 1                      # Optional Default:1
  sleep: 1000                   # Optional Default:0 No Sleep
  payload:
    first_name: fake.first_name()
    last_name: fake.last_name()
    is_alive: fake.pybool()
    age: fake.random_int(18, 90)
    dob: fake.date_of_birth()
    address:
      street_address: fake.street_address()
      city: fake.city()
      state: fake.state_abbr()
      postal_code: fake.postcode()
    phone_numbers:
      - type: "\"home\""
        number: fake.phone_number()
      - type: "\"office\""
        number: fake.phone_number()
    children:
      - fake.first_name()
      - fake.first_name()
      - fake.first_name()

Sample Code

from lambdafaker import lambdafaker

lambdafaker.invoke_lambda("tests/test_function.yaml")

Sample CLI Command

You can use lambdafaker in your terminal for adhoc needs or shell script to automate lambda function invocation.
Faker custom providers and custom functions are not supported in CLI.

lambdafaker --config test_function.yaml

Custom Functions and Faker Providers

With Lambda Faker, you have the flexibility to provide your own custom functions to generate column data. This advanced feature empowers developers to create custom fake data generation logic that can pull data from a database, API, file, or any other source as needed. You can also supply multiple functions in a list, allowing for even more versatility. The custom function you provide should return a single value, giving you full control over your synthetic data generation.

from lambdafaker import lambdafaker
from faker import Faker
from faker_education import SchoolProvider #import custom faker provider

fake = Faker()
def get_level():
    return f"level {fake.random_int(1, 5)}"


lambdafaker.invoke_lambda("test_function.yaml", fake_provider=SchoolProvider, custom_function=get_level)
#multiple fake provider or custom function in a list is also works

Add get_level() function and custom faker provider to your yaml file

version: 1
lambda_function:
  function_name: my_function
  payload:
    first_name: fake.first_name()
    last_name: fake.last_name()
    is_alive: fake.pybool()
    age: fake.random_int(18, 90)
    dob: fake.date_of_birth()
    level: get_level()            # custom function
    school: fake.school_name()    # customer faker provider

Faker Functions List

https://faker.readthedocs.io/en/master/providers.html#

Bug Report & New Feature Request

https://github.com/necatiarslan/aws-lambda-faker/issues/new

Todo

  • Aws Profile support

Nice To Have

Follow me on linkedin to get latest news
https://www.linkedin.com/in/necati-arslan/

Thanks,
Necati ARSLAN
necatia@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lambdafaker-1.0.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lambdafaker-1.0.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file lambdafaker-1.0.0.tar.gz.

File metadata

  • Download URL: lambdafaker-1.0.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.4

File hashes

Hashes for lambdafaker-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ca15863e08fcc7a250c6c41bd87e27719122de92c46ce37217894b5b817cdef5
MD5 a9571f3600a1dad5393b27dc4acb49db
BLAKE2b-256 9a95ff6d5717cc199de98c455917ebfd51af400f8a20527f46a4d2590362d0f2

See more details on using hashes here.

File details

Details for the file lambdafaker-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: lambdafaker-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.4

File hashes

Hashes for lambdafaker-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae08ff5e065e59129340323dc728bd13282202a34d5f9429aaecad11d2f2e6c7
MD5 f40fcbe72181f55232095ef782a9ec0c
BLAKE2b-256 af2dbeab89c6ab9445c1fb788bba9c7a0bb7b4e2e103bd96b2c3c3202ea61609

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page