

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 이벤트에 대한 응답으로 Step Functions 워크플로 시작
<a name="tutorial-cloudwatch-events-s3"></a>

Amazon EventBridge 규칙에 의해 Step Functions에 대상으로 라우팅된 이벤트에 대한 응답으로 AWS Step Functions 상태 시스템을 실행할 수 있습니다.

다음 자습서에서는 상태 머신을 Amazon EventBridge 규칙의 대상으로 구성하는 방법을 보여줍니다. 파일이 Amazon Simple Storage Service(Amazon S3) 버킷에 추가될 때 EventBridge 규칙이 상태 시스템 실행을 시작합니다.

이 접근 방식의 실제 예는 버킷에 추가된 이미지 파일에 대해 Amazon Rekognition 분석을 실행하여 키워드를 분류하고 할당하는 상태 머신일 수 있습니다.

이 자습서에서는 파일을 Amazon S3 버킷에 업로드하여 `Helloworld` 상태 머신 실행을 시작합니다. 그런 다음 해당 실행의 예제 입력을 검토하여 EventBridge로 전달된 Amazon S3 이벤트 알림의 입력에 포함된 정보를 식별합니다.

## 사전 조건: 상태 머신 생성
<a name="tutorial-cloudwatch-events-s3-prereqs"></a>

상태 머신을 Amazon EventBridge 대상으로 구성하려면 먼저 상태 머신을 만들어야 합니다.
+ 기본 상태 머신을 만들려면 [Lambda 함수를 사용하는 상태 머신 생성](tutorial-creating-lambda-state-machine.md) 자습서를 사용합니다.
+ `Helloworld` 상태 머신이 이미 있으면 다음 단계로 진행합니다.

## 1단계: Amazon S3에 버킷 만들기
<a name="tutorial-cloudwatch-events-s3-bucket"></a>

`Helloworld` 상태 머신이 있으므로 이제 파일을 저장하는 Amazon S3 버킷을 만들어야 합니다. 이 자습서의 3단계에서는 파일이 이 버킷에 업로드될 때 EventBridge에서 상태 머신 실행을 트리거하도록 규칙을 설정합니다.

1. [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)로 이동한 다음 **버킷 생성**을 선택하여 파일을 저장하고 Amazon S3 이벤트 규칙을 트리거할 버킷을 만듭니다.

1. **버킷 이름**을 입력합니다(예: `{{username}}-sfn-tutorial`).
**참고**  
버킷 이름은 Amazon S3의 모든 AWS 리전에 있는 모든 기존 버킷 이름에서 고유해야 합니다. 자신의 {{사용자 이름}}을 사용하여 이 이름을 고유하게 합니다. 동일한 AWS 리전에 모든 리소스를 생성해야 합니다.

1. 페이지에 있는 모든 기본 선택 항목을 그대로 두고 **버킷 생성**을 선택합니다.

## 2단계: EventBridge로 Amazon S3 이벤트 알림 활성화
<a name="tutorial-cloudwatch-events-s3-eb-notification"></a>

Amazon S3 버킷을 만든 후 S3 버킷에서 파일 업로드와 같은 특정 이벤트가 발생할 때마다 이벤트를 EventBridge로 보내도록 버킷을 구성합니다.

1. [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)로 이동합니다.

1. **버킷(Buckets)** 목록에서 이벤트를 사용 설정하려는 버킷의 이름을 선택합니다.

1. [**속성(Properties)**]을 선택합니다.

1. 페이지를 아래로 스크롤하여 **이벤트 알림** 섹션을 본 다음 **Amazon EventBridge** 하위 섹션에서 **편집**을 선택합니다.

1. **이 버킷의 모든 이벤트에 대해 Amazon EventBridge에 알림 보내기**에서 **켜기**를 선택합니다.

1. **변경 사항 저장**을 선택합니다.
**참고**  
EventBridge를 사용 설정한 후에는 변경 사항이 적용되는 데 5분 정도 걸립니다.

## 3단계: Amazon EventBridge 규칙 만들기
<a name="tutorial-cloudwatch-events-s3-cwe"></a>

상태 머신이 있고 Amazon S3 버킷을 만들고 이벤트 알림을 EventBridge에 보내도록 구성했으면 EventBridge 규칙을 만듭니다.

**참고**  
Amazon S3 버킷과 동일한 AWS 리전에서 EventBridge 규칙을 구성해야 합니다.

### 규칙을 만들려면
<a name="tutorial-cloudwatch-events-s3-create-rule"></a>

1. [Amazon EventBridge 콘솔](https://console.aws.amazon.com/events/)로 이동하고 **규칙 생성**을 선택합니다.
**작은 정보**  
또는 EventBridge 콘솔의 탐색 창에서 **버스**에서 **규칙**을 선택한 다음 **규칙 생성**을 선택합니다.

1. 규칙의 **이름**(예: `{{S3Step Functions}}`)을 입력하고 선택적으로 규칙에 대한 **설명**을 입력합니다.

1. **이벤트 버스** 및 **규칙 유형**에서는 기본 선택을 유지합니다.

1. **다음**을 선택합니다. 그러면 **이벤트 패턴 작성** 페이지가 열립니다.

1. **이벤트 패턴** 섹션까지 아래로 스크롤하고 다음을 수행합니다.

   1. **이벤트 소스**의 경우 기본 선택 항목 **AWS 이벤트 또는 EventBridge 파트너 이벤트**를 그대로 둡니다.

   1. **AWS 서비스**에 **Simple Storage Service(S3)**를 선택합니다.

   1. **이벤트 유형**에 **Amazon S3 이벤트 알림**을 선택합니다.

   1. **특정 이벤트**를 선택한 다음 **생성된 객체**를 선택합니다.

   1. **이름 기준 특정 버킷**을 선택하고 [1단계](#tutorial-cloudwatch-events-s3-bucket)에서 만든 버킷 이름(`{{username}}-sfn-tutorial`)을 입력합니다.

   1. **다음**을 선택합니다. 그러면 **대상 선택** 페이지가 열립니다.

### 대상을 생성하려면
<a name="tutorial-cloudwatch-events-s3-create-rule2"></a>

1. **대상 1**에서 기본 선택 항목 **AWS 서비스**를 그대로 둡니다.

1. **대상 선택** 드롭다운 목록에서 **Step Functions 상태 머신**을 선택합니다.

1. **상태 머신** 목록에서 [이전에 만든](#tutorial-cloudwatch-events-s3-prereqs) 상태 머신(예: `Helloworld`)을 선택합니다.

1. 페이지에 있는 모든 기본 선택 항목을 그대로 두고 **다음**을 선택합니다. 그러면 **태그 구성** 페이지가 열립니다.

1. **다음**을 다시 선택합니다. 그러면 **검토 및 생성** 페이지가 열립니다.

1. 규칙의 세부 정보를 검토하고 **규칙 생성**을 선택합니다.

   규칙이 생성되고 **규칙** 페이지에 모든 Amazon EventBridge 규칙이 나열됩니다.

## 4단계: 규칙 테스트
<a name="tutorial-cloudwatch-events-test-rule"></a>

모두 구현되었으므로 Amazon S3 버킷에 파일 추가를 테스트한 다음 그에 따른 상태 머신 실행의 입력을 살펴봅니다.

1. 파일을 Amazon S3에서 버킷에 추가합니다.

   [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)로 이동하고 파일을 저장할 생성된 버킷을 선택한 다음(`{{username}}-sfn-tutorial`) **업로드**를 선택합니다.

1. 파일(예: `{{test.png}}`)을 추가한 다음 **업로드**를 선택합니다.

   이렇게 하면 상태 머신의 실행이 시작되고 AWS CloudTrail 에서 정보가 입력으로 전달됩니다.

1. 상태 머신의 실행을 점검합니다.

   [Step Functions 콘솔로 이동하고 Amazon EventBridge 규칙(`Helloworld`)에 사용된 상태 머신을 선택](https://console.aws.amazon.com/states/)합니다.

1. 해당 상태 머신의 최근 실행을 선택하고 **실행 입력** 섹션을 확장합니다.

   이 입력에는 버킷 이름, 객체 이름 등의 정보가 포함되어야 합니다. 실제 사용 사례에서 상태 머신은 이 입력을 사용하여 해당 객체에 대한 작업을 수행할 수 있습니다.

## 실행 입력의 예
<a name="tutorial-cloudwatch-events-example"></a>

다음 예제에서는 상태 머신 실행에 대한 일반적인 입력을 보여줍니다.

```
{
    "version": "0",
    "id": "6c540ad4-0671-9974-6511-756fbd7771c3",
    "detail-type": "Object Created",
    "source": "aws.s3",
    "account": "123456789012",
    "time": "2023-06-23T23:45:48Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:s3:::{{username}}-sfn-tutorial"
    ],
    "detail": {
      "version": "0",
      "bucket": {
        "name": "{{username}}-sfn-tutorial"
      },
      "object": {
        "key": "test.png",
        "size": 800704,
        "etag": "f31d8546bb67845b4d3048cde533b937",
        "sequencer": "00621049BA9A8C712B"
      },
      "request-id": "79104EXAMPLEB723",
      "requester": "123456789012",
      "source-ip-address": "200.0.100.11",
      "reason": "PutObject"
    }
  }
```