Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS AppSync target untuk aturan di Amazon EventBridge
AWS AppSync memungkinkan pengembang untuk menghubungkan aplikasi dan layanan mereka ke data dan acara dengan GraphQL dan Pub/Sub yang aman, tanpa server, dan berkinerja tinggi. APIs Dengan AWS AppSync, Anda dapat mempublikasikan pembaruan data real-time ke aplikasi Anda dengan mutasi GraphQL. EventBridge mendukung pemanggilan operasi mutasi GraphQL yang valid untuk peristiwa yang cocok. Saat Anda menentukan AWS AppSync API mutasi sebagai target, AWS AppSync memproses peristiwa melalui operasi mutasi, yang kemudian dapat memicu langganan yang ditautkan ke mutasi.
catatan
EventBridge mendukung AWS AppSync GraphQL APIs publik. EventBridge saat ini tidak mendukung AWS AppSync PrivateAPIs.
Anda dapat menggunakan target AWS AppSync API GraphQL untuk kasus penggunaan berikut:
Untuk mendorong, mengubah, dan menyimpan data peristiwa ke sumber data yang dikonfigurasi.
Untuk mengirim pemberitahuan real-time ke klien aplikasi yang terhubung.
catatan
Untuk informasi selengkapnya tentang AWS AppSync APIs GraphQL, lihat GraphQL dan arsitektur di Panduan AWS AppSync Pengembang.AWS AppSync
Untuk menentukan AWS AppSync target untuk EventBridge aturan menggunakan konsol
Di bawah Target, tentukan target dengan memilih AWS layanan dan kemudian AWS AppSync.
Tentukan operasi mutasi yang akan diurai dan dieksekusi, bersama dengan set seleksi.
Pilih AWS AppSync API, dan kemudian mutasi API GraphQL untuk dipanggil.
Di bawah Konfigurasi parameter dan set pilihan, pilih untuk membuat set pilihan menggunakan pemetaan nilai kunci atau transformator input.
Untuk peran Eksekusi, pilih apakah akan membuat peran baru atau menggunakan peran yang sudah ada.
Selesaikan membuat atau mengedit aturan.
Contoh: AWS AppSync target untuk Amazon EventBridge
Dalam contoh berikut, kita akan membahas cara menentukan AWS AppSync target untuk EventBridge aturan, termasuk mendefinisikan transformasi input untuk memformat peristiwa untuk pengiriman.
Misalkan Anda memiliki AWS AppSync API GraphQLEc2EventAPI
,, didefinisikan oleh skema berikut:
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"]) }
Aplikasi klien yang menggunakan ini API dapat berlangganan subscribeToEvent
langganan, yang dipicu oleh pushEvent
mutasi.
Anda dapat membuat EventBridge aturan dengan target yang mengirimkan peristiwa ke AppSync API melalui pushEvent
mutasi. Ketika mutasi dipanggil, setiap klien yang berlangganan akan menerima acara tersebut.
Untuk menentukan ini API sebagai target EventBridge aturan, Anda akan melakukan hal berikut:
Tetapkan Amazon Resource Name (ARN) dari target aturan ke titik akhir GraphQLARN.
Ec2EventAPI
APITentukan Operasi GraphQL mutasi sebagai parameter target:
mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) { pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) { id statusCode instanceId } }
Set pilihan mutasi Anda harus menyertakan semua bidang yang ingin Anda berlangganan dalam langganan GraphQL Anda.
Konfigurasikan transformator input untuk menentukan bagaimana data dari peristiwa yang cocok digunakan dalam operasi Anda.
Misalkan Anda memilih
“EC2 Instance Launch Successful”
contoh acara:{ "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." } }
Anda dapat menentukan variabel berikut untuk digunakan dalam template Anda, menggunakan jalur input transformator input target:
{ "id": "$.id", "statusCode": "$.detail.StatusCode", "EC2InstanceId": "$.detail.EC2InstanceId" }
Tulis template transformator input untuk menentukan variabel yang EventBridge lolos ke operasi AWS AppSync mutasi. Template harus mengevaluasiJSON. Dengan jalur masukan kami, Anda dapat membuat template berikut:
{ "id": <id>, "statusCode": <statusCode>, "instanceId": <EC2InstanceId> }