기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Step Functions에서 CloudWatch 로그를 사용하여 실행 기록 기록
표준 워크플로는 실행 기록을 에 기록합니다. AWS Step Functions하지만 Amazon CloudWatch Logs에 대한 로깅을 선택적으로 구성할 수 있습니다.
표준 워크플로와 달리 익스프레스 워크플로는 실행 기록을 기록하지 않습니다. AWS Step Functions. 익스프레스 워크플로의 실행 기록과 결과를 보려면 Amazon CloudWatch Logs에 로깅을 구성해야 합니다. 로그를 게시해도 실행이 차단되거나 실행 속도가 느려지지 않습니다.
참고
로깅을 구성하면 CloudWatch 로그 요금이
로깅 구성
Step Functions 콘솔을 사용하여 표준 워크플로를 생성할 경우 해당 상태 머신은 로그를 Logs로 전송하도록 구성되지 않습니다. CloudWatch Step Functions 콘솔을 사용하여 익스프레스 워크플로를 생성할 때 해당 상태 머신은 기본적으로 로그를 Logs로 전송하도록 구성됩니다. CloudWatch
Express 워크플로의 경우 Step Functions는 필요한 역할을 생성할 수 있습니다. AWS Identity and Access Management CloudWatch 로그에 대한 (IAM) 정책. , 또는 를 사용하여 표준 워크플로나 익스프레스 워크플로를 API 생성하는 경우 CLI AWS CloudFormation, Step Functions는 기본적으로 로깅을 활성화하지 않으므로 역할에 필요한 권한이 있는지 확인해야 합니다.
콘솔에서 시작된 각 실행에 대해 Step Functions는 해당 실행과 관련된 로그 이벤트를 가져오도록 올바른 필터로 구성된 로그 링크를 제공합니다. CloudWatch
고객 관리형을 선택적으로 구성할 수 있습니다. AWS KMS 로그를 암호화하기 위한 키. 세부 정보 및 권한 설정은 을 저장 데이터 암호화 참조하십시오.
로깅을 구성하려면 CreateStateMachine또는 를 사용할 때 LoggingConfiguration매개변수를 전달하면 UpdateStateMachine됩니다. CloudWatch CloudWatch Logs Insights를 사용하여 Logs의 데이터를 추가로 분석할 수 있습니다. 자세한 내용은 로그 인사이트를 사용한 CloudWatch 로그 데이터 분석을 참조하십시오.
CloudWatch 로그 페이로드
실행 내역 이벤트에 해당 정의의 입력 또는 출력 속성이 포함될 수 있습니다. Logs로 전송된 이스케이프된 입력 또는 이스케이프된 출력이 248KB를 초과하는 경우 CloudWatch 로그 할당량의 결과로 잘립니다. CloudWatch
-
inputDetails
및outputDetails
속성을 검토하여 페이로드가 잘렸는지 여부를 확인할 수 있습니다. 자세한 내용은HistoryEventExecutionDataDetails
데이터 유형을 참조하세요. -
표준 워크플로의 경우
GetExecutionHistory
를 사용하여 전체 실행 내역을 확인할 수 있습니다. -
Express 워크플로에
GetExecutionHistory
을 사용할 수 없습니다. 전체 입력 및 출력을 보려면 Amazon S3를 사용할 수 있습니다ARNs. 자세한 내용은 Step Functions에서 대용량 페이로드를 전달하는 ARNs 대신 Amazon S3 사용 단원을 참조하십시오.
IAM CloudWatch 로그 로깅 정책
또한 다음 예와 같이 CloudWatch 로그에 로그인할 수 있는 적절한 권한을 갖도록 상태 머신의 실행 IAM 역할을 구성해야 합니다.
IAM정책 예제
다음은 권한을 구성하는 데 사용할 수 있는 정책의 예입니다. 다음 예와 같이 Resource
필드에 *를 지정해야 합니다. CloudWatch API CreateLogDelivery 및 와 DescribeLogGroups 같은 작업은 에서 정의한 리소스 유형을 지원하지 않습니다.Amazon CloudWatch Logs. 자세한 내용은 다음으로 정의된 작업을 참조하십시오.Amazon CloudWatch Logs.
-
자세한 내용은 CloudWatch 리소스는 다음을 참조하십시오. CloudWatch LogsAmazon CloudWatch 사용 설명서의 리소스 및 운영
-
로그로 로그를 전송하도록 설정하는 데 필요한 권한에 대한 자세한 내용은 CloudWatch 로그 전송 대상 섹션의 사용자 권한을 참조하십시오. CloudWatch Logs.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogStream", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
상태 머신이 로그에 로깅하는 CloudWatch 문제 해결
상태 머신이 로그를 로그로 CloudWatch 전송할 수 없는 경우 다음 단계를 시도해 보십시오.
-
상태 머신의 실행 역할에 로그에 기록할 CloudWatch 권한이 있는지 확인하십시오.
호출 CreateStateMachine또는 UpdateStateMachineAPI엔드포인트를 사용할 때는
roleArn
파라미터에 지정된 IAM 역할이 이전 IAM 정책 예제와 같이 필요한 권한을 제공하는지 확인하십시오. -
CloudWatch Logs 리소스 정책이 5,120자 제한을 초과하지 않는지 확인하십시오.
정책이 문자 제한을 초과하는 경우 로그 그룹 이름 앞에 접두사를 붙여 상태
/aws/vendedlogs/states
머신에 권한을 부여하고 제한을 피하세요. Step Functions 콘솔에서 로그 그룹을 생성할 때 제안된 로그 그룹 이름에는 이미 접두사가 붙습니다/aws/vendedlogs/states
. 로깅 모범 사례에 대한 자세한 내용은 을 참조하십시오CloudWatch 리소스 정책 크기 제한을 기록합니다..
Step Functions 실행 이벤트의 로그 수준
로그 레벨의 범위는 ALL
ERROR
FATAL
~~까지입니다OFF
. 로 설정하면 모든 이벤트 유형이 ALL
기록되며 이벤트 유형은 기록되지 않습니다OFF
. ERROR
및 FATAL
에 대해서는 다음 표를 참조하십시오.
이러한 로그 수준을 기반으로 Express 워크플로 실행에 대해 표시되는 실행 데이터에 대한 자세한 내용은 스탠다드 콘솔과 익스프레스 콘솔 경험의 차이 섹션을 참조하세요.
이벤트 유형 | ALL |
ERROR |
FATAL |
OFF |
---|---|---|---|---|
ChoiceStateEntered |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ChoiceStateExited |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ExecutionAborted |
기록됨 | 기록됨 | 기록됨 | 로그인되지 않음 |
ExecutionFailed |
기록됨 | 기록됨 | 기록됨 | 로그인되지 않음 |
ExecutionStarted |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ExecutionSucceeded |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ExecutionTimedOut |
기록됨 | 기록됨 | 기록됨 | 로그인되지 않음 |
FailStateEntered |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionScheduled | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionScheduleFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionStarted |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionStartFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionSucceeded |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
LambdaFunctionTimedOut |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapIterationAborted |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapIterationFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapIterationStarted |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
MapIterationSucceeded |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
MapRunAborted |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapRunFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapStateAborted |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapStateEntered |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
MapStateExited |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
MapStateFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
MapStateStarted |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
MapStateSucceeded |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ParallelStateAborted |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
ParallelStateEntered |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ParallelStateExited |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ParallelStateFailed | 기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
ParallelStateStarted |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
ParallelStateSucceeded |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
PassStateEntered |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
PassStateExited |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
SucceedStateEntered |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
SucceedStateExited |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
TaskScheduled |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskStarted | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskStartFailed |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
TaskStateAborted |
기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
TaskStateEntered |
기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskStateExited | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskSubmitFailed | 기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
TaskSubmitted | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskSucceeded | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
TaskTimedOut | 기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
WaitStateAborted | 기록됨 | 기록됨 | 로그인되지 않음 | 로그인되지 않음 |
WaitStateEntered | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |
WaitStateExited | 기록됨 | 로그인되지 않음 | 로그인되지 않음 | 로그인되지 않음 |