Skip to main content

aws-s3-step-function module

---

Stability: Deprecated

Some of our early constructs don’t meet the naming standards that evolved for the library. We are releasing completely feature compatible versions with corrected names. The underlying implementation code is the same regardless of whether you deploy the construct using the old or new name. We will support both names for all 1.x releases, but in 2.x we will only publish the correctly named constructs. This construct is being replaced by the functionally identical aws-s3-stepfunctions.


Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_s3_step_function
Typescript Logo Typescript @aws-solutions-constructs/aws-s3-step-function
Java Logo Java software.amazon.awsconstructs.services.s3stepfunction

Overview

This AWS Solutions Construct implements an Amazon S3 bucket connected to an AWS Step Function.

Note - This constructs sends S3 Event Notification to EventBridge, then triggers AWS Step Functions State Machine executions from EventBridge.

An alternative architecture can be built that triggers a Lambda function from S3 Event notifications using aws-s3-lambda and aws-lambda-stepfunctions. Channelling the S3 events through Lambda is less flexible than EventBridge, but is more cost effective and has lower latency.

Here is a minimal deployable pattern definition:

Typescript

// aws-s3-step-function has been deprecated for CDK V2 in favor of aws-s3-stepfunctions.
// This sample uses the CDK V1 syntax
import * as cdk from '@aws-cdk/core';
import { S3ToStepFunction, S3ToStepFunctionProps } from '@aws-solutions-constructs/aws-s3-step-function';
import * as stepfunctions from '@aws-cdk/aws-stepfunctions';

const startState = new stepfunctions.Pass(this, 'StartState');

new S3ToStepFunction(this, 'test-s3-step-function-stack', {
  stateMachineProps: {
    definition: startState
  }
});

Python

# aws-s3-step-function has been deprecated for CDK V2 in favor of aws-s3-stepfunctions.
# This sample uses the CDK V1 syntax
from aws_solutions_constructs.aws_s3_step_function import S3ToStepFunction
from aws_cdk import (
    aws_stepfunctions as stepfunctions,
    core
)

start_state = stepfunctions.Pass(self, 'start_state')

S3ToStepFunction(
    self, 'test_s3_step_function_stack',
    state_machine_props=stepfunctions.StateMachineProps(
        definition=start_state)
)

Java

// aws-s3-step-function has been deprecated for CDK V2 in favor of aws-s3-stepfunctions.
// This sample uses the CDK V1 syntax
import software.constructs.Construct;

import software.amazon.awscdk.core.*;
import software.amazon.awscdk.services.stepfunctions.*;
import software.amazon.awsconstructs.services.s3stepfunction.*;

final Pass startState = new Pass(this, "StartState");

new S3ToStepFunction(this, "test_s3_stepfunctions_stack",
        new S3ToStepFunctionProps.Builder()
                .stateMachineProps(new StateMachineProps.Builder()
                        .definition(startState)
                        .build())
                .build());

Pattern Construct Props

Name Type Description
existingBucketObj? s3.IBucket Existing instance of S3 Bucket object. The existing bucket must have EventBridge enabled for this to work. If this is provided, then also providing bucketProps is an error.
bucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Bucket.
stateMachineProps sfn.StateMachineProps User provided props to override the default props for sfn.StateMachine
eventRuleProps? events.RuleProps Optional user provided eventRuleProps to override the defaults
deployCloudTrail? boolean Whether to deploy a Trail in AWS CloudTrail to log API events in Amazon S3. Defaults to true. This is now deprecated and ignored because the construct no longer needs CloudTrail since it uses S3 Event Notifications.
createCloudWatchAlarms boolean Whether to create recommended CloudWatch alarms.
logGroupProps? logs.LogGroupProps User provided props to override the default props for for the CloudWatchLogs LogGroup.
loggingBucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Logging Bucket.
logS3AccessLogs? boolean Whether to turn on Access Logging for the S3 bucket. Creates an S3 bucket with associated storage costs for the logs. Enabling Access Logging is a best practice. default - true

Pattern Properties

Name Type Description
stateMachine sfn.StateMachine Returns an instance of sfn.StateMachine created by the construct
stateMachineLogGroup logs.ILogGroup Returns an instance of the ILogGroup created by the construct for StateMachine
cloudwatchAlarms? cloudwatch.Alarm[] Returns a list of cloudwatch.Alarm created by the construct.
s3Bucket? s3.Bucket Returns an instance of the s3.Bucket created by the construct
s3LoggingBucket? s3.Bucket Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.
s3BucketInterface s3.IBucket Returns an instance of s3.IBucket created by the construct.

Note - with the release of Enable EventBridge for Amazon S3, AWS CloudTrail is no longer required to implement this construct. Because of this, the following properties have been removed:

  • cloudtrail
  • cloudtrailBucket
  • cloudtrailLoggingBucket

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

Amazon S3 Bucket

  • Enable EventBridge to send events from the S3 Bucket
  • Configure Access logging for S3 Bucket
  • Enable server-side encryption for S3 Bucket using AWS managed KMS Key
  • Enforce encryption of data in transit
  • Turn on the versioning for S3 Bucket
  • Don't allow public access for S3 Bucket
  • Retain the S3 Bucket when deleting the CloudFormation stack
  • Applies Lifecycle rule to move noncurrent object versions to Glacier storage after 90 days

AWS S3 Event Notification

  • Enable S3 to send events to EventBridge when an object is created.

Amazon CloudWatch Events Rule

  • Grant least privilege permissions to CloudWatch Events to trigger the Lambda Function

AWS Step Function

  • Enable CloudWatch logging for API Gateway
  • Deploy best practices CloudWatch Alarms for the Step Function

Architecture

Architecture Diagram


© Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Metadata

Release files for aws-solutions-constructs.aws-s3-step-function 1.181.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws-solutions-constructs.aws-s3-step-function 1.181.1
File Size Uploaded Provenance Actions
aws-solutions-constructs.aws-s3-step-function-1.181.1.tar.gz 211.0 kB Without provenance Details for aws-solutions-constructs.aws-s3-step-function-1.181.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aws-solutions-constructs.aws-s3-step-function 1.181.1
File Interpreter ABI Platform Actions
aws_solutions_constructs.aws_s3_step_function-1.181.1-py3-none-any.whl Python 3 none any Details for aws_solutions_constructs.aws_s3_step_function-1.181.1-py3-none-any.whl

Total release size: 420.6 kB

Release files / aws-solutions-constructs.aws-s3-step-function-1.181.1.tar.gz

Download URL aws-solutions-constructs.aws-s3-step-function-1.181.1.tar.gz
Size 211.0 kB
Tags Source
SHA-256 checksum
How to use checksums
baf2ad80f4f413f3410185b26aad559c6297cc868883083d9ae531ef54d5e9ff
BLAKE2b-256 checksum
How to use checksums
9c622ba952d96024b93abb0366d2b5e5d8d686886a8dd9841d7e713ec7c86455
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.12

Release files / aws_solutions_constructs.aws_s3_step_function-1.181.1-py3-none-any.whl

Download URL aws_solutions_constructs.aws_s3_step_function-1.181.1-py3-none-any.whl
Size 209.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92fb475e4c456aff27b9409fb975fc780500cf5fa8d72cfb2da500fc1e7e6b00
BLAKE2b-256 checksum
How to use checksums
962e1a70f0d03819779db56ef75843cda28cb48e53d92e76cce9c8f93669a620
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.12

Security for aws-solutions-constructs.aws-s3-step-function 1.181.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.181.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page