StepFunctions가 AWS CDK에 구축되었습니다.
수고하셨습니다.@naokiur.
올해도 책임지게 해주세요.
최근 비즈니스에서 AWS 리소스를 구축할 때
CloudFormation 및 Serverless에서
나는 인코딩에 주의한다.
(용법용량을 지키고 목적을 잊지 마세요...)
덕분에 YAML 형식 파일을 쓰는 데 익숙해졌습니다.
이런 상황에서
AWS CDK
그리고 AWS CDK에서 Java 및.NET는 일반 이용이 가능합니다!!
저도 개인적으로 Java를 좋아해요.
어렵기 때문에 Java로 AWS CDK를 시도했습니다.
Overview
저도 추천받았어요.
AWS 공개CDK Workshop
아무것도 모르는 자신에게 정말 다행이다!
환경
한 일
최근에 비즈니스에 StepFunctions를 만들었습니다.
StepFunctions가 AWS CDK에 구축되었습니다.
컨텐트
cdk 명령 설치
npm install -g aws-cdk
프로젝트 템플릿 만들기
다음 명령을 사용하여 Java에 대한 프로젝트 템플릿을 생성할 수 있습니다.cdk init --a {プロジェクト名} --language java
마븐 프로젝트야.
나는 개인적으로 좀 그립다.
여기는プロジェクト名 = sample
입니다.
App 및 Stack
자세한 내용을 확인한 후
생성SampleApp
및SampleStack
.
Stack 이름 그대로
이것이 바로 CloudFormation의 1Stack입니다.
의 인식.
기본적으로
SQL과 SNS를 만드는 스택인 것 같습니다.
pom.xml
core
제외
각 AWS 서비스에는 종속 관계가 있습니다.
사용하는 AWS 서비스가 증가하면 의존 관계를 추가해야 할 것 같습니다.
StepFunctions 구축
기본 SQL 및 SNS 삭제
Stack에 Lambda 및 StepFunctions 를 추가합니다.
의존 관계 추가
Lambda와 StepFunctions의 라이브러리는pom입니다.xml에 추가합니다.
pom.xml<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>lambda</artifactId>
<version>1.18.0</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>stepfunctions</artifactId>
<version>1.18.0</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>stepfunctions-tasks</artifactId>
<version>1.18.0</version>
</dependency>
StepFunctions에 대한 자세한 내용은 를 참조하십시오.
뿐만 아니라 stepfunctions
stepfunctions-tasks
.
스택에 리소스 추가
Lambda 및 StepFunctions 리소스를 추가합니다.{Resource}.Builder.hoge().fuga().build()
형식으로
당신은 자원을 생성할 수 있는 많은 상황을 보았습니다.
개인적인 취향이지만 항상 서술이 완비되어 있어 보기 쉽다.
SampleStack.javapublic class SampleStack extends Stack {
public SampleStack(final Construct parent, final String id) {
this(parent, id, null);
}
public SampleStack(final Construct parent, final String id, final StackProps props) {
super(parent, id, props);
final Function hello = Function.Builder.create(this, "HelloHandler")
.runtime(Runtime.PYTHON_3_6)
.code(Code.fromAsset("lambda"))
.handler("hello.lambda_handler")
.build();
final Function world = Function.Builder.create(this, "WorldHandler")
.runtime(Runtime.PYTHON_3_6)
.code(Code.fromAsset("lambda"))
.handler("world.lambda_handler")
.build();
final Task helloTask = Task.Builder.create(this, "HelloTask")
.task(InvokeFunction.Builder.create(hello).build())
.build();
final Task worldTask = Task.Builder.create(this, "WorldTask")
.task(InvokeFunction.Builder.create(world).build())
.build();
final StateMachine machine = StateMachine.Builder.create(this, "SampleStateMachine")
.definition(helloTask.next(worldTask))
.build();
}
}
Lambda 파일 저장
Lambda에서 실제로 이동하는 방법은요.srcディレクトリと同列のディレクトリ配下
.実際にLambda上で動かすメソッドは、Javaでなくても問題ない
여기에 Python 파일이 준비되어 있습니다.
배치
실행하지 않았기 때문에 우선 아래 명령을 실행합니다.cdk bootstrap
배포를 위한 S3 시간대 Stack을 만듭니다.
배포를 위해
다음 명령을 실행합니다.mvn package
cdk deploy
상기 내용에 근거하여
클라우드 형식에 스택이 생성되었습니다.
리소스
StepFunctions가 생성되었습니다.
실행할 수 있다!
감상
cdk 명령 설치
npm install -g aws-cdk
프로젝트 템플릿 만들기
다음 명령을 사용하여 Java에 대한 프로젝트 템플릿을 생성할 수 있습니다.
cdk init --a {プロジェクト名} --language java
마븐 프로젝트야.
나는 개인적으로 좀 그립다.
여기는
プロジェクト名 = sample
입니다.App 및 Stack
자세한 내용을 확인한 후
생성
SampleApp
및SampleStack
.Stack 이름 그대로
이것이 바로 CloudFormation의 1Stack입니다.
의 인식.
기본적으로
SQL과 SNS를 만드는 스택인 것 같습니다.
pom.xml
core
제외각 AWS 서비스에는 종속 관계가 있습니다.
사용하는 AWS 서비스가 증가하면 의존 관계를 추가해야 할 것 같습니다.
StepFunctions 구축
기본 SQL 및 SNS 삭제
Stack에 Lambda 및 StepFunctions 를 추가합니다.
의존 관계 추가
Lambda와 StepFunctions의 라이브러리는pom입니다.xml에 추가합니다.
pom.xml
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>lambda</artifactId>
<version>1.18.0</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>stepfunctions</artifactId>
<version>1.18.0</version>
</dependency>
<dependency>
<groupId>software.amazon.awscdk</groupId>
<artifactId>stepfunctions-tasks</artifactId>
<version>1.18.0</version>
</dependency>
StepFunctions에 대한 자세한 내용은 를 참조하십시오.뿐만 아니라
stepfunctions
stepfunctions-tasks
.스택에 리소스 추가
Lambda 및 StepFunctions 리소스를 추가합니다.
{Resource}.Builder.hoge().fuga().build()
형식으로당신은 자원을 생성할 수 있는 많은 상황을 보았습니다.
개인적인 취향이지만 항상 서술이 완비되어 있어 보기 쉽다.
SampleStack.java
public class SampleStack extends Stack {
public SampleStack(final Construct parent, final String id) {
this(parent, id, null);
}
public SampleStack(final Construct parent, final String id, final StackProps props) {
super(parent, id, props);
final Function hello = Function.Builder.create(this, "HelloHandler")
.runtime(Runtime.PYTHON_3_6)
.code(Code.fromAsset("lambda"))
.handler("hello.lambda_handler")
.build();
final Function world = Function.Builder.create(this, "WorldHandler")
.runtime(Runtime.PYTHON_3_6)
.code(Code.fromAsset("lambda"))
.handler("world.lambda_handler")
.build();
final Task helloTask = Task.Builder.create(this, "HelloTask")
.task(InvokeFunction.Builder.create(hello).build())
.build();
final Task worldTask = Task.Builder.create(this, "WorldTask")
.task(InvokeFunction.Builder.create(world).build())
.build();
final StateMachine machine = StateMachine.Builder.create(this, "SampleStateMachine")
.definition(helloTask.next(worldTask))
.build();
}
}
Lambda 파일 저장
Lambda에서 실제로 이동하는 방법은요.
srcディレクトリと同列のディレクトリ配下
.実際にLambda上で動かすメソッドは、Javaでなくても問題ない
여기에 Python 파일이 준비되어 있습니다.배치
실행하지 않았기 때문에 우선 아래 명령을 실행합니다.
cdk bootstrap
배포를 위한 S3 시간대 Stack을 만듭니다.배포를 위해
다음 명령을 실행합니다.
mvn package
cdk deploy
상기 내용에 근거하여클라우드 형식에 스택이 생성되었습니다.
리소스
StepFunctions가 생성되었습니다.
실행할 수 있다!
감상
나는
InvokeFunction
가 어디에 있는지 몰라 망설였다 (TypeScript) 샘플를 잘 읽으면 길을 잃지 않을 텐데...
全くなかった
コンパイルエラーにして
느낌을 준다8일째는 @watarukura 선생님!
참고하도록 허락해 주십시오
Reference
이 문제에 관하여(StepFunctions가 AWS CDK에 구축되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naokiur/items/c625e40cde85f1cb67dd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)