An open source development framework to help you build data workflows and modern data architecture on AWS.

Overview

AWS DataOps Development Kit (DDK)

Actions Status Actions Status Actions Status Actions Status

The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.

Based on the AWS CDK, it offers high-level abstractions allowing you to build pipelines that manage data flows on AWS, driven by DevOps best practices. The framework is extensible, you can add abstractions for your own data processing infrastructure or replace our best practices with your own standards. It's easy to share templates, so everyone in your organisation can concentrate on the business logic of dealing with their data, rather than boilerplate logic.


The DDK Core is a library of CDK constructs that you can use to build data workflows and modern data architecture on AWS, following our best practice. The DDK Core is modular and extensible, if our best practice doesn't work for you, then you can update and share your own version with the rest of your organisation by leveraging a private AWS Code Artifact repository.

You can compose constructs from the DDK Core into a DDK App. Your DDK App can also add contain constructs from the CDK Framework or the AWS Construct Library.

You can use the DDK CLI to manage your DDK App. You can use it to create a new app from a template, or deploy your DDK app to AWS.

Getting Started

For a detailed walk-through, check out our Workshop.

At a glance

Install or update the AWS DDK from PyPi.

pip install aws-ddk

Create a new project:

ddk init sample-app

This will create a sample-app directory inside the current folder. Inside that directory, it will generate the initial project structure, and initialize a virtual environment.

sample-app
├── .gitignore
├── .venv
├── README.md
├── app.py
├── cdk.json
├── ddk.json
├── ddk_app
│   ├── __init__.py
│   └── ddk_app_stack.py
├── requirements-dev.txt
├── requirements.txt
├── setup.py
└── source.bat

To activate the virtual environment, and install the dependencies, run:

source .venv/bin/activate && pip install -r requirements.txt

Next, let us examine the code. If you look at app.py, it will look like this:

import aws_cdk as cdk
from ddk_app.ddk_app_stack import DdkApplicationStack

app = cdk.App()
DdkApplicationStack(app, "DdkApplication", "dev")

app.synth()

If your AWS account hasn't been used to deploy DDK apps before, then you need to bootstrap your environment:

ddk bootstrap

You can then deploy your DDK app:

ddk deploy

Official Resources

Getting Help

The best way to interact with our team is through GitHub. You can open an issue and choose from one of our templates for bug reports, feature requests, or documentation issues. If you have a feature request, don't forget you can search existing issues and upvote or comment on existing issues before creating a new one.

Contributing

We welcome community contributions and pull requests. Please see CONTRIBUTING.md for details on how to set up a development environment and submit code.

Other Ways to Support

One way you can support our project is by letting others know that your organisation uses the DDK. If you would like us to include your company's name and/or logo in this README file, please raise a 'Support the DDK' issue. Note that by raising a this issue (and related pull request), you are granting AWS permission to use your company’s name (and logo) for the limited purpose described here and you are confirming that you have authority to grant such permission.

License

This project is licensed under the Apache-2.0 License.

Comments
  • (cli) Allow disabling of public access block configuration during ddk bootstrap

    (cli) Allow disabling of public access block configuration during ddk bootstrap

    Enhancement

    • (Allow disabling of public access block configuration during ddk bootstrap

    Relates

    • #112

    By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

    cli effort/medium p1 
    opened by malachi-constant 5
  • (bug) ddk deploy fails on windows 11 pro

    (bug) ddk deploy fails on windows 11 pro

    Describe the bug

    ddk deploy on windows fails w/o any error message or stack trace. Ordinary cdk deploy works fine.

    How to Reproduce

    Deploying DDK stacks to AWS account XXXXXXXXXXX and region us-east-1...
    ERROR - Failed to run `cdk deploy --all --require-approval never --output .ddk.out`. See output above.
    

    Expected behavior

    No response

    Your project

    No response

    Screenshots

    image

    Environment

    Provide your `pip list` output, particularly the version of the AWS DDK library you used. Providing this information may significantly improve resolution times.
    

    OS

    Windows 11 Pro

    Python version

    3.10.8

    AWS DDK version

    0.5.1

    Additional context

    No response

    bug 
    opened by kukushking 4
  • Revirew & upgrade CDK alpha packages to official

    Revirew & upgrade CDK alpha packages to official

    We still rely on a couple of alpha packages: "aws-cdk.aws-glue-alpha" = "^2.20.0a0" "aws-cdk.aws-kinesisfirehose-alpha" = "^2.20.0a0" "aws-cdk.aws-kinesisfirehose-destinations-alpha" = "^2.20.0a0"

    Looks like official kinesisfirehose package is available.

    We should review which alpha packages we can deprecate and update the code to use official CDK packages.

    P.S. Don't attach files. Please, prefer add code snippets directly in the message body.

    enhancement dependencies 
    opened by kukushking 3
  • Missing Job Glue Name at GlueTransformStage

    Missing Job Glue Name at GlueTransformStage

    Describe the bug

    When instantiating a GlueTransformStage without a predefined crawler/job the deployment of the state machine is failing.

    Missing job_name and crawler_name used by the state machine tasks.

    How to Reproduce

        glue_stage = GlueTransformStage(
            self,
            id='xpto-gluestage',
            environment_id=environment_id,
            database_name="xpto-database",
            targets=cdk_glue.CfnCrawler.TargetsProperty(
                s3_targets=[
                    cdk_glue.CfnCrawler.S3TargetProperty(
                        path=f"s3://{xpto_data.bucket_name}/raw/"
                    )
                ]
            ),
            crawler_role=glue_role,
            job_args={
                "--S3_SOURCE_PATH": xpto_data.arn_for_objects("raw/"),
                "--S3_TARGET_PATH": xpto_data.arn_for_objects("stage/"),
            }
        )
    

    Expected behavior

    No response

    Your project

    No response

    Screenshots

    image

    image

    Environment

    Provide your `pip list` output, particularly the version of the AWS DDK library you used. Providing this information may significantly improve resolution times.
    

    OS

    Linux

    Python version

    3.10

    AWS DDK version

    0.5.1

    Additional context

    No response

    bug 
    opened by jvjfranca 3
  • How to run existing Glue Job and How to create a new Glue Job

    How to run existing Glue Job and How to create a new Glue Job

    Hi Team,

    Can someone help me on how to run existing Glue Job and How to create a new Glue Job with the pyspark code files. I tried doing it multiple ways but I am unable to do it.

    An AWS case # 10860038241 created to get the help from AWS Support team but did not get the great help.

    Below is our conversation:

    Message from AWS Support on Sep 27 2022:

    It was a pleasure talking to you. Over the chime call, you explained that you were using the DDK workshop [1] and you were just trying to add a pipeline stage for the glue job with the following: code snippets.

    glue_job_stage = GlueTransformStage( self, "ddk-glue-job", environment_id=environment_id, job_name="my_glue_job", job_role=f"arn:aws:iam::512604200947:role/service-role/AWSGlueServiceRole-sample-raw-role", crawler_role=f"arn:aws:iam::512604200947:role/service-role/AWSGlueServiceRole-sample-raw-role"

        )
    

    . . . .add_stage(glue_job_stage)

    You were getting "target" property missing error but you showed me that it was an optional parameter.

    As I mentioned, I have not worked on DDK before and since this issue is not directly related to CDK, I am going to need sometime to try to set up my own DDK workshop and see if I can set up a glue pipeline.

    Please note that code development is outside of AWS Support, however, I will put forward my best effort to help you.

    Please feel free to reply if you have any other questions.

    We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.

    Message from AWS Support on Sep 28, 2022:

    Hope you are doing well!

    In order to understand the issues you were facing, I went through the ddk workshop provided in the DDK GitHub[1] and set it up in my account. I did not face any issue with the workshop sample.

    Then I added my "GlueTransformStage" [2] in the ddk_app_stack.py as shown in the snippet below:

        glue_job_stage = GlueTransformStage(
            scope=self,
            id="ddk-glue-job",
            environment_id=environment_id,
    

    . . . .add_stage(glue_job_stage)

    I was getting this error "TypeError: init() missing 1 required keyword-only argument: 'executable'"

    Further, when I tried adding the job_name or job_role or both, I was getting the same error you got "AttributeError: 'NoneType' object has no attribute 'role_arn'".

    I do not understand why we are getting these errors with those parameters as they are showing optional in the doc [2] . I thought maybe there was something extra we needed to do, so I tried adding a different stage "S3EventStage" . This worked without any issues.

    Then i took a deep dive in the documentations and found this test app [3] and referring to the code, I provided the job_name and the crawler name in my DDK app and it deployed the app successfully. Please see my latest working "ddk_app_stack.py" (attached). So, it looks like there is some issue with the code because the doc says "If the Glue job or crawler names are not supplied, then they are created." And also the only required parameters are "scope", "id" and "environment_id".

    Since DDK is a community driven open source framework and not a service like CDK, we don't have a dedicated support model. You can create an issue on the GitHub [1] to get their support.

    Having said that, I am doing all I can to get a little bit more information for you on this issue. I cannot promise if I'd get an answer but if I do, by end of tomorrow, I will definitely relay it to you. Otherwise, I will be closing this case and you may continue working with them via a GitHub issue.

    Please let me know if you have any other questions.

    Have a wonderful rest of the week!

    Reference: [1] DDK GitHub https://github.com/awslabs/aws-ddk

    [2] GlueTransformStage doc https://awslabs.github.io/aws-ddk/release/latest/api/core/stubs/aws_ddk_core.stages.GlueTransformStage.html

    [3] test_basic_data_pipeline.py https://github.com/awslabs/aws-ddk/blob/main/core/tests/unit/test_basic_data_pipeline.py#L56

    We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.

    Best regards, Amazon Web Services

    Attachments [ddk_app_stack.py.txt] ddk_app_stack.py.txt

    Message from AWS Support on Sep 29, 2002:

    I was able to find a little more information for you.

    In order for GlueTransformStage to create the glue job, then the executable parameter must be supplied. An example can be found in [1] .

    If you want to use the existing job, then I believe you have to provide the job_name and the crawler_name. I was not able to do it with just "job_name".

    I request you to create an issue on the DDK GitHub if you haven't already, to get their support.

    If you have any other issue related to CDK, please create a new case.

    Reference: [1] Parameter executable example https://github.com/awslabs/aws-ddk/blob/main/core/tests/unit/test_glue_transform_stage.py#L58

    [1] CDK class class JobExecutable https://docs.aws.amazon.com/cdk/api/v2/docs/@aws-cdk_aws-glue-alpha.JobExecutable.html

    We value your feedback. Please share your experience by rating this and other correspondences in the AWS Support Center. You can rate a correspondence by selecting the stars in the top right corner of the correspondence.

    Best regards, Amazon Web Services

    question 
    opened by litethesko 3
  • (core): `add_notifications` method does not send notifications as expected

    (core): `add_notifications` method does not send notifications as expected

    Describe the bug

    add_notifications method in CICDPipelineStack creates the CodeStar notification but no notification is sent when the CodePipeline pipeline fails

    How to Reproduce

    1. Create a DDK CICD pipeline and add notifications
    CICDPipelineStack(
    ...
    .add_notifications()
    
    1. An SNS topic should be created. Subscribe your email address to it
    2. Fail the pipeline. The user expects an email to be sent but it never arrives

    Expected behavior

    An email is sent when the Pipeline fails

    Your project

    No response

    Screenshots

    No response

    Environment

    Provide your `pip list` output, particularly the version of the AWS DDK library you used. Providing this information may significantly improve resolution times.
    

    OS

    Mac

    Python version

    3.7

    AWS DDK version

    0.2.1

    Additional context

    No response

    bug core p1 
    opened by jaidisido 3
  • Github Workflow: CFN Nag

    Github Workflow: CFN Nag

    Subject: Adding Github Workflow: CFN Nag

    Feature or Bugfix

    • Feature: Adding Github Workflow: CFN Nag

    Relates

    • General Workflow Setup

    • By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

    opened by malachi-constant 3
  • Add Concurrency Parameter GlueTransformStage

    Add Concurrency Parameter GlueTransformStage

    Is your idea related to a problem? Please describe. When using the GlueTransformStage, the created Glue job is unable to handle concurrent glue jobs, as the concurrency is automatically set to 1. The StepFunction and Glue Job fails when I trigger multiple runs at once. There is no way to alter the concurrency of the glue job, other than creating a Glue Job independently of the GlueTransformStage.

    Describe the solution you'd like There should be a parameter that allows a user to set the Glue Job max concurrency (ie "max_concurrent_runs") when creating a Glue Job within the GlueTransformStage.

    P.S. Don't attach files. Please, prefer add code snippets directly in the message body.

    enhancement 
    opened by tommywhelan 2
  • DDK and CDK deploy not working as stated in the workshop

    DDK and CDK deploy not working as stated in the workshop

    Describe the bug

    DDK deploy is failing with:

    Deploying DDK stacks to AWS account 619876764317 and region us-east-1...
    Traceback (most recent call last):
      File "app.py", line 3, in <module>
        import aws_cdk as cdk
    ModuleNotFoundError: No module named 'aws_cdk'
    

    CDK deploy is failing with:

    Traceback (most recent call last):
      File "app.py", line 3, in <module>
        import aws_cdk as cdk
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/__init__.py", line 24837, in <module>
        from . import aws_apigateway
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_apigateway/__init__.py", line 1565, in <module>
        from ..aws_certificatemanager import ICertificate as _ICertificate_c194c70b
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_certificatemanager/__init__.py", line 184, in <module>
        from ..aws_cloudwatch import (
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_cloudwatch/__init__.py", line 602, in <module>
        from ..aws_iam import Grant as _Grant_a7ae64f8, IGrantable as _IGrantable_71c4f5de
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_iam/__init__.py", line 662, in <module>
        class AddToPrincipalPolicyResult:
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_iam/__init__.py", line 667, in AddToPrincipalPolicyResult
        policy_dependable: typing.Optional[constructs.IDependable] = None,
    AttributeError: module 'constructs' has no attribute 'IDependable'
    

    How to Reproduce

    I followed the steps in the DDK workshop, and ran into the following issue when running ddk deploy:

    Deploying DDK stacks to AWS account 619876764317 and region us-east-1...
    Traceback (most recent call last):
      File "app.py", line 3, in <module>
        import aws_cdk as cdk
    ModuleNotFoundError: No module named 'aws_cdk'
    

    My assumption was that it was related to the virtual environment, and ddk running the wrong version. This proved correct when I ran which ddk, as it printed a reference to the ddk installation outside the virtual env.

    I then tried to run cdk deploy instead. However, it failed with the following error:

    Traceback (most recent call last):
      File "app.py", line 3, in <module>
        import aws_cdk as cdk
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/__init__.py", line 24837, in <module>
        from . import aws_apigateway
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_apigateway/__init__.py", line 1565, in <module>
        from ..aws_certificatemanager import ICertificate as _ICertificate_c194c70b
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_certificatemanager/__init__.py", line 184, in <module>
        from ..aws_cloudwatch import (
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_cloudwatch/__init__.py", line 602, in <module>
        from ..aws_iam import Grant as _Grant_a7ae64f8, IGrantable as _IGrantable_71c4f5de
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_iam/__init__.py", line 662, in <module>
        class AddToPrincipalPolicyResult:
      File "/Users/lutleon/Projects/ddk-demo/sample-app/.venv/lib/python3.8/site-packages/aws_cdk/aws_iam/__init__.py", line 667, in AddToPrincipalPolicyResult
        policy_dependable: typing.Optional[constructs.IDependable] = None,
    AttributeError: module 'constructs' has no attribute 'IDependable'
    

    I was able to mitigate this by running pip install aws_cdk.constructs. After I ran that command, cdk deploy was able to synthesize the resources and show the diff.

    I am on version 2.34.0 (build 633edab) of CDK. Additionally, the Python library for aws-cdk-lib is on version 2.29.0.

    Expected behavior

    No response

    Your project

    No response

    Screenshots

    No response

    Environment

    Provide your `pip list` output, particularly the version of the AWS DDK library you used. Providing this information may significantly improve resolution times.
    

    OS

    Mac

    Python version

    3.8.10

    AWS DDK version

    0.5.1

    Additional context

    No response

    bug needs-triage 
    opened by LeonLuttenberger 2
  • (cli) add 'stacks' argument for 'ddk deploy'

    (cli) add 'stacks' argument for 'ddk deploy'

    Enhancement

    • Add argument for ddk deploy to allow explicitly setting stacks to deploy

    Usage

    • ddk deploy StackA StackB

    Relates

    • #121

    By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

    opened by malachi-constant 2
  • Enable --public-access-block-configuration like in cdk bootstrap

    Enable --public-access-block-configuration like in cdk bootstrap

    Is your idea related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

    When using the --permissions-boundary and when the permissions boundary restricts s3:PutPublicAccessBlock when bootstrapping it fails.

    Describe the solution you'd like A clear and concise description of what you want to happen.

    Please add a --public-access-block-configuration like in cdk so when bootstrapping with a permissions boundary which restricts s3:PutPublicAccessBlock, the account can still be bootstrapped.

    P.S. Don't attach files. Please, prefer add code snippets directly in the message body.

    enhancement 
    opened by spssmn-aws 2
  • core: Athena_SQL Stage Update

    core: Athena_SQL Stage Update

    * handle 2 usecases
        * If query is passed to the stage then a step function is created executing only that query [current version]
        * if query is not passed, then it needs to be passed dynamically using step function event message [e.g $._query_string]
    
    enhancement core 
    opened by malachi-constant 0
  • core: RedshiftDataApi Transform Stage

    core: RedshiftDataApi Transform Stage

    * A stage that has a step function that can run a fixed or dynamic sql query against redshift (UNLOAD/COPY/SELECT) using no/low code with SDK integration of step function of redshift data-api
        * If query is passed to the stage then a step function is created executing only that query 
        * if query is not passed, then it needs to be passed dynamically using step function event message
    * *Potential Steps*
        * step1: Execute statement (query passed)
        * step2: DescribeStatment to get execution id
        * step3: Wait for execution to complete
    
    core backlog 
    opened by malachi-constant 0
  • core: Forecast Transform Stage

    core: Forecast Transform Stage

    * A stage with a step function that trains a predictor, generates forecasts, and outputs results
    * https://docs.aws.amazon.com/forecast/latest/dg/tutorial-cloudformation.html
    * This can be extended to a lot of other AWS ML models as a service (Comprehend, Personalize, Rekognition, etc.) 
    
    core backlog 
    opened by malachi-constant 0
Releases(0.6.1)
  • 0.6.1(Dec 19, 2022)

    🚀 Enhancements / Dependency Upgrades

    Core:

    • Enhancement: Support additional pipeline attributes in CICDPipelineStack construct by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/184
    • Enhancement: SqsToLambdaStage Adding support for fifo event target by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/185
    • Enhancement: SDK for pandas layer lookup utility by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/186
    • Dependencies: CDK Library Upgrade -> 2.54 by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/190

    🙏 Thanks

    We thank the following contributors/users for their work on this release:

    @kukushking, @malachi-constant

    Full Changelog: https://github.com/awslabs/aws-ddk/compare/0.6.0...0.6.1

    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Nov 1, 2022)

    🚀 Features // 💎 Enhancements // 🪲 Bug fixes

    CLI:

    • add stacks argument for 'ddk deploy' by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/129
    • bug fix: windows ddk deploy Issue by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/180

    Core:

    • support pipeline_name parameter in CICDPipeline Construct by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/161
    • bug fix: GlueTransformStage does not pass crawler name in to SFN by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/167
    • additional resource level args in stages SqsToLambdaStage & GlueTransformStage by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/170
    • support Multiple S3 Prefixes in S3 Event Stage by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/171
    • support Multiple Buckets by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/173
    • bug fix: set the required Glue crawler permissions in GlueTransformStage by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/172
    • add add_wave support to CICDPipelineStack construct by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/176
    • add max_batching_window to SqsToLambda Stage by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/179

    Full Changelog: https://github.com/awslabs/aws-ddk/compare/0.5.1...0.6.0

    Source code(tar.gz)
    Source code(zip)
  • 0.5.1(Jun 23, 2022)

    🚀 Features / Bug fixes

    CLI:

    • add --all to ddk deploy by @jaidisido in https://github.com/awslabs/aws-ddk/pull/111

    Core:

    • Glue DataBrew Stage by @b-akhil in https://github.com/awslabs/aws-ddk/pull/123
    • remove Glue log encryption by default from security config by @kukushking in https://github.com/awslabs/aws-ddk/pull/126

    🙏 Thanks

    We thank the following contributors/users for their work on this release:

    @b-akhil, @jaidisido, @kukushking, @malachi-constant, @cnfait

    Full Changelog: https://github.com/awslabs/aws-ddk/compare/0.4.0...0.5.1

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(May 16, 2022)

    🚀 Features / Bug fixes

    Core:

    • Add stage rshift operator by @kukushking in https://github.com/awslabs/aws-ddk/pull/92
    • Refactor Stage construct to include Event, StateMachine and DataStage by @jaidisido in https://github.com/awslabs/aws-ddk/pull/104
    • Dms S3<->S3 ingestion stage by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/105

    CLI:

    • Add alpha packages to cli requirements.txt template by @jaidisido in https://github.com/awslabs/aws-ddk/pull/107

    Docs 📚

    • How-to guide ddk configuration by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/99
    • Expose configuration attributes for classes in documentation by @malachi-constant in https://github.com/awslabs/aws-ddk/pull/91
    • How-To Private Code Artifact and other enhancements by @jaidisido in https://github.com/awslabs/aws-ddk/pull/102

    Full Changelog: https://github.com/awslabs/aws-ddk/compare/0.3.0...0.4.0

    🙏 Thanks

    We thank the following contributors/users for their work on this release:

    @jaidisido, @kukushking, @malachi-constant, @cnfait

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Apr 12, 2022)

    ⚠️ Breaking changes

    • Update CDK to v2.20.0 and pin the version #83 #72
    • Replace CloudTrail with S3 EventBridge notifications in S3EventStage #83

    🚀 Features / Bug fixes

    Core:

    • Add additional_role_policy_statements to state machine stages #82
    • Expose state machine objects in stages #81
    • Add state machine alarms #76
    • Allow multiple CloudWatch alarms per stage #78
    • Add lambda layers to SQSToLambdaStage #79
    • Add security config to Glue factory #75
    • Add firehose delivery ingestion stage #71 🚀
    • Add CodeArtifact publish action #74
    • Add AppFlow stage #68 🚀
    • Add AthenaSQL stage #66 🚀
    • Add glue factory and create glue job and crawler in stage #63
    • Add data pipeline & stage alerting #55

    CLI:

    • Remove default AWS profile #61

    Docs 📚

    • Multi-account how-to #64

    🙏 Thanks

    We thank the following contributors/users for their work on this release:

    @jaidisido, @kukushking, @malachi-constant, @cnfait

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Mar 17, 2022)

    ⚠️ Breaking changes

    • Renamed aws_ddk_core.pipelines.Stage to aws_ddk_core.pipelines.DataStage and aws_ddk_core.pipelines.Pipeline to aws_ddk_core.pipelines.DataPipeline #33

    🚀 Features / Bug fixes

    • Enable event handling in SqsToLambdaStage #54
    • Improve git commands in CLI create-repository #53
    • Add StepFunctionFactory #48
    • Use Step Functions service-sent events in GlueTransformStage #51
    • Add escape hatches for SqsToLambdaStage #47
    • Add security checks and test stages to CICD pipeline construct #28
    • Add custom CodeBuild stage to CICD pipeline construct #37
    • Add CICD pipeline notifications via SNS #43

    Docs 📚

    • Create your own DDK Data Stage How-to guide

    🙏 Thanks

    We thank the following contributors/users for their work on this release:

    @jaidisido, @kukushking, @malachi-constant, @cnfait, @vemel, @NickCorbett

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Feb 17, 2022)

Owner
Amazon Web Services - Labs
AWS Labs
Amazon Web Services - Labs
Dante, my discord bot. Open source project in development and not optimized for other filesystems, install and setup script in development

DanteMode (In private development for ~6 months) Dante, my discord bot. Open source project in development and not optimized for other filesystems, in

null 2 Nov 5, 2021
AWS Blog post code for running feature-extraction on images using AWS Batch and Cloud Development Kit (CDK).

Batch processing with AWS Batch and CDK Welcome This repository demostrates provisioning the necessary infrastructure for running a job on AWS Batch u

AWS Samples 7 Oct 18, 2022
Automated AWS account hardening with AWS Control Tower and AWS Step Functions

Automate activities in Control Tower provisioned AWS accounts Table of contents Introduction Architecture Prerequisites Tools and services Usage Clean

AWS Samples 20 Dec 7, 2022
Implement backup and recovery with AWS Backup across your AWS Organizations using a CI/CD pipeline (AWS CodePipeline).

Backup and Recovery with AWS Backup This repository provides you with a management and deployment solution for implementing Backup and Recovery with A

AWS Samples 8 Nov 22, 2022
aws-lambda-scheduler lets you call any existing AWS Lambda Function you have in a future time.

aws-lambda-scheduler aws-lambda-scheduler lets you call any existing AWS Lambda Function you have in the future. This functionality is achieved by dyn

Oğuzhan Yılmaz 57 Dec 17, 2022
Ubuntu env build; Nginx build; DB build;

Deploy 介绍 Deploy related scripts bitnami Dependencies Ubuntu openssl envsubst docker v18.06.3 docker-compose init base env upload https://gitlab-runn

Colin(liuji) 10 Dec 1, 2021
AWS Auto Inventory allows you to quickly and easily generate inventory reports of your AWS resources.

Photo by Denny Müller on Unsplash AWS Automated Inventory ( aws-auto-inventory ) Automates creation of detailed inventories from AWS resources. Table

AWS Samples 123 Dec 26, 2022
AWS-serverless-starter - AWS Lambda serverless stack via Serverless framework

Serverless app via AWS Lambda, ApiGateway and Serverless framework Configuration

 Bəxtiyar 3 Feb 2, 2022
PyLyrics Is An [Open-Source] Bot That Can Help You Get Song Lyrics

PyLyrics-Bot Telegram Bot To Search Song Lyrics From Genuis. ?? Demo: ??‍?? Deploy: ❤ Deploy Your Own Bot : Star ?? Fork ?? & Deploy -Easy Way -Self-h

DAMIEN 12 Nov 12, 2022
DevSecOps pipeline for Python based web app using Jenkins, Ansible, AWS, and open-source security tools and checks.

DevSecOps pipeline for Python Web App A Jenkins end-to-end DevSecOps pipeline for Python web application, hosted on AWS Ubuntu 20.04 Note: This projec

Devanshu Vashishtha 4 Aug 15, 2022
Project template for using aws-cdk, Chalice and React in concert, including RDS Postgresql and AWS Cognito

What is This? This repository is an opinonated project template for using aws-cdk, Chalice and React in concert. Where aws-cdk and Chalice are in Pyth

Rasmus Jones 4 Nov 7, 2022
This repository contains code written in the AWS Cloud Development Kit (CDK)

This repository contains code written in the AWS Cloud Development Kit (CDK) which launches infrastructure across two different regions to demonstrate using AWS AppSync in a multi-region setup.

AWS Samples 5 Jun 3, 2022
A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier

A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier

Amazon Web Services - Labs 1.9k Jan 7, 2023
Unauthenticated enumeration of services, roles, and users in an AWS account or in every AWS account in existence.

Quiet Riot ?? C'mon, Feel The Noise ?? An enumeration tool for scalable, unauthenticated validation of AWS principals; including AWS Acccount IDs, roo

Wes Ladd 89 Jan 5, 2023
Automatically compile an AWS Service Control Policy that ONLY allows AWS services that are compliant with your preferred compliance frameworks.

aws-allowlister Automatically compile an AWS Service Control Policy that ONLY allows AWS services that are compliant with your preferred compliance fr

Salesforce 189 Dec 8, 2022
SSH-Restricted deploys an SSH compliance rule (AWS Config) with auto-remediation via AWS Lambda if SSH access is public.

SSH-Restricted SSH-Restricted deploys an SSH compliance rule with auto-remediation via AWS Lambda if SSH access is public. SSH-Auto-Restricted checks

Adrian Hornsby 30 Nov 8, 2022
POC de uma AWS lambda que executa a consulta de preços de criptomoedas, e é implantada na AWS usando Github actions.

Cryptocurrency Prices Overview Instalação Repositório Configuração CI/CD Roadmap Testes Overview A ideia deste projeto é aplicar o conteúdo estudado s

Gustavo Santos 3 Aug 31, 2022
Python + AWS Lambda Hands OnPython + AWS Lambda Hands On

Python + AWS Lambda Hands On Python Criada em 1990, por Guido Van Rossum. "Bala de prata" (quase). Muito utilizado em: Automatizações - Selenium, Beau

Marcelo Ortiz de Santana 8 Sep 9, 2022