기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Step Functions 작업 참조 호출
다음을 수행하는 AWS CodePipeline 작업입니다.
-
파이프라인에서 AWS Step Functions 스테이트 머신 실행을 시작합니다.
-
작업 구성의 속성이나 입력으로 전달할 파이프라인 아티팩트에 있는 파일을 통해 상태 시스템에 초기 상태를 제공합니다.
-
선택적으로 작업에서 시작된 실행을 식별하기 위한 실행 ID 접두사를 설정합니다.
-
Standard 및 Express 상태 시스템을 지원합니다.
참고
Step Functions 작업은 Lambda에서 실행되므로 Lambda 함수의 아티팩트 크기 할당량과 동일한 아티팩트 크기 할당량이 있습니다. 자세한 내용은 Lambda 개발자 안내서의 Lambda 할당량을 참조하십시오.
작업 유형
-
범주:
Invoke
-
소유자:
AWS
-
공급자:
StepFunctions
-
버전:
1
구성 파라미터
- StateMachineArn
-
필수 여부: 예
호출할 상태 머신의 Amazon 리소스 이름 (ARN).
- ExecutionNamePrefix
-
필수 여부: 아니요
기본적으로 작업 실행 ID는 상태 시스템 실행 이름으로 사용됩니다. 접두사가 제공되면 작업 실행 ID 앞에 하이픈이 추가되고 상태 시스템 실행 이름으로 함께 사용됩니다.
myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791
express 상태 시스템의 경우 이름에는 0-9, A-Z, a-z, - 및 _만 포함해야 합니다.
- InputType
-
필수 여부: 아니요
-
리터럴(기본값): 지정되면 입력 필드의 값이 상태 시스템 입력으로 직접 전달됩니다.
리터럴을 선택한 경우의 입력 필드 예제 항목:
{"action": "test"}
-
FilePath: Input 필드에 지정된 입력 아티팩트에 있는 파일의 내용은 스테이트 머신 실행을 위한 입력으로 사용됩니다. 로 설정된 경우 입력 InputType아티팩트가 필요합니다. FilePath
선택한 FilePath경우의 입력 필드 입력 예제:
assets/input.json
-
- Input
-
필수 항목 여부: 조건부
-
리터럴: InputType이 리터럴 (기본값) 으로 설정된 경우 이 필드는 선택사항입니다.
제공되는 경우 입력 필드는 상태 시스템 실행의 입력으로 직접 사용됩니다. 그렇지 않으면 빈 개체와 함께 상태 머신이 호출됩니다. JSON
{}
-
FilePath: 로 설정된 FilePath경우 이 필드는 필수입니다. InputType
로 FilePath설정된 경우에도 입력 아티팩트가 필요합니다. InputType
지정된 입력 아티팩트의 파일 내용은 상태 시스템 실행을 위한 입력으로 사용됩니다.
-
입력 아티팩트
-
아티팩트 수:
0 to 1
-
설명: 로 FilePath설정된 경우 InputType이 아티팩트는 필수이며 스테이트 머신 실행을 위한 입력을 소싱하는 데 사용됩니다.
출력 아티팩트
-
아티팩트 수:
0 to 1
-
설명:
-
Standard 상태 시스템: 제공되는 경우 출력 아티팩트가 상태 시스템의 출력으로 채워집니다. 이는 스테이트 머신 실행이 성공적으로 완료된 후 Step Functions DescribeExecution API 응답의
output
속성에서 가져옵니다. -
Express 상태 시스템: 지원되지 않습니다.
-
출력 변수
이 작업은 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 출력 변수를 생성합니다.
자세한 내용은 변수 레퍼런스 단원을 참조하십시오.
- StateMachineArn
-
스테이트 머신의. ARN
- ExecutionArn
-
스테이트 ARN 머신의 실행. Standard 상태 시스템에만 해당됩니다.
예제 작업 구성
기본 입력의 예
리터럴 입력의 예
입력 파일의 예
동작
릴리스 중에는 작업 컨피그레이션에 지정된 입력을 사용하여 구성된 상태 머신을 CodePipeline 실행합니다.
를 Literal로 설정하면 입력 작업 구성 필드의 내용이 상태 머신의 입력으로 사용됩니다. InputType 리터럴 입력이 제공되지 않는 경우 스테이트 머신 실행은 빈 JSON 객체를 사용합니다. {}
입력 없이 스테이트 머신 실행을 실행하는 방법에 대한 자세한 내용은 Step Functions를 참조하십시오 StartExecutionAPI.
InputType가 로 FilePath설정된 경우 액션은 입력 아티팩트의 압축을 풀고 입력 작업 구성 필드에 지정된 파일의 내용을 상태 머신의 입력으로 사용합니다. 를 지정하는 경우 FilePath입력 필드가 필수이고 입력 아티팩트가 있어야 합니다. 그렇지 않으면 작업이 실패합니다.
성공적인 시작 실행 후, 동작은 두 가지 상태 시스템 유형인 standard 및 express에 대해 분기됩니다.
Standard 상태 시스템
표준 스테이트 머신 실행이 성공적으로 시작된 경우 실행이 터미널 상태에 도달할 DescribeExecution
API 때까지 를 CodePipeline 폴링합니다. 실행이 성공적으로 완료되면 작업이 성공하고 그렇지 않으면 실패합니다.
출력 아티팩트가 구성되면 아티팩트는 상태 시스템의 반환 값을 포함합니다. 이는 스테이트 머신 실행이 성공적으로 완료된 후 Step Functions DescribeExecution API 응답의 output
속성에서 가져옵니다. 여기에는 출력 길이 제약이 적용된다는 점에 유의하십시오. API
오류 처리
-
작업이 상태 시스템 실행을 시작하지 못하면 작업 실행이 실패합니다.
-
CodePipeline Step Functions 작업이 제한 시간 (기본값 7일) 에 도달하기 전에 상태 시스템 실행이 터미널 상태에 도달하지 못하면 작업 실행이 실패합니다. 이렇게 실패해도 상태 시스템이 계속될 수 있습니다. Step Functions의 상태 시스템 실행 제한 시간에 대한 자세한 내용은 표준 워크플로와 Express 워크플로 비교를 참조하세요.
참고
작업이 있는 계정의 호출 작업 시간 제한에 대한 할당량 증가를 요청할 수 있습니다. 그러나 할당량 증가는 해당 계정의 모든 리전에서 이 유형의 모든 작업에 적용됩니다.
-
스테이트 머신 실행이 터미널 상태 FAILEDOUT, TIMED _ 또는 ABORTED 에 도달하면 작업 실행이 실패합니다.
Express 상태 시스템
express 상태 시스템 실행이 성공적으로 시작되면 invoke 작업 실행이 성공적으로 완료됩니다.
express 상태 시스템에 대해 구성된 작업에 대한 고려 사항:
-
출력 아티팩트를 지정할 수 없습니다.
-
작업은 상태 시스템 실행이 완료될 때까지 기다리지 않습니다.
-
에서 CodePipeline 작업 실행이 시작된 후에는 상태 시스템 실행이 실패하더라도 작업 실행은 성공합니다.
오류 처리
-
스테이트 머신 실행을 시작하지 CodePipeline 못하면 액션 실행도 실패합니다. 그렇지 않으면 작업이 즉시 성공합니다. 상태 머신 실행이 완료되는 데 걸리는 시간이나 실행 결과에 CodePipeline 관계없이 작업이 성공합니다.
다음 사항도 참조하세요.
이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
-
AWS Step Functions 개발자 안내서 - 상태 머신의 상태 머신, 실행 및 입력에 대한 자세한 내용은 AWS Step Functions 개발자 안내서를 참조하십시오.
-
튜토리얼: 파이프라인에서 AWS Step Functions 호출 작업 사용 - 이 자습서에서는 샘플 standard 상태 시스템으로 시작하고 콘솔을 사용하여 Step Functions 간접 호출 작업을 추가하여 파이프라인을 업데이트하는 방법을 보여줍니다.