

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

# Amazon EventBridge의 이벤트 버스 대상
<a name="eb-targets"></a>

*대상*은 이벤트가 [규칙](eb-rules.md)에 정의된 이벤트 패턴과 일치할 때 EventBridge에서 [이벤트](eb-events.md)를 보내는 리소스 또는 엔드포인트입니다. **규칙은 [이벤트](eb-events.md) 데이터를 처리하고 관련 정보를 대상으로 보냅니다. 이벤트 데이터를 대상에 전달하려면 EventBridge에는 대상 리소스에 액세스할 수 있는 권한이 필요합니다. 각 규칙에 대해 최대 5개의 대상을 정의할 수 있습니다.

규칙에 대상을 추가하고 해당 규칙이 바로 실행되는 경우 새 대상이나 업데이트된 대상이 즉시 간접 호출되지 않을 수 있습니다. 변경 사항이 적용될 때까지 잠시 기다리십시오.

## EventBridge 콘솔에서 사용 가능한 이벤트 버스 대상
<a name="eb-console-targets"></a>

EventBridge 콘솔에서 다음과 같은 규칙을 위한 대상 유형을 구성할 수 있습니다.
+ API 데스티네이션

  API 대상은 이벤트 버스 규칙의 대상으로 간접 호출할 수 있는 HTTPS 엔드포인트입니다. API 대상을 규칙 대상으로 지정하면 EventBridge는 규칙에 지정된 이벤트 패턴과 일치하는 모든 이벤트에 대해 HTTPS 엔드포인트를 간접 호출한 다음, 요청과 함께 이벤트 정보를 전송합니다. 자세한 내용은 [API 데스티네이션](eb-api-destinations.md) 단원을 참조하십시오.
+ 이벤트 버스

  다른 이벤트 버스를 규칙의 대상으로 지정할 수 있습니다. 여기에는 동일하거나 다른 AWS 계정의 이벤트 버스가 포함됩니다.
  + [교차 계정 이벤트 버스를 대상으로 사용](eb-cross-account.md)
  + [동일한 계정 이벤트 버스를 대상으로 사용](eb-bus-to-bus.md)
+ AWS 서비스

  EventBridge가 여러 AWS 서비스 리소스로 이벤트를 보내도록 할 수 있습니다. 다음이 포함됩니다.
  + [API Gateway](eb-api-gateway-target.md)
  + [AWS AppSync](target-appsync.md)
  + [배치 작업 대기열](#targets-specifics-batch)
  + [CloudWatch 로그 그룹](#targets-specifics-cwl)
  + [CodeBuild 프로젝트](#targets-specifics-codebuild)
  + CodePipeline
  + 아마존 EBS `CreateSnapshot` API 직접 호출
  + EC2 Image Builder
  + EC2 `RebootInstances` API 직접 호출
  + EC2 `StopInstances` API 직접 호출
  + EC2 `TerminateInstances` API 직접 호출
  + [ECS 태스크](#targets-specifics-ecs-task)
  + Firehose 전송 스트림
  + Glue 워크플로
  + [Incident Manager 대응 계획](https://docs.aws.amazon.com//incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-eventbridge)
  + Inspector 평가 템플릿
  + Kinesis 스트림
  + Lambda 함수(ASYNC)
  + [Amazon Redshift 클러스터 데이터 API 쿼리](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-calling-event-bridge.html) 
  + [Amazon Redshift Serverless 작업 그룹 데이터 API 쿼리](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-calling-event-bridge.html)
  + SageMaker AI 파이프라인
  + Amazon SNS 주제
  + [Amazon SQS 표준, 공정 및 FIFO 대기열](#targets-specifics-sqs)
  + Step Functions 상태 시스템(ASYNC)
  + Systems Manager Automation
  + Systems Manager OpsItem
  + Systems Manager Run Command

## 대상 파라미터
<a name="targets-specific-parms"></a>

일부 대상은 이벤트 페이로드의 정보를 대상으로 전송하지 않고 대신 이벤트를 특정 API를 간접 호출하는 트리거로 처리합니다. EventBridge는 [대상](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Target.html) 파라미터를 사용하여 해당 대상에서 발생하는 작업을 결정합니다. 여기에는 다음이 포함됩니다.
+ API 데스티네이션

  API 대상으로 전송된 데이터는 API의 구조와 일치해야 합니다. [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html) 객체를 사용하여 데이터가 올바르게 구성되었는지 확인합니다. 원래 이벤트 페이로드를 포함하려면 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html)에서 참조하세요.
+ API Gateway 

  API Gateway로 전송되는 데이터는 API의 구조와 일치해야 합니다. [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html) 객체를 사용하여 데이터가 올바르게 구성되었는지 확인합니다. 원래 이벤트 페이로드를 포함하려면 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html)에서 참조하세요.
+ Amazon EC2 Image Builder
+ Amazon Redshift Data API 클러스터

  [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html)를 사용합니다.
+ Amazon SageMaker 런타임 모델 구축 파이프라인

  [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html)를 사용합니다.
+ Amazon SQS 공정 및 FIFO 대기열

  [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html)를 사용하여 대상으로 사용할 메시지 그룹을 지정합니다.
+ Systems Manager Run Command

  [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html)를 사용하여 SSM 문서 및 대상 인스턴스를 지정합니다. 자세한 내용은 [Systems Manager Run Command as a target](#targets-specifics-ssm-run-command)을 참조하세요.

**참고**  
EventBridge는 일부 JSON 경로 구문을 지원하며 런타임 시 이를 평가합니다. 지원되는 구문은 다음과 같습니다.  
점 표기법(예: `$.detail`)
대시
밑줄
영숫자
배열 인덱스
와일드카드(\$1)
슬래시 전달

### 동적 경로 파라미터
<a name="dynamic-path-parameters"></a>

동적 경로 파라미터를 사용하면 JSON 경로 구문을 사용하여 정적 값 대신 런타임에 이벤트 데이터를 참조할 수 있습니다.

동적 JSON 경로 구문을 대상 파라미터와 함께 사용하여 정적 값 대신 JSON 경로를 지정할 수 있습니다(예: `$.detail.state`).

#### 요구 사항
<a name="requirements"></a>

전체 값은 그 일부가 아닌 JSON 경로여야 합니다. 예제:
+ ✓ 정답: 일 `RedshiftParameters.Sql` 수 있음 `$.detail.state`
+ " 오답: 일 수 `RedshiftParameters.Sql` 없음 `"SELECT * FROM $.detail.state"`

EventBridge는 런타임 시 이러한 경로를 지정된 경로의 이벤트 페이로드 데이터로 바꿉니다.

#### 제한 사항
<a name="limitations"></a>

동적 경로 파라미터는 입력 변환에서 새 값 또는 변환된 값을 참조할 수 없습니다. JSON 경로 구문은 입력 변환 구문과 동일합니다. 자세한 내용은 [Amazon EventBridge 입력 변환](eb-transform-target-input.md)을 참조하세요.

#### 지원되는 파라미터
<a name="supported-parameters"></a>

이러한 파라미터의 모든 문자열 및 열거형이 아닌 필드에 동적 구문을 사용할 수 있습니다.
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_EcsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_EcsParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_HttpParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_HttpParameters.html)(`HeaderParameters` 키 제외)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html)

## 권한
<a name="targets-permissions"></a>

소유하고 있는 리소스에 대해 API 직접 호출을 수행하려면 EventBridge가 해당되는 권한을 가지고 있어야 합니다. [EventBridge 콘솔을 사용](eb-create-rule-wizard.md#eb-create-rule-target)하거나 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html)에서 `RoleARN` 파라미터를 설정하여 IAM 실행 역할을 지정합니다.

예를 들어, 다음 정책은 Amazon SQS 대기열로 메시지를 전송할 수 있는 권한을 정의합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage"
            ],
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:sqs-queue-name"
            ]
        }
    ]
}
```

------

또한 다음 신뢰 정책은 EventBridge가 역할을 담당하도록 허용합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

구성된 IAM 권한 부여로 API Gateway 엔드포인트를 간접 호출할 수 있지만 권한 부여를 구성하지 않은 경우 역할은 선택 사항입니다. 자세한 내용은 [Amazon EventBridge 및 AWS Identity and Access Management](eb-iam.md) 단원을 참조하십시오.

다른 계정이 동일한 리전에 있고 권한을 부여한 경우 해당 계정으로 이벤트를 보낼 수 있습니다.

자세한 내용은 [Amazon EventBridge의 AWS 계정 간에 이벤트 전송 및 수신](eb-cross-account.md) 단원을 참조하십시오.

Amazon SQS 대기열과 같은 대상이 AWS Key Management Service (AWS KMS) 암호화를 사용하는 경우 KMS 키 정책에 다음 섹션을 포함해야 합니다.

```
{
  "Sid": "Allow EventBridge to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*"
}
```

## AWS Batch 작업 대기열을 대상으로 사용
<a name="targets-specifics-batch"></a>

에 대한 AWS Batch `submitJob` 특정 파라미터는 [BatchParameters](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_BatchParameters.html)를 통해 구성할 수 있습니다.

이벤트 페이로드에서 기타 항목을 지정할 수 있습니다. [InputTransformers](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)를 통해 전달되거나 이를 통한 이벤트 페이로드에 다음 키가 포함되어 있는 경우, 해당 키는 `submitJob` [요청 파라미터](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html#API_SubmitJob_RequestSyntax)에 매핑됩니다.
+ `ContainerOverrides: containerOverrides`
**참고**  
여기에는 명령, 환경, 메모리 및 vcpu만 포함됩니다.
+ `DependsOn: dependsOn`
**참고**  
여기에는 jobId만 포함됩니다.
+ `Parameters: parameters`

## CloudWatch Logs 그룹을 대상으로 사용
<a name="targets-specifics-cwl"></a>

[InputTransformer](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)를 CloudWatch Logs 대상과 함께 사용하지 않는 경우 이벤트 페이로드가 로그 메시지로 사용되고 이벤트 소스가 타임스탬프로 사용됩니다. InputTransformer를 사용하는 경우 템플릿은 다음과 같아야 합니다.

`{"timestamp":<timestamp>,"message":<message>}`

EventBridge는 로그 스트림으로 전송된 항목을 일괄 처리하므로 트래픽에 따라 EventBridge에서 로그 스트림에 단일 또는 다중 이벤트를 전달할 수 있습니다.

## CodeBuild 프로젝트를 대상으로 사용
<a name="targets-specifics-codebuild"></a>

EventBridge는 표준 빌드와 배치 빌드를 모두 대상으로 지원합니다.

[입력 트랜스포머](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)를 사용하여 CodeBuild 대상으로 전달되기 전에 [StartBuildRequest](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuild.html#API_StartBuild_RequestSyntax) 구조와 일치하도록 소스 이벤트를 구성하면, 기본값으로 파라미터가 일대일로 매핑되어 `codeBuild.StartBuild`를 통해 전달됩니다.

대신 파라미터를 `codeBuild.StartBuildBatch`에 전송하려면 [StartBuildBatchRequest](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_RequestSyntax) 구조와 일치하도록 소스 이벤트를 트랜스포밍하고, 트랜스포밍된 이벤트의 루트에 다음 키/값 페어를 추가합니다.

`"buildType": "BATCH"`

## Amazon ECS 작업을 대상으로 사용
<a name="targets-specifics-ecs-task"></a>

[InputTransformers](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)를 사용하여 Amazon ECS RunTask [TaskOverride](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskOverride.html) 구조와 일치하도록 입력 이벤트를 대상으로 구성하면 파라미터가 일대일로 매핑되어 `ecs.RunTask`를 통해 전달됩니다.

## Incident Manager 대응 계획을 대상으로 사용
<a name="targets-specifics-incident-manager"></a>

일치하는 이벤트가 CloudWatch 경보에서 발생한 경우 경보 상태 변경 세부 정보가 Incident Manager에 대한 StartIncidentRequest 호출의 트리거 세부 정보에 채워집니다.

## Systems Manager 대상으로 명령 실행
<a name="targets-specifics-ssm-run-command"></a>

Systems Manager Run Command를 대상으로 지정하면 EventBridge가 사용자를 대신하여 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) API를 호출합니다. 실행할 SSM 문서와 대상 인스턴스 또는 태그를 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html)지정하는를 사용하여 대상을 구성합니다.

`RunCommandParameters` 에는 다음 필드가 포함되어 있습니다.
+ `RunCommandTargets` - (필수) 대상 인스턴스를 지정하는 키-값 페어의 목록입니다. 인스턴스 IDs 목록과 `InstanceIds` 함께 로 `Key` 설정하거나 태그 값을 `tag:tag-name` 사용하여 로 `Key` 설정하여 태그별로 인스턴스를 대상으로 지정합니다. 1\$15개의 실행 명령 대상을 지정할 수 있습니다.

실행하고 파라미터를 전달할 SSM 문서를 지정하려면 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Target.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Target.html) 객체의 `Input` 필드를 사용합니다. `Input` 값은 다음 구조의 JSON 객체여야 합니다.

```
{
  "DocumentName": "document-name",
  "DocumentVersion": "version",
  "Parameters": {
    "parameter-key": ["parameter-value"]
  }
}
```

위치:
+ `DocumentName` - 실행할 SSM 문서의 이름 또는 ARN입니다.
+ `DocumentVersion` - (선택 사항) 문서의 버전입니다. 생략하면 기본 버전이 사용됩니다.
+ `Parameters` - (선택 사항) SSM 문서에 정의된 파라미터와 일치하는 파라미터 이름을 값 배열에 매핑합니다.

예를 들어 다음 AWS CLI 명령은 EventBridge 이벤트가 일치할 때 특정 인스턴스에서 `AWS-RunShellScript` 문서를 실행하는 규칙을 생성합니다.

```
aws events put-targets --rule "my-rule" --targets '[{
  "Id": "ssm-target-1",
  "Arn": "arn:aws:ssm:region:account-id:document/AWS-RunShellScript",
  "RoleArn": "arn:aws:iam::account-id:role/EventBridgeSSMRole",
  "Input": "{\\"Parameters\\":{\\"commands\\":[\\"echo Hello from EventBridge\\"]}}",
  "RunCommandParameters": {
    "RunCommandTargets": [{
      "Key": "InstanceIds",
      "Values": ["i-0123456789abcdef0"]
    }]
  }
}]'
```

**참고**  
`Target` 객체의 `Input` 필드는 문서 이름과 파라미터를 Systems Manager Run Command에 전달하는 데 사용됩니다. 이는 이벤트 페이로드를 변환[https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html)하는와 다릅니다. Systems Manager Run Command를 대상으로 사용하는 경우에서 문서 파라미터를 설정하고에서 대상 인스턴스를 `Input` 지정합니다`RunCommandParameters`.

## Amazon SQS 대기열을 대상으로 사용
<a name="targets-specifics-sqs"></a>

EventBridge는 AWS 소유 키로 암호화된 Amazon SQS 대기열 사용을 지원하지 않습니다. 여기에는 대상과 대상에 대한 Dead Letter Queue(DLQ)로 지정된 Amazon SQS 대기열이 포함됩니다. 에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS 소유 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) AWS 소유 키참조하세요.

# Amazon EventBridge의 규칙에 대한 Amazon API Gateway 대상
<a name="eb-api-gateway-target"></a>

Amazon API Gateway를 사용해 API를 생성, 게시, 유지 관리, 모니터링할 수 있습니다. Amazon EventBridge는 API Gateway 엔드포인트로의 이벤트 전송을 지원합니다. API Gateway 엔드포인트를 [대상](eb-targets.md)으로 지정하면 대상으로 전송되는 각 [이벤트](eb-events.md)가 엔드포인트로 전송된 요청에 매핑됩니다.

**중요**  
EventBridge는 API Gateway *엣지 최적화* 엔드포인트 및 *리전* 엔드포인트를 대상으로 사용할 수 있도록 지원합니다. *프라이빗* 엔드포인트는 현재 지원되지 않습니다. 엔드포인트에 대한 자세한 내용은 [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html) 섹션을 참조하세요.

다음과 같은 사용 사례에 API Gateway 대상을 사용할 수 있습니다.
+  AWS 또는 타사 이벤트를 기반으로 API Gateway에서 호스팅되는 고객 지정 API를 호출합니다.
+ 일정에 따라 주기적으로 엔드포인트를 간접 호출합니다.

EventBridge JSON 이벤트 정보는 HTTP 요청 본문으로 엔드포인트에 전송됩니다. 다음과 같이 대상의 `HttpParameters` 필드에 다른 요청 속성을 지정할 수 있습니다.
+ `PathParameterValues`는 엔드포인트 ARN의 모든 경로 변수에 순차적으로 해당하는 값을 나열합니다(예: `"arn:aws:execute-api:us-east-1:112233445566:myapi/dev/POST/pets/*/*"`).
+ `QueryStringParameters`는 EventBridge가 간접 호출된 엔드포인트에 추가하는 쿼리 문자열 파라미터를 나타냅니다.
+ `HeaderParameters`는 요청에 추가할 HTTP 헤더를 정의합니다.

**참고**  
보안상의 이유로 다음 HTTP 헤더 키는 허용되지 않습니다.  
`X-Amz` 또는 `X-Amzn` 접두사가 붙은 모든 항목
`Authorization`
`Connection`
`Content-Encoding`
`Content-Length`
`Host`
`Max-Forwards`
`TE`
`Transfer-Encoding`
`Trailer`
`Upgrade`
`Via`
`WWW-Authenticate`
`X-Forwarded-For`

## 동적 파라미터
<a name="eb-targets-apigateway-dynamic"></a>

API Gateway 대상을 간접 호출할 때 대상으로 전송되는 이벤트에 데이터를 동적으로 추가할 수 있습니다. 자세한 내용은 [대상 파라미터](eb-targets.md#targets-specific-parms) 단원을 참조하십시오.

## 간접 호출 재시도
<a name="eb-targets-apigateway-retries"></a>

모든 대상과 마찬가지로 EventBridge는 일부 실패한 간접 호출을 다시 시도합니다. API Gateway의 경우, EventBridge는 5xx 또는 429 HTTP 상태 코드와 함께 전송된 응답을 [지수 백오프 및 지터](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)를 사용해 최대 24시간 동안 재시도합니다. 그 후 EventBridge는 Amazon CloudWatch에 `FailedInvocations` 지표를 게시합니다. EventBridge는 다른 4xx HTTP 오류를 재시도하지 않습니다.

## 제한 시간
<a name="eb-targets-apigateway-timeout"></a>

EventBridge 규칙 API Gateway 요청에는 최대 클라이언트 실행 제한 시간이 5초여야 합니다. API Gateway가 응답하는 데 5초 이상 걸리는 경우 EventBridge는 요청 시간을 초과한 후 재시도합니다.

EventBridge 파이프 API Gateway 요청의 최대 제한 시간은 API Gateway의 최댓값인 29초입니다.

# AWS AppSync Amazon EventBridge의 규칙 대상
<a name="target-appsync"></a>

AWS AppSync 를 통해 개발자는 안전하고 서버가 없는 고성능 GraphQL 및 Pub/Sub APIs. 를 사용하면 GraphQL 변형을 사용하여 애플리케이션에 실시간 데이터 업데이트를 게시할 AWS AppSync수 있습니다. EventBridge는 일치하는 이벤트에 대해 유효한 GraphQL 변형 작업 직접 호출을 지원합니다. AWS AppSync API 변형을 대상으로 지정하면는 변형 작업을 통해 이벤트를 AWS AppSync 처리한 다음 변형에 연결된 구독을 트리거할 수 있습니다.

**참고**  
EventBridge는 AWS AppSync 퍼블릭 GraphQL APIs 지원합니다. EventBridge는 현재 AWS AppSync 프라이빗 APIs 지원하지 않습니다.

다음 사용 사례에는 an AWS AppSync GraphQL API 대상을 사용할 수 있습니다.
+ 이벤트 데이터를 구성된 데이터 소스로 푸시, 변환 및 저장합니다.
+ 연결된 애플리케이션 클라이언트에 실시간 알림을 전송합니다.

**참고**  
AWS AppSync 대상은 [`AWS_IAM` 권한 부여 유형을](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#aws-iam-authorization) 사용한 AWS AppSync GraphQL APIs 호출만 지원합니다.

 AWS AppSync GraphQL APIs에 대한 자세한 내용은 *AWS AppSync 개발자 안내서*의 [GraphQL 및 AWS AppSync 아키텍처](https://docs.aws.amazon.com/appsync/latest/devguide/graphql-overview.html)를 참조하세요.

**콘솔을 사용하여 EventBridge 규칙의 AWS AppSync 대상을 지정하려면**

1. [규칙을 만들거나 편집하십시오.](eb-create-rule-visual.md)

1. **대상**에서 **AWS 서비스** 및 **AWS AppSync**를 선택하여 [대상을 지정하십시오](eb-create-rule-wizard.md#eb-create-rule-target).

1. 선택 세트와 함께 파싱하여 실행할 변형 작업을 지정합니다.
   +  AWS AppSync API를 선택한 다음 호출할 GraphQL API 변형을 선택합니다.
   + **파라미터 및 선택 세트 구성**에서 키-값 매핑 또는 입력 변환기를 사용하여 선택 세트를 만들도록 선택합니다.

------
#### [ Key-value mapping ]

     키-값 매핑을 사용하여 선택 세트를 만들려면 다음과 같이 하십시오.
     + API 파라미터의 변수를 지정합니다. 각 변수는 정적 값이거나 이벤트 페이로드의 동적 JSON 경로 표현식일 수 있습니다.
     + **선택 세트**에서 응답에 포함할 변수를 선택합니다.

------
#### [ Input transformer ]

     입력 변환기를 사용하여 선택 세트를 만들려면 다음과 같이 하십시오.
     + 사용할 변수를 정의하는 입력 경로를 지정합니다.
     + 입력 템플릿을 지정하여 대상에 전달하려는 정보를 정의하고 형식을 지정합니다.

     자세한 내용은 [EventBridge에서 규칙을 생성할 때 입력 변환기 구성](eb-transform-input-rule.md) 단원을 참조하십시오.

------

1. **실행 역할**에서 새 역할을 생성할지 또는 기존 역할을 사용할지 선택합니다.

1. 규칙 생성 또는 편집을 완료합니다.

## 예:Amazon EventBridge의 AWS AppSync 대상
<a name="target-appsync-walkthrough"></a>

다음 예제에서는 전송을 위한 이벤트 형식 지정을 위한 입력 변환 정의를 포함하여 EventBridge 규칙의 AWS AppSync 대상을 지정하는 방법을 안내합니다.

다음 스키마로 정의된 AWS AppSync GraphQL API `Ec2EventAPI`가 있다고 가정해 보겠습니다.

```
type Event {
    id: ID!
    statusCode: String
    instanceId: String
}

type Mutation {
    pushEvent(id: ID!, statusCode: String!, instanceId: String): Event
}

type Query {
    listEvents: [Event]
}

type Subscription {
    subscribeToEvent(id: ID, statusCode: String, instanceId: String): Event
        @aws_subscribe(mutations: ["pushEvent"])
}
```

이 API를 사용하는 애플리케이션 클라이언트는 `subscribeToEvent` 구독을 구독할 수 있으며, 이는 `pushEvent` 변형에 의해 트리거됩니다.

`pushEvent` 변형을 통해 AppSync API로 이벤트를 보내는 대상을 사용하여 EventBridge 규칙을 생성할 수 있습니다. 변형이 간접 호출되면 구독한 모든 클라이언트가 이벤트를 수신합니다.

EventBridge 규칙의 대상으로 이 API를 지정하려면 다음과 같이 하십시오.

1. 규칙 대상의 Amazon 리소스 이름(ARN)을 `Ec2EventAPI` API의GraphQL 엔드포인트로 설정합니다.

1. 변형 GraphQL 작업을 대상 파라미터로 지정합니다.

   ```
   mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) {
     pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) {
       id
       statusCode
       instanceId
     }
   }
   ```

   변형 선택 세트에는 GraphQL 구독에서 구독하려는 모든 필드가 포함되어야 합니다.

1. 입력 변환기를 구성하여 일치하는 이벤트의 데이터가 작업에 사용되는 방식을 지정합니다.

   `“EC2 Instance Launch Successful”` 샘플 이벤트를 선택했다고 가정해 보겠습니다.

   ```
   {
     "version": "0",
     "id": "3e3c153a-8339-4e30-8c35-687ebef853fe",
     "detail-type": "EC2 Instance Launch Successful",
     "source": "aws.autoscaling",
     "account": "123456789012",
     "time": "2015-11-11T21:31:47Z",
     "region": "us-east-1",
     "resources": ["arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:eb56d16b-bbf0-401d-b893-d5978ed4a025:autoScalingGroupName/sampleLuanchSucASG", "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f"],
     "detail": {
       "StatusCode": "InProgress",
       "AutoScalingGroupName": "sampleLuanchSucASG",
       "ActivityId": "9cabb81f-42de-417d-8aa7-ce16bf026590",
       "Details": {
         "Availability Zone": "us-east-1b",
         "Subnet ID": "subnet-95bfcebe"
       },
       "RequestId": "9cabb81f-42de-417d-8aa7-ce16bf026590",
       "EndTime": "2015-11-11T21:31:47.208Z",
       "EC2InstanceId": "i-b188560f",
       "StartTime": "2015-11-11T21:31:13.671Z",
       "Cause": "At 2015-11-11T21:31:10Z a user request created an AutoScalingGroup changing the desired capacity from 0 to 1.  At 2015-11-11T21:31:11Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1."
     }
   }
   ```

   대상 입력 변환기의 입력 경로를 사용하여 템플릿에서 사용할 다음 변수를 정의할 수 있습니다.

   ```
   {
     "id": "$.id",
     "statusCode": "$.detail.StatusCode",
     "EC2InstanceId": "$.detail.EC2InstanceId"
   }
   ```

   입력 변환기 템플릿을 작성하여 EventBridge가 AWS AppSync 변형 작업에 전달하는 변수를 정의합니다. 템플릿은 JSON으로 평가되어야 합니다. 입력 경로가 주어지면 다음 템플릿을 작성할 수 있습니다.

   ```
   {
     "id": <id>,
     "statusCode": <statusCode>,
     "instanceId": <EC2InstanceId>
   }
   ```

# EventBridge의 다른 계정에 있는 AWS 서비스로 이벤트 전송
<a name="eb-service-cross-account"></a>

EventBridge는 한 AWS 계정의 이벤트 버스에서 다른 계정의 지원되는 AWS 서비스로 이벤트를 전송할 수 있으므로 이벤트 기반 솔루션의 아키텍처를 간소화하고 지연 시간을 줄일 수 있습니다.

예를 들어 여러 계정에서 호스팅되는 이벤트 버스 세트가 있어 추가 비동기 처리 및 분석을 위해 중앙 계정의 Amazon SQS 대기열로 보안 관련 이벤트를 전송해야 한다고 가정해 보겠습니다.

EventBridge는 같은 리전의 교차 계정 대상으로 이벤트 전송을 지원합니다.

## 지원되는 서비스
<a name="eb-service-cross-account-services"></a>

EventBridge는 다른 AWS 계정의 다음 대상으로 이벤트 전송을 지원합니다.
+ Amazon API Gateway APIs
+ Amazon Kinesis Data Streams 스트림
+ Lambda 함수
+ Amazon SNS 주제
+ Amazon SQS 대기열

요금에 대한 내용은 [Amazon EventBridge 요금](https://aws.amazon.com/eventbridge/pricing/)을 참조하세요.

## 권한
<a name="eb-service-cross-account-permissions"></a>

 AWS 대상으로 서비스에 대한 교차 계정 이벤트 전송에 대한 액세스를 활성화하려면 다음 단계가 필요합니다.
+ 실행 역할 지정
+ 대상에 리소스 정책 연결

### 실행 역할 지정
<a name="eb-service-cross-account-permissions-role"></a>

규칙이 트리거될 때 대상에 이벤트를 보낼 때 사용할 EventBridge의 실행 역할을 지정합니다.

이 실행 역할은 이벤트 버스와 동일한 계정에 있어야 합니다. EventBridge는 대상을 간접 호출하려고 할 때 이 역할을 수임하며, 이 계정에 영향을 미치는 모든 서비스 제어 정책(SCP)이 적용됩니다.

서비스 제어 정책(SCP)은 조직의 권한을 관리하는 데 사용할 수 있는 조직 정책의 유형입니다. 자세한 내용은AWS Organizations 사용 설명서의 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.**

예를 들어 다음 정책은 EventBridge 서비스가 실행 역할을 수임하도록 허용합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
       },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

그리고 다음 정책은 역할이 Amazon SQS 대기열로 메시지를 보내도록 허용합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:123456789012:queue-name"
    }
  ]
}
```

------

를 사용하는 계정의 경우 다음 예제와 같이 SCP를 적용하여 조직에 속하지 않는 리소스 호출을 방지할 AWS Organizations수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
          {
            "Action": [
                "*"
            ],
            "Resource": "*",
            "Effect": "Deny",
            "Condition": {
                "StringNotEquals": {
                    "aws:ResourceOrgID": "o-1234567890"
                }
            }
        }
    ]
}
```

------

**참고**  
이벤트 버스 이외의 교차 계정 대상의 경우 직접 호출 계정에서 실행 역할을 제공하더라도 이벤트 버스와 다른 계정에서 `PutTarget` 직접 호출이 지원되지 않습니다.

### 리소스 액세스 정책을 대상에 연결
<a name="eb-service-cross-account-permissions-policy"></a>

교차 계정 이벤트를 수신할 수 있는 AWS 서비스는 IAM 리소스 기반 정책을 지원합니다. 이렇게 하면 리소스 액세스 정책을 대상에 연결할 수 있으므로 액세스할 수 있는 계정을 지정할 수 있습니다.

이전 예제를 기반으로 다음 정책은 대상 계정의 Amazon SQS 대기열에 대한 이벤트 버스 계정 액세스를 허용합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "SQS:SendMessage"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:sqs:us-east-1:123456789012:queue-name",
      "Principal": {
      "AWS": "123456789012"
     }
    }
  ]
}
```

------

자세한 내용은 *AWS Identity and Access Management 사용 설명서*에서 [자격 증명 기반 정책 및 리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)을 참조하세요.

## 다른 계정의 AWS 서비스에 이벤트를 보내는 규칙 생성
<a name="eb-service-cross-account"></a>

다른 계정의 AWS 서비스를 대상으로 지정하는 것은 이벤트 버스 규칙 생성의 일부입니다.

**콘솔을 사용하여 다른 AWS 계정의 AWS 서비스로 이벤트를 보내는 규칙을 생성하려면**

1. [Amazon EventBridge에서 규칙 생성](eb-create-rule-visual.md) 절차에서 해당 단계를 따릅니다.

1. [대상 선택](eb-create-rule-wizard.md#eb-create-rule-target) 단계에서 대상 유형을 선택하라는 메시지가 표시되면

   1. **AWS 서비스**를 선택합니다.

   1. 교차 계정 대상을 지원하는 AWS 서비스를 선택합니다.

      자세한 내용은 [지원되는 서비스](#eb-service-cross-account-services) 단원을 참조하십시오.

   1. **대상 위치**에서 **다른 AWS 계정의 대상**을 선택합니다.

   1. 이벤트를 전송할 대상 리소스의 ARN을 입력합니다.

   1. 드롭다운 목록에서 사용할 실행 역할의 이름을 선택합니다.

   1. 선택한 서비스에 대해 요청된 모든 추가 정보를 제공합니다. 표시되는 필드는 선택한 서비스에 따라 달라집니다.

1. 절차 단계에 따라 규칙 생성을 완료합니다.

# Amazon EventBridge의 AWS 계정 간에 이벤트 전송 및 수신
<a name="eb-cross-account"></a>

 AWS 계정의 이벤트 버스 간에 [이벤트를](eb-events.md) 보내고 받도록 EventBridge를 구성할 수 있습니다. [Amazon EventBridge의 이벤트 버스](eb-event-bus.md) 계정 간에 이벤트를 보내거나 받도록 EventBridge를 구성할 때 사용자 계정의 이벤트 버스에 이벤트를 보내거나 이벤트 버스로부터 이벤트를 수신할 수 있는 AWS 계정을 지정할 수 있습니다. 이벤트 버스와 관련된 특정 [규칙](eb-rules.md)의 이벤트 또는 특정 소스의 이벤트를 허용하거나 거부할 수도 있습니다. 자세한 내용은 [Amazon EventBridge 리소스 정책으로 크로스 계정 액세스 간소화](https://aws.amazon.com/blogs//compute/simplifying-cross-account-access-with-amazon-eventbridge-resource-policies/)를 참조하세요.

**참고**  
를 사용하는 경우 조직을 지정하고 해당 조직의 모든 계정에 액세스 권한을 부여할 AWS Organizations수 있습니다. 또한 다른 계정으로 이벤트를 전송할 경우 전송 이벤트 버스에는 IAM 역할이 연결되어 있어야 합니다. 자세한 내용은AWS Organizations 사용 설명서에서 [AWS Organizations란 무엇입니까?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) 단원을 참조하세요.**

**참고**  
Incident Manager 대응 계획을 대상으로 사용하는 경우 계정과 공유되는 모든 대응 계획을 기본적으로 사용할 수 있습니다.

대상 리전이 지원되는 [리전 간](eb-cross-region.md) 대상 리전인 한 모든 리전의 동일한 리전 내 AWS 계정과 다른 리전의 계정 간에 이벤트를 보내고 받을 수 있습니다.

다른 계정의 이벤트 버스로 이벤트를 보내거나 이벤트 버스로부터 이벤트를 받도록 EventBridge를 구성하는 단계는 다음과 같습니다.
+ *수신자* 계정에서 이벤트 버스에 대한 권한을 편집하여 지정된 AWS 계정, 조직 또는 모든 AWS 계정이 수신자 계정으로 이벤트를 보내도록 허용합니다.
+ *발신자* 계정에서 수신자 계정의 이벤트 버스를 대상으로 갖는 하나 이상의 규칙을 설정합니다.

  발신자 계정이 AWS 조직에서 이벤트를 전송할 수 있는 권한을 상속하는 경우 발신자 계정에는 수신자 계정으로 이벤트를 전송할 수 있는 정책이 포함된 IAM 역할도 있어야 합니다. AWS Management Console 를 사용하여 수신자 계정의 이벤트 버스를 대상으로 하는 규칙을 생성하면 역할이 자동으로 생성됩니다. 를 사용하는 경우 역할을 수동으로 생성 AWS CLI해야 합니다.
+ *수신자* 계정에서 발신자 계정이 전송하는 이벤트를 일치시키는 하나 이상의 규칙을 설정합니다.

한 계정에서 다른 계정으로 전송되는 이벤트에 대해서는 전송 계정에서 사용자 지정 이벤트로 요금이 부과됩니다. 수신 계정에는 요금이 부과되지 않습니다. 자세한 내용을 알아보려면 [Amazon EventBridge 요금](https://aws.amazon.com/eventbridge/pricing/)을 참조하세요.

수신자 계정은 발신자 계정에서 수신되는 이벤트를 제3의 계정으로 전송하는 규칙을 설정하는 경우 이러한 이벤트는 제3의 계정으로 전송되지 않습니다.

동일한 계정에 3개의 이벤트 버스가 있고 두 번째 이벤트 버스에서 세 번째 이벤트 버스로 이벤트를 전달하도록 첫 번째 이벤트 버스에 규칙을 설정한 경우, 해당 이벤트는 세 번째 이벤트 버스로 전송되지 않습니다.

 다음 동영상에서는 계정 간 라우팅 이벤트를 다룹니다.




## 다른 AWS 계정의 이벤트를 허용할 수 있는 권한 부여
<a name="eb-receiving-events-from-another-account"></a>

다른 계정 또는 조직으로부터 이벤트를 수신하려면 먼저 이벤트를 수신하려는 이벤트 버스에 대한 권한을 편집해야 합니다. 기본 이벤트 버스는 AWS 서비스, 기타 승인된 AWS 계정 및 `PutEvents` 호출의 이벤트를 수락합니다. 이벤트 버스에 대한 권한은 이벤트 버스에 연결된 리소스 기반 정책을 사용해 부여되거나 거부됩니다. 정책에서 AWS 계정 ID를 사용하여 다른 계정에 권한을 부여하거나 AWS 조직 ID를 사용하여 조직에 권한을 부여할 수 있습니다. 예제 정책을 비롯하여 이벤트 버스 권한에 대한 자세한 내용은 [Amazon EventBridge의 이벤트 버스에 대한 권한](eb-event-bus-perms.md) 섹션을 참조하세요.

**참고**  
이제 EventBridge에서 IAM 역할을 추가하려면 새 교차 계정 이벤트 버스 대상이 모두 필요합니다. 이는 2023년 3월 2일 이후에 생성된 이벤트 버스 대상에만 적용됩니다. 해당 날짜 이전에 IAM 역할 없이 생성된 애플리케이션은 영향을 받지 않습니다. 그러나 사용자에게 다른 계정의 리소스에 대한 액세스 권한을 부여하는 IAM 역할을 추가하는 것이 좋습니다. 이렇게 하면 서비스 제어 정책(SCP)을 사용해 조직의 경계를 적용하여 조직에 속한 계정에서 이벤트를 보내고 받을 수 있는 사람을 결정할 수 있습니다.

**중요**  
모든 AWS 계정에서 이벤트를 수신하도록 선택한 경우 다른 계정에서 수신할 이벤트와만 일치하는 규칙을 생성해야 합니다. 더욱 안전한 규칙을 생성하려면 이벤트를 수신할 계정 하나 이상의 계정 ID가 입력되는 `Account` 필드가 각 규칙의 모든 패턴에 포함되어야 합니다. 이벤트 패턴에 계정 필드가 포함되는 규칙은 `Account` 필드에 나열되어 있지 않은 계정에서 전송된 이벤트와 일치하지 않습니다. 자세한 내용은 [Amazon EventBridge의 이벤트](eb-events.md) 단원을 참조하십시오.

## AWS 계정 간 이벤트 규칙
<a name="eb-writing-rules-that-match-events-from-another-account"></a>

계정이 다른 계정의 이벤트 버스에서 이벤트를 수신하도록 설정된 경우 해당 이벤트와 일치하는 규칙을 작성할 AWS 수 있습니다. 다른 계정의 이벤트 버스에서 수신할 이벤트에 일치하도록 규칙의 [이벤트 패턴](eb-event-patterns.md)을 설정합니다.

규칙의 이벤트 패턴에 `account`를 지정하지 않을 경우 다른 계정의 이벤트 버스로부터 수신하는 이벤트를 일치시키는 계정의 모든 규칙(신규 및 기존)이 해당 이벤트를 기준으로 트리거됩니다. 다른 계정의 이벤트 버스에서 이벤트를 수신할 때 자체 계정에서 생성된 이벤트 패턴에서만 규칙이 트리거되도록 하려면 규칙의 이벤트 패턴에 `account`를 추가하고 자체 계정 ID를 지정해야 합니다.

모든 AWS 계정의 이벤트 버스에서 이벤트를 수락하도록 AWS 계정을 설정한 경우 계정의 모든 EventBridge 규칙에 `account`를 추가하는 것이 좋습니다. 이렇게 하면 계정의 규칙이 알 수 없는 AWS 계정의 이벤트에 대해 트리거되지 않습니다. 규칙에 `account` 필드를 지정할 때 AWS 계정 2개 이상의 계정 ID를 필드에 지정할 수 있습니다.

권한을 부여한 AWS 계정의 이벤트 버스에서 일치하는 이벤트를 트리거하려면 규칙의 `account` 필드에 \$1를 지정하지 마십시오. 이벤트의 `account` 필드에는 \$1가 절대 나타나지 않으므로 그렇게 하면 모든 이벤트가 일치하지 않을 것입니다. 대신 규칙에서 `account` 필드만 생략하세요.

## AWS 계정 간에 이벤트를 보내는 규칙 생성
<a name="eb-create-rule-cross-account-target"></a>

다른 계정의 이벤트 버스를 대상으로 지정하는 것은 규칙 생성의 일부입니다.

**콘솔을 사용하여 다른 AWS 계정으로 이벤트를 보내는 규칙을 생성하려면**

1. [Amazon EventBridge에서 규칙 생성](eb-create-rule-visual.md) 절차에서 해당 단계를 따릅니다.

1. [대상 선택](eb-create-rule-wizard.md#eb-create-rule-target) 단계에서 대상 유형을 선택하라는 메시지가 표시되면

   1. **EventBridge 이벤트 버스**를 선택합니다.

   1. **다른 계정 또는 리전의 이벤트 버스**를 선택합니다.

   1. **대상 이벤트 버스**에는 사용하려는 이벤트 버스의 ARN을 입력합니다.

1. 절차 단계에 따라 규칙 생성을 완료합니다.

# Amazon EventBridge의 AWS 리전 간에 이벤트 전송 및 수신
<a name="eb-cross-region"></a>

 AWS 리전 간에 [이벤트를](eb-events.md) 보내고 받도록 EventBridge를 구성할 수 있습니다. 특정 리전의 이벤트, 이벤트 버스와 관련된 특정 [규칙](eb-rules.md)의 이벤트 또는 특정 소스의 이벤트를 허용하거나 거부할 수도 있습니다. 자세한 내용은 [Introducing cross-Region event routing with Amazon EventBridge](https://aws.amazon.com/blogs//compute/introducing-cross-region-event-routing-with-amazon-eventbridge/)를 참조하세요.

 다음 동영상에서는 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) AWS CloudFormation및를 사용하여 리전 간에 이벤트를 라우팅하는 방법을 다룹니다 AWS Serverless Application Model.




## 이벤트를 다른 AWS 리전으로 보내는 규칙 생성
<a name="eb-create-rule-cross-region-target"></a>

다른 AWS 리전의 이벤트 버스를 대상으로 지정하는 것은 규칙 생성의 일부입니다.

**콘솔을 사용하여 다른 AWS 계정으로 이벤트를 보내는 규칙을 생성하려면**

1. [Amazon EventBridge에서 규칙 생성](eb-create-rule-visual.md) 절차에서 해당 단계를 따릅니다.

1. [대상 선택](eb-create-rule-wizard.md#eb-create-rule-target) 단계에서 대상 유형을 선택하라는 메시지가 표시되면

   1. **EventBridge 이벤트 버스**를 선택합니다.

   1. **다른 계정 또는 리전의 이벤트 버스**를 선택합니다.

   1. **대상 이벤트 버스**에는 사용하려는 이벤트 버스의 ARN을 입력합니다.

1. 절차 단계에 따라 규칙 생성을 완료합니다.

# Amazon EventBridge에서 동일한 계정 및 리전의 이벤트 버스 간 이벤트 전송
<a name="eb-bus-to-bus"></a>

동일한 AWS 계정과 리전의 [이벤트 버스](eb-event-bus.md) 간에 [이벤트를](eb-events.md) 보내고 받도록 EventBridge를 구성할 수 있습니다.

이벤트 버스 간에 이벤트를 보내거나 받도록 EventBridge를 구성하는 경우, *발신자* 이벤트 버스의 IAM 역할을 사용해 이벤트를 *수신자* 이벤트 버스로 보낼 수 있는 권한을 *발신자* 이벤트 버스에 부여합니다. *수신자* 이벤트 버스에서 [리소스 기반](eb-use-resource-based.md) 정책을 사용하여 *발신자* 이벤트 버스로부터 이벤트를 수신할 수 있는 권한을 *수신자* 이벤트 버스에 부여합니다. 특정 이벤트 버스의 이벤트, 이벤트 버스와 관련된 특정 [규칙](eb-rules.md)의 이벤트 또는 특정 소스의 이벤트를 허용하거나 거부할 수도 있습니다. 예제 정책을 비롯하여 이벤트 버스 권한에 대한 자세한 내용은 [Amazon EventBridge의 이벤트 버스에 대한 권한](eb-event-bus-perms.md) 섹션을 참조하세요.

사용자 계정의 이벤트 버스 간에 이벤트를 보내거나 받도록 EventBridge를 구성하는 단계는 다음과 같습니다.
+ 기존 IAM 역할을 사용하려면 발신자 이벤트 버스 권한을 수신자 이벤트 버스에 부여하거나 수신자 이벤트 버스 권한을 반신자 이벤트 버스에 부여해야 합니다.
+ *발신자* 이벤트 버스에서 수신자 이벤트 버스를 대상으로 하는 하나 이상의 규칙을 설정하고 IAM 역할을 생성합니다. 역할에 연결되어야 하는 정책의 예는 [예제 정책: Amazon EventBridge의 동일한 계정에 있는 이벤트 버스로 이벤트 전송](eb-event-bus-example-policy-same-account.md) 섹션을 참조하세요.
+ *수신자* 이벤트 버스에서 이벤트가 다른 이벤트 버스로부터 전달될 수 있도록 권한을 편집합니다.
+ *수신자* 이벤트에서 발신자 이벤트 버스가 전송하는 이벤트를 일치시키는 하나 이상의 규칙을 설정합니다.
**참고**  
EventBridge는 발신자 이벤트 버스로부터 수신한 이벤트를 세 번째 이벤트 버스로 라우팅할 수 없습니다.

한 이벤트 버스에서 다른 이벤트 버스로 전송된 이벤트는 사용자 지정 이벤트로 요금이 부과됩니다. 자세한 내용을 알아보려면 [Amazon EventBridge 요금](https://aws.amazon.com/eventbridge/pricing/)을 참조하세요.

## 동일한 AWS 계정 및 리전의 다른 이벤트 버스로 이벤트를 보내는 규칙 생성
<a name="eb-create-rule-same-account-region-target"></a>

이벤트를 다른 이벤트 버스로 보내려면 이벤트 버스를 대상으로 하는 규칙을 생성합니다. 대상과 동일한 AWS 계정 및 리전에서 이벤트 버스를 지정하는 것은 규칙 생성의 일부입니다.

**콘솔을 사용하여 동일한 AWS 계정 및 리전의 다른 이벤트 버스로 이벤트를 보내는 규칙을 생성하려면**

1. [Amazon EventBridge에서 규칙 생성](eb-create-rule-visual.md) 절차에서 해당 단계를 따릅니다.

1. [대상 선택](eb-create-rule-wizard.md#eb-create-rule-target) 단계에서 대상 유형을 선택하라는 메시지가 표시되면

   1. **EventBridge 이벤트 버스**를 선택합니다.

   1. **동일한 AWS 계정 및 리전에서 이벤트 버스를** 선택합니다.

   1. **이벤트 버스를 대상**으로 하려면 드롭다운 목록에서 이벤트 버스를 선택합니다.

1. 절차 단계에 따라 규칙 생성을 완료합니다.

# Amazon EventBridge 입력 변환
<a name="eb-transform-target-input"></a>

EventBridge가 정보를 [규칙](eb-rules.md) [대상](eb-targets.md)으로 전달하기 전에 [이벤트](eb-events.md)의 텍스트를 사용자 지정할 수 있습니다. 콘솔 또는 API의 입력 변환기를 통해 JSON 경로를 사용하여 원래 이벤트 소스의 값을 참조하는 변수를 정의합니다. 변환된 이벤트는 원래 이벤트 대신 대상으로 전송됩니다. 그러나 [동적 경로 파라미터](eb-targets.md#dynamic-path-parameters)는 변환된 이벤트가 아닌 원래 이벤트를 참조해야 합니다. 입력에서 각 값을 할당하여 최대 100개의 변수를 정의할 수 있습니다. 그런 다음, <*variable-name*>으로 *입력 템플릿* 내에서 이러한 변수를 사용할 수 있습니다.

입력 변환기 사용에 대한 자습서는 [자습서: 입력 변환기를 사용하여 EventBridge에서 이벤트 변환](eb-input-transformer-tutorial.md) 섹션을 참조하세요.

**참고**  
EventBridge는 일부 JSON 경로 구문을 지원하며 런타임 시 이를 평가합니다. 지원되는 구문은 다음과 같습니다.  
점 표기법(예: `$.detail`)
대시
밑줄
영숫자
배열 인덱스
와일드카드(\$1)
슬래시 전달

**Topics**
+ [미리 정의된 변수](#eb-transform-input-predefined)
+ [입력 변환 예제](#eb-transform-input-examples)
+ [EventBridge API를 사용한 입력 변환](#eb-transform-input-api)
+ [를 사용하여 입력 변환 AWS CloudFormation](#eb-transform-input-cfn)
+ [입력 변환과 관련된 일반적인 문제](#eb-transform-input-issues)
+ [EventBridge에서 규칙을 생성할 때 입력 변환기 구성](eb-transform-input-rule.md)
+ [EventBridge 샌드박스를 사용한 대상 입력 변환기 테스트](eb-sandbox-input-trans.md)

## 미리 정의된 변수
<a name="eb-transform-input-predefined"></a>

JSON 경로를 정의하지 않고 사용할 수 있는 미리 정의된 변수가 있습니다. 이러한 변수는 예약되어 있으며 이러한 이름으로 변수를 만들 수 없습니다.
+ ****`aws.events.rule-arn` — EventBridge 규칙의 Amazon 리소스 이름(ARN)입니다.
+ ****`aws.events.rule-name` — EventBridge 규칙의 이름입니다.
+ ****`aws.events.event.ingestion-time` — EventBridge가 이벤트를 수신한 시간입니다. 이는 ISO 8601 타임스탬프입니다. 이 변수는 EventBridge에서 생성되며 덮어쓸 수 없습니다.
+ ****`aws.events.event` — JSON 형식의 원본 이벤트 페이로드입니다(`detail` 필드 제외). 내용이 이스케이프되지 않으므로 JSON 필드의 값으로만 사용할 수 있습니다.
+ ****`aws.events.event.json` — JSON 형식의 전체 원본 이벤트 페이로드입니다(`detail` 필드 포함). 내용이 이스케이프되지 않으므로 JSON 필드의 값으로만 사용할 수 있습니다.

## 입력 변환 예제
<a name="eb-transform-input-examples"></a>

다음은 Amazon EC2 이벤트 예제입니다.

```
{
  "version": "0",
  "id": "7bf73129-1428-4cd3-a780-95db273d1602",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "123456789012",
  "time": "2015-11-11T21:29:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111"
  ],
  "detail": {
    "instance-id": "i-0123456789",
    "state": "RUNNING"
  }
}
```

콘솔에서 규칙을 정의할 때 **입력 구성**에서 **입력 변환기** 옵션을 선택합니다. 이 옵션은 텍스트 상자 두 개를 표시합니다. 하나는 *입력 경로*, 하나는 *입력 템플릿*에 대한 텍스트 상자입니다.

### 입력 경로
<a name="eb-transform-target-input-path"></a>

*입력 경로*는 변수를 정의하는 데 사용됩니다. JSON 경로를 사용하여 이벤트의 항목을 참조하고 해당 값을 변수에 저장합니다. 예를 들어 첫 번째 텍스트 상자에 다음을 입력하여 이벤트 예제의 값을 참조하는 *입력 경로*를 만들 수 있습니다. 대괄호와 인덱스를 사용해 배열에서 항목을 가져올 수도 있습니다.

**참고**  
EventBridge는 유효한 JSON 출력을 보장하기 위해 런타임 시 입력 변환기를 대체합니다. 따라서 JSON 경로 파라미터를 참조하는 변수는 따옴표로 묶고 JSON 객체 또는 배열을 참조하는 변수는 따옴표로 묶지 마세요.

```
{
  "timestamp" : "$.time",
  "instance" : "$.detail.instance-id", 
  "state" : "$.detail.state",
  "resource" : "$.resources[0]"
}
```

이는 `<timestamp>`, `<instance>`, `<state>` 및 `<resource>`라는 4가지 변수를 정의합니다. *입력 템플릿*을 만들 때 이러한 변수를 참조할 수 있습니다.

**참고**  
Amazon CloudWatch Logs 및 SSM 대상은 입력 변환기에서 `Input` 및 `InputPath` 사용을 지원하지 않습니다.

### 입력 템플릿
<a name="eb-transform-target-input-template"></a>

*입력 템플릿*은 대상에 전달하려는 정보에 대한 템플릿입니다. 문자열이나 JSON을 대상에 전달하는 템플릿을 만들 수 있습니다. 다음 *입력 템플릿* 예는 이전 이벤트 및 *입력 경로*를 사용하여 이벤트를 대상으로 라우팅하기 전에 예제 출력으로 변환합니다.


| 설명 | Template | 출력 | 
| --- | --- | --- | 
| 단순 문자열 |  <pre>"instance <instance> is in <state>"</pre> |  <pre>"instance i-0123456789 is in RUNNING"</pre>  | 
|  **이스케이프된 따옴표가 있는 문자열**  |  <pre>"instance \"<instance>\" is in <state>"</pre> |  <pre>"instance \"i-0123456789\" is in RUNNING"</pre> 이는 EventBridge 콘솔의 동작입니다. AWS CLI 는 슬래시 문자를 이스케이프하고 결과는 `"instance "i-0123456789" is in RUNNING"`입니다.  | 
|  **단순 JSON**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": <state><br />}</pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": "RUNNING"<br />}</pre>  | 
|  **문자열과 변수가 포함된 JSON**  |  <pre>{<br /> "instance" : <instance>,<br /> "state": "<state>",<br /> "instanceStatus": "instance \"<instance>\" is in <state>"<br />}</pre>  |  <pre>{<br /> "instance" : "i-0123456789",<br /> "state": "RUNNING",<br /> "instanceStatus": "instance \"i-0123456789\" is in RUNNING"<br />}</pre>  | 
|  **변수와 정적 정보가 혼합된 JSON**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": [ 9, <state>, true ],<br />  "Transformed" : "Yes"<br />}<br /></pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": [<br />    9,<br />    "RUNNING",<br />    true<br />  ],<br />  "Transformed" : "Yes"<br />}</pre>  | 
|  **JSON에 예약된 변수 포함**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": <state>,<br />  "ruleArn" : <aws.events.rule-arn>,<br />  "ruleName" : <aws.events.rule-name>,<br />  "originalEvent" : <aws.events.event.json><br />}</pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": "RUNNING",<br />  "ruleArn" : "arn:aws:events:us-east-2:123456789012:rule/example",<br />  "ruleName" : "example",<br />  "originalEvent" : {<br />    ... // commented for brevity<br />  }<br />}</pre>  | 
|  **문자열에 예약된 변수 포함**  | <pre>"<aws.events.rule-name> triggered"</pre> |  <pre>"example triggered"</pre>  | 
|  **Amazon CloudWatch 로그 그룹**  | <pre>{<br />  "timestamp" : <timestamp>,<br />  "message": "instance \"<instance>\" is in <state>"<br />}</pre> |  <pre>{<br />  "timestamp" : 2015-11-11T21:29:54Z,<br />  "message": "instance "i-0123456789" is in RUNNING<br />}</pre>  | 

## EventBridge API를 사용한 입력 변환
<a name="eb-transform-input-api"></a>

EventBridge API를 사용해 입력을 변환하는 방법에 대한 자세한 내용은 [입력 변환기를 사용하여 이벤트에서 데이터를 추출하고 대상에 해당 데이터를 입력](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html#API_PutTargets_Example_2) 섹션을 참조하세요.

## 를 사용하여 입력 변환 AWS CloudFormation
<a name="eb-transform-input-cfn"></a>

를 사용하여 입력을 변환 AWS CloudFormation 하는 방법에 대한 자세한 내용은 [AWS::Events::Rule InputTransformer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html)를 참조하세요.

## 입력 변환과 관련된 일반적인 문제
<a name="eb-transform-input-issues"></a>

다음은 EventBridge에서 입력을 변환할 때 나타나는 몇 가지 일반적인 문제입니다.
+  문자열의 경우 따옴표가 필요합니다.
+  템플릿에 대한 JSON 경로를 만들 때 검증이 수행되지 않습니다.
+  변수를 지정하여 이벤트에 존재하지 않는 JSON 경로를 일치시키는 경우 변수가 생성되지 않기 때문에 출력에 나타나지 않습니다.
+ `aws.events.event.json`과 같은 JSON 속성은 JSON 필드의 값으로만 사용할 수 있으며 다른 문자열에서는 인라인으로 사용할 수 없습니다.
+  EventBridge는 대상에 대한 *입력 템플릿*을 채울 때 *입력 경로*에서 추출된 값을 이스케이프하지 않습니다.
+ JSON 경로가 JSON 객체 또는 배열을 참조하지만 변수가 문자열에서 참조되는 경우, EventBridge는 문자열이 유효하도록 모든 내부 따옴표를 제거합니다. 예를 들어 `$.detail`을 가리키는 변수 `<detail>`의 경우 "Detail is <detail>"을 통해 EventBridge가 객체에서 따옴표를 제거합니다.

  따라서 단일 JSON 경로 변수를 기반으로 JSON 객체를 출력하려면 해당 변수를 키로 배치해야 합니다. 이 예에서는 `{"detail": <detail>}`입니다.
+ 문자열을 나타내는 변수에는 따옴표가 필요하지 않습니다. 따옴표가 허용되지만 EventBridge는 변환 중에 문자열 변수 값에 자동으로 따옴표를 추가하여 변환 출력이 유효한 JSON인지 확인합니다. EventBridge는 JSON 객체 또는 배열을 나타내는 변수에 따옴표를 추가하지 않습니다. JSON 객체 또는 배열을 나타내는 변수에 따옴표를 추가하지 마세요.

  예를 들어 다음 입력 템플릿에는 문자열과 JSON 객체를 모두 나타내는 변수가 포함되어 있습니다.

  ```
  {
    "ruleArn" : <aws.events.rule-arn>,
    "ruleName" : <aws.events.rule-name>,
    "originalEvent" : <aws.events.event.json>
  }
  ```

  올바른 따옴표를 사용하여 유효한 JSON을 생성합니다.

  ```
  {
    "ruleArn" : "arn:aws:events:us-east-2:123456789012:rule/example",
    "ruleName" : "example",
    "originalEvent" : {
      ... // commented for brevity
    }
  }
  ```
+ (JSON이 아닌) 텍스트 출력을 여러 줄 문자열로 사용하는 경우, 입력 템플릿의 각 줄을 큰따옴표로 묶습니다.

  예를 들어, 다음 이벤트 패턴에 대해 [Amazon Inspector 결과](https://docs.aws.amazon.com/inspector/latest/user/eventbridge-integration.html#event-finding) 이벤트를 일치시키는 경우:

  ```
  {
    "detail": {
      "severity": ["HIGH"],
      "status": ["ACTIVE"]
    },
    "detail-type": ["Inspector2 Finding"],
    "source": ["inspector2"]
  }
  ```

  그리고 다음 입력 경로를 사용하는 경우:

  ```
  {
    "account": "$.detail.awsAccountId",
    "ami": "$.detail.resources[0].details.awsEc2Instance.imageId",
    "arn": "$.detail.findingArn",
    "description": "$.detail.description",
    "instance": "$.detail.resources[0].id",
    "platform": "$.detail.resources[0].details.awsEc2Instance.platform",
    "region": "$.detail.resources[0].region",
    "severity": "$.detail.severity",
    "time": "$.time",
    "title": "$.detail.title",
    "type": "$.detail.type"
  }
  ```

  아래 입력 템플릿을 사용하여 여러 줄 문자열 출력을 생성할 수 있습니다.

  ```
  "<severity> severity finding <title>"
  "Description: <description>"
  "ARN: \"<arn>\""
  "Type: <type>"
  "AWS Account: <account>"
  "Region: <region>"
  "EC2 Instance: <instance>"
  "Platform: <platform>"
  "AMI: <ami>"
  ```

# EventBridge에서 규칙을 생성할 때 입력 변환기 구성
<a name="eb-transform-input-rule"></a>

규칙을 생성하는 중에 해당 이벤트를 지정된 대상으로 보내기 전에 일치하는 이벤트를 처리하는 데 사용할 EventBridge의 입력 변환기를 지정할 수 있습니다. AWS 서비스 또는 API 대상인 대상에 대해 입력 변환기를 구성할 수 있습니다.

**규칙의 일부로 대상 입력 변환기를 생성하려면**

1. [Amazon EventBridge에서 규칙 생성](eb-create-rule-visual.md)에 설명된 대로 규칙을 생성하는 단계를 따르세요.

1. **3단계 - 대상 선택**에서 **추가 설정**을 확장합니다.

1. **대상 입력 구성**의 경우 드롭다운에서 **입력 변환기**를 선택합니다.

   **입력 변환기 구성**을 클릭합니다.

   EventBridge에는 **입력 변환기 구성** 대화 상자가 표시됩니다.

1. **샘플 이벤트** 섹션에서 이벤트 패턴을 테스트할 **샘플 이벤트 유형**을 선택합니다. AWS 이벤트, 파트너 이벤트를 선택하거나 사용자 지정 이벤트를 입력할 수 있습니다.

------
#### [ AWS events ]

   지원되는 AWS 서비스에서 발생한 이벤트 중에서 선택합니다.

   1. **AWS 이벤트**를 선택합니다.

   1. **샘플 이벤트**에서 원하는 AWS 이벤트를 선택합니다. 이벤트는 AWS 서비스별로 구성됩니다.

      이벤트를 선택하면 EventBridge가 샘플 이벤트를 채웁니다.

      예를 들어 **S3 객체 생성됨**을 선택하면 EventBridge는 샘플 S3 객체 생성 이벤트를 표시합니다.

   1. (선택 사항) **복사**를 선택하여 샘플 이벤트를 디바이스의 클립보드에 복사할 수도 있습니다.

------
#### [ Partner events ]

   Salesforce와 같이 EventBridge를 지원하는 타사 서비스에서 발생한 이벤트 중에서 선택합니다.

   1. **EventBridge 파트너 이벤트**를 선택합니다.

   1. **샘플 이벤트**에서 원하는 파트너 이벤트를 선택합니다. 이벤트는 파트너별로 구성됩니다.

      이벤트를 선택하면 EventBridge가 샘플 이벤트를 채웁니다.

   1. (선택 사항) **복사**를 선택하여 샘플 이벤트를 디바이스의 클립보드에 복사할 수도 있습니다.

------
#### [ Enter your own ]

   JSON 텍스트로 자체 이벤트를 입력합니다.

   1. **직접 입력**을 선택합니다.

   1. EventBridge는 필수 이벤트 속성의 템플릿으로 샘플 이벤트를 채웁니다.

   1. 필요에 따라 샘플 이벤트를 편집하고 추가합니다. 샘플 이벤트는 유효한 JSON이어야 합니다.

   1. (선택 사항) 다음 옵션 중 하나를 선택할 수도 있습니다.
      + **복사** - 샘플 이벤트를 디바이스의 클립보드에 복사합니다.
      + **정리** - 줄 바꿈, 탭, 공백을 추가하여 JSON 텍스트를 더 쉽게 읽을 수 있습니다.

------

1. (선택 사항) **예시 입력 경로, 템플릿 및 출력** 섹션을 확장하여 다음 예를 확인합니다.
   + JSON 경로를 사용하여 이벤트 데이터를 나타내는 변수를 정의하는 방법
   + 입력 변환기 템플릿에서 해당 변수를 사용하는 방법
   + EventBridge가 대상으로 전송하는 결과 출력

   입력 변환의 자세한 예는 [입력 변환 예제](eb-transform-target-input.md#eb-transform-input-examples) 섹션을 참조하세요.

1. **대상 입력 변환기** 섹션에서 입력 템플릿에 사용할 변수를 정의합니다.

   변수는 JSON 경로를 사용하여 원래 이벤트 소스의 값을 참조합니다. 이에 따라 입력 템플릿에서 해당 변수를 참조하여 EventBridge가 대상으로 전달하는 변환된 이벤트에 원본 소스 이벤트의 데이터를 포함할 수 있습니다. 최대 100개의 변수를 정의할 수 있습니다. 입력 변환기는 유효한 JSON이어야 합니다.

   예를 들어이 입력 변환기에 대한 샘플 AWS 이벤트로 **생성된 S3 객체** 이벤트를 선택했다고 가정해 보겠습니다. 그러면 템플릿에서 사용할 다음 변수를 정의할 수 있습니다.

   ```
   {
     "requester": "$.detail.requester",
     "key": "$.detail.object.key",
     "bucket": "$.detail.bucket.name"
   }
   ```

   (선택 사항) **복사**를 선택하여 입력 변환기를 디바이스의 클립보드에 복사할 수도 있습니다.

1. **템플릿** 섹션에서 EventBridge가 대상으로 전달하는 항목을 결정하는 데 사용할 템플릿을 작성합니다.

   JSON, 문자열, 정적 정보, 정의한 변수 및 예약된 변수를 사용할 수 있습니다. 입력 변환의 자세한 예는 [입력 변환 예제](eb-transform-target-input.md#eb-transform-input-examples) 섹션을 참조하세요.

   예를 들어 이전 예에서 변수를 정의했다고 가정하겠습니다. 그러면 해당 변수, 예약된 변수 및 정적 정보를 참조하는 다음 템플릿을 작성할 수 있습니다.

   ```
   {
       "message": "<requester> has created the object \"<key>\" in the bucket \"<bucket>\"",
       "RuleName": <aws.events.rule-name>,
       "ruleArn" : <aws.events.rule-arn>,
       "Transformed": "Yes"
   }
   ```

   (선택 사항) **복사**를 선택하여 템플릿을 디바이스의 클립보드에 복사할 수도 있습니다.

1. 템플릿을 테스트하려면 **출력 생성**을 선택합니다.

   EventBridge는 입력 템플릿을 기반으로 샘플 이벤트를 처리하고 **출력**에서 생성된 변환 출력을 표시합니다. 이는 EventBridge가 원본 소스 이벤트 대신 대상에 전달할 정보입니다.

   위에서 설명한 예시 입력 템플릿에 대해 생성된 출력은 다음과 같습니다.

   ```
   {
       "message": "123456789012 has created the object "example-key" in the bucket "amzn-s3-demo-bucket"",
       "RuleName": rule-name,
       "ruleArn" : arn:aws:events:us-east-1:123456789012:rule/rule-name,
       "Transformed": "Yes"
   }
   ```

   (선택 사항) **복사**를 선택하여 생성된 출력을 디바이스의 클립보드에 복사할 수도 있습니다.

1. **확인**을 선택합니다.

1. [Amazon EventBridge에서 규칙 생성](eb-create-rule-visual.md)에 설명된 대로 규칙을 생성하는 나머지 단계를 따르세요.

# EventBridge 샌드박스를 사용한 대상 입력 변환기 테스트
<a name="eb-sandbox-input-trans"></a>

EventBridge가 정보를 [규칙](eb-rules.md) [대상](eb-targets.md)으로 전달하기 전에 입력 변환기를 사용하여 [이벤트](eb-events.md)의 텍스트를 사용자 지정할 수 있습니다.

일반적으로 입력 변환기 구성은 [새 규칙을 생성](eb-create-rule-visual.md)하거나 기존 규칙을 편집할 때 대상을 지정하는 대규모 프로세스의 일부입니다. 그러나 EventBridge의 샌드박스를 사용하면 규칙을 생성하거나 편집할 필요 없이 입력 변환기를 빠르게 구성하고 샘플 이벤트를 사용해 원하는 출력을 얻고 있는지 확인할 수 있습니다.

입력 변환에 대한 자세한 내용은 [Amazon EventBridge 입력 변환](eb-transform-target-input.md) 섹션을 참조하세요.

**대상 입력 변환기를 테스트하려면**

1. Amazon EventBridge 콘솔([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/))을 엽니다.

1. **개발자 리소스**에서 **샌드박스**를 선택하고 **샌드박스** 페이지에서 **대상 입력 변환기** 탭을 선택합니다.

1. **샘플 이벤트** 섹션에서 이벤트 패턴을 테스트할 **샘플 이벤트 유형**을 선택합니다. AWS 이벤트, 파트너 이벤트를 선택하거나 사용자 지정 이벤트를 입력할 수 있습니다.

------
#### [ AWS events ]

   지원되는 AWS 서비스에서 발생한 이벤트 중에서 선택합니다.

   1. **AWS 이벤트**를 선택합니다.

   1. **샘플 이벤트**에서 원하는 AWS 이벤트를 선택합니다. 이벤트는 AWS 서비스별로 구성됩니다.

      이벤트를 선택하면 EventBridge가 샘플 이벤트를 채웁니다.

      예를 들어 **S3 객체 생성됨**을 선택하면 EventBridge는 샘플 S3 객체 생성 이벤트를 표시합니다.

   1. (선택 사항) **복사**를 선택하여 샘플 이벤트를 디바이스의 클립보드에 복사할 수도 있습니다.

------
#### [ Partner events ]

   Salesforce와 같이 EventBridge를 지원하는 타사 서비스에서 발생한 이벤트 중에서 선택합니다.

   1. **EventBridge 파트너 이벤트**를 선택합니다.

   1. **샘플 이벤트**에서 원하는 파트너 이벤트를 선택합니다. 이벤트는 파트너별로 구성됩니다.

      이벤트를 선택하면 EventBridge가 샘플 이벤트를 채웁니다.

   1. (선택 사항) **복사**를 선택하여 샘플 이벤트를 디바이스의 클립보드에 복사할 수도 있습니다.

------
#### [ Enter your own ]

   JSON 텍스트로 자체 이벤트를 입력합니다.

   1. **직접 입력**을 선택합니다.

   1. EventBridge는 필수 이벤트 속성의 템플릿으로 샘플 이벤트를 채웁니다.

   1. 필요에 따라 샘플 이벤트를 편집하고 추가합니다. 샘플 이벤트는 유효한 JSON이어야 합니다.

   1. (선택 사항) 다음 옵션 중 하나를 선택할 수도 있습니다.
      + **복사** - 샘플 이벤트를 디바이스의 클립보드에 복사합니다.
      + **정리** - 줄 바꿈, 탭, 공백을 추가하여 JSON 텍스트를 더 쉽게 읽을 수 있습니다.

------

1. (선택 사항) **예시 입력 경로, 템플릿 및 출력** 섹션을 확장하여 다음 예를 확인합니다.
   + JSON 경로를 사용하여 이벤트 데이터를 나타내는 변수를 정의하는 방법
   + 입력 변환기 템플릿에서 해당 변수를 사용하는 방법
   + EventBridge가 대상으로 전송하는 결과 출력

   입력 변환의 자세한 예는 [입력 변환 예제](eb-transform-target-input.md#eb-transform-input-examples) 섹션을 참조하세요.

1. **대상 입력 변환기** 섹션에서 입력 템플릿에 사용할 변수를 정의합니다.

   변수는 JSON 경로를 사용하여 원래 이벤트 소스의 값을 참조합니다. 이에 따라 입력 템플릿에서 해당 변수를 참조하여 EventBridge가 대상으로 전달하는 변환된 이벤트에 원본 소스 이벤트의 데이터를 포함할 수 있습니다. 최대 100개의 변수를 정의할 수 있습니다. 입력 변환기는 유효한 JSON이어야 합니다.

   예를 들어 S**S3 객체 생성** AWS 이벤트를이 입력 변환기의 샘플 이벤트로 선택했다고 가정해 보겠습니다. 그러면 템플릿에서 사용할 다음 변수를 정의할 수 있습니다.

   ```
   {
     "requester": "$.detail.requester",
     "key": "$.detail.object.key",
     "bucket": "$.detail.bucket.name"
   }
   ```

   (선택 사항) **복사**를 선택하여 입력 변환기를 디바이스의 클립보드에 복사할 수도 있습니다.

1. **템플릿** 섹션에서 EventBridge가 대상으로 전달하는 항목을 결정하는 데 사용할 템플릿을 작성합니다.

   JSON, 문자열, 정적 정보, 정의한 변수 및 예약된 변수를 사용할 수 있습니다. 입력 변환의 자세한 예는 [입력 변환 예제](eb-transform-target-input.md#eb-transform-input-examples) 섹션을 참조하세요.

   예를 들어 이전 예에서 변수를 정의했다고 가정하겠습니다. 그러면 해당 변수, 예약된 변수 및 정적 정보를 참조하는 다음 템플릿을 작성할 수 있습니다.

   ```
   {
       "message": "<requester> has created the object \"<key>\" in the bucket \"<bucket>\"",
       "RuleName": <aws.events.rule-name>,
       "ruleArn" : <aws.events.rule-arn>,
       "Transformed": "Yes"
   }
   ```

   (선택 사항) **복사**를 선택하여 템플릿을 디바이스의 클립보드에 복사할 수도 있습니다.

1. 템플릿을 테스트하려면 **출력 생성**을 선택합니다.

   EventBridge는 입력 템플릿을 기반으로 샘플 이벤트를 처리하고 **출력**에서 생성된 변환 출력을 표시합니다. 이는 EventBridge가 원본 소스 이벤트 대신 대상에 전달할 정보입니다.

   위에서 설명한 예시 입력 템플릿에 대해 생성된 출력은 다음과 같습니다.

   ```
   {
       "message": "123456789012 has created the object "example-key" in the bucket "amzn-s3-demo-bucket"",
       "RuleName": rule-name,
       "ruleArn" : arn:aws:events:us-east-1:123456789012:rule/rule-name,
       "Transformed": "Yes"
   }
   ```

   (선택 사항) **복사**를 선택하여 생성된 출력을 디바이스의 클립보드에 복사할 수도 있습니다.