projen-statemachine-example
Project description
projen-simple
Build a custom construct based on an AWS Blog post and use projen to publish to 4 language repositories. (Hope Go is coming soon)
Architecture
This library constrcution is referred to this AWS blog.
How to utilize polyglot packages
TypeScript
$ cdk --init language typescript
$ yarn add projen-statemachine-example
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from scotthsieh_projen_statemachine import StateMachineApiGatewayExample
class TypescriptStack(cdk.Stack):
def __init__(self, scope, id, props=None):
super().__init__(scope, id, props)
stage_name = "default"
part_path = "pets"
example_construct = StateMachineApiGatewayExample(self, "KerKer",
stage_name=stage_name, part_path=part_path
)
cdk.CfnOutput(self, "OStateMachine",
value=example_construct.state_machine.state_machine_arn
)
cdk.CfnOutput(self, "OExecutionOutput",
value=example_construct.execution_input, description="Sample input to StartExecution."
)
Python
$ cdk init --language python
$ cat <<EOL > requirements.txt
aws-cdk.core
scotthsieh_projen_statemachine
EOL
$ python -m pip install -r requirements.txt
from aws_cdk import core as cdk
from scotthsieh_projen_statemachine import StateMachineApiGatewayExample
class PythonStack(cdk.Stack):
def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
stage_name = 'default'
part_path = 'pets'
example_construct = StateMachineApiGatewayExample(
self, 'PythonStatemachne', stage_name=stage_name, part_path=part_path,
)
cdk.CfnOutput(self, "OStateMachine",
value=example_construct.state_machine.state_machine_arn
)
cdk.CfnOutput(self, "OExecutionOutput", value=example_construct.execution_input, description="Sample input to StartExecution.")
Java
$ cdk init --language java
.
.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<custom.construct.version>0.1.20</custom.construct.version>
<cdk.version>1.104.0</cdk.version>
<junit.version>5.7.1</junit.version>
</properties>
.
.
<dependencies>
<!-- AWS Cloud Development Kit -->
.
.
.
<dependency>
<groupId>io.github.hsiehshujeng</groupId>
<artifactId>projen-statemachine</artifactId>
<version>${custom.construct.version}</version>
</dependency>
.
.
.
</dependencies>
package com.myorg;
import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.CfnOutput;
import software.amazon.awscdk.core.CfnOutputProps;
import software.amazon.awscdk.core.Stack;
import software.amazon.awscdk.core.StackProps;
import io.github.hsiehshujeng.projen.statemachine.*;
public class JavaStack extends Stack {
public JavaStack(final Construct scope, final String id) {
this(scope, id, null);
}
public JavaStack(final Construct scope, final String id, final StackProps props) {
super(scope, id, props);
String stageName = "default";
String partPath = "pets";
StateMachineApiGatewayExample exampleConstruct = new StateMachineApiGatewayExample(this, "KerKer",
StateMachineApiGatewayExampleProps.builder().stageName(stageName).partPath(partPath).build());
new CfnOutput(this, "OStateMachine",
CfnOutputProps.builder()
.value(exampleConstruct.getStateMachine().getStateMachineArn()).build());
new CfnOutput(this, "OExecutionOutput", CfnOutputProps.builder()
.value(exampleConstruct.getExecutionInput())
.description("Sample input to StartExecution.").build());
}
}
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for scotthsieh_projen_statemachine-0.1.21.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c866e5e8d1c8dade223d7dfc42dd0708d16f00185362e86a4009e88a0597a7cd |
|
MD5 | 1027db322c7a987d9f9630da72cea7cd |
|
BLAKE2b-256 | 147122ce1e6173db1426205946739ac2e9e5d3d205820464d74cf5b682c02171 |
Close
Hashes for scotthsieh_projen_statemachine-0.1.21-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47b5729940e3d5c82d3236b1c792bb03f96c93ea17515875e43276ca0f43a78c |
|
MD5 | f38580cb54d9ff928760b5f8a0e5b332 |
|
BLAKE2b-256 | 68f309c0e9fa5d8a993aa56cb8ba53562296d123de501dc06604725344088aca |