AWS AppSync Amazon의 규칙 대상 EventBridge - Amazon EventBridge

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

AWS AppSync Amazon의 규칙 대상 EventBridge

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.

다음 사용 사례에 AWS AppSync GraphQL API 대상을 사용할 수 있습니다.

  • 이벤트 데이터를 구성된 데이터 소스로 푸시, 변환 및 저장합니다.

  • 연결된 애플리케이션 클라이언트에 실시간 알림을 전송합니다.

참고

AWS AppSync 대상은 AWS_IAM 권한 부여 유형 을 APIs 사용한 AWS AppSync GraphQL 호출만 지원합니다.

AWS AppSync GraphQL 에 대한 자세한 내용은 AWS AppSync 개발자 안내서GraphQL 및 AWS AppSync 아키텍처를 APIs참조하세요.

콘솔을 사용하여 EventBridge 규칙의 AWS AppSync 대상을 지정하려면
  1. 규칙을 만들거나 편집하십시오.

  2. 대상에서 AWS 서비스AWS AppSync를 선택하여 대상을 지정하십시오.

  3. 선택 세트와 함께 파싱하여 실행할 변형 작업을 지정합니다.

    • 를 AWS AppSync API선택한 다음 호출할 GraphQL API 돌연변이를 선택합니다.

    • 파라미터 및 선택 세트 구성에서 키-값 매핑 또는 입력 변환기를 사용하여 선택 세트를 만들도록 선택합니다.

      Key-value mapping

      키-값 매핑을 사용하여 선택 세트를 만들려면 다음과 같이 하십시오.

      • API 파라미터의 변수를 지정합니다. 각 변수는 정적 값 또는 이벤트 페이로드에 대한 동적 JSON 경로 표현식일 수 있습니다.

      • 선택 세트에서 응답에 포함할 변수를 선택합니다.

      Input transformer

      입력 변환기를 사용하여 선택 세트를 만들려면 다음과 같이 하십시오.

      • 사용할 변수를 정의하는 입력 경로를 지정합니다.

      • 입력 템플릿을 지정하여 대상에 전달하려는 정보를 정의하고 형식을 지정합니다.

      자세한 내용은 에서 규칙을 생성할 때 입력 변환기 구성 EventBridge 단원을 참조하십시오.

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

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

예:Amazon의 AWS AppSync 대상 EventBridge

다음 예에서는 전송을 위한 형식 이벤트로 입력 변환을 정의하는 등 EventBridge 규칙의 AWS AppSync 대상을 지정하는 방법을 살펴보겠습니다.

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

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"]) }

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

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

이를 EventBridge 규칙API의 대상으로 지정하려면 다음을 수행합니다.

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

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

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

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

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

    “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" }

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

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