翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS AppSync Amazon でのルールのターゲット EventBridge
AWS AppSync では、開発者は、安全でサーバーレス、高性能な GraphQL と Pub/Sub を使用して、アプリケーションとサービスをデータやイベントに接続できますAPIs。を使用すると AWS AppSync、GraphQL ミューテーションを使用してアプリケーションにリアルタイムのデータ更新を発行できます。 EventBridge は、一致したイベントの有効な GraphQL ミューテーションオペレーションの呼び出しをサポートします。ミューテーションを AWS AppSync APIターゲットとして指定すると、 はミューテーションオペレーションを介してイベント AWS AppSync を処理し、ミューテーションにリンクされたサブスクリプションをトリガーできます。
注記
EventBridge は AWS AppSync パブリック GraphQL をサポートしますAPIs。 EventBridge は現在 AWS AppSync 、プライベート をサポートしていませんAPIs。
AWS AppSync GraphQL APIターゲットは、次のユースケースに使用できます。
設定したデータソースへのイベントデータのプッシュ、変換、保存
接続しているアプリケーションクライアントへの通知のリアルタイム送信
注記
AWS AppSync ターゲットは、認証タイプ APIsを使用した AWS AppSync GraphQL の呼び出しのみをサポートします。 AWS_IAM
AWS AppSync GraphQL の詳細についてはAPIs、AWS AppSync 「 デベロッパーガイド」のGraphQL と AWS AppSync アーキテクチャ」を参照してください。
コンソールを使用して EventBridge ルールの AWS AppSync ターゲットを指定するには
[ターゲット] で、[AWS のサービス]、[AWS AppSync] の順に選択してターゲットを指定します。
解析して実行するミューテーション操作を、選択セットと共に指定します。
を選択し AWS AppSync API、次に呼び出す GraphQL APIミューテーションを選択します。
[パラメータと選択セットの設定] で、選択セットの作成にキーと値のマッピングを使用するか、入力トランスフォーマーを使用するかを選択します。
[実行ロール] で、新しいロールを作成するか、既存のロールを使用するかを選択します。
ルールの作成または編集を完了します。
例:Amazon の AWS AppSync ターゲット EventBridge
次の例では、配信するイベントをフォーマットするための入力変換の定義など、 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"]) }
これを使用するアプリケーションクライアントは、ミューpushEvent
テーションによってトリガーされるsubscribeToEvent
サブスクリプションをサブスクライブAPIできます。
pushEvent
ミューテーションを介してイベントを AppSync APIに送信するターゲットを使用して EventBridge ルールを作成できます。ミューテーションを呼び出すと、サブスクライブしているすべてのクライアントがイベントを受信します。
これを EventBridge ルールのターゲットAPIとして指定するには、以下を実行します。
ルールターゲットの Amazon リソースネーム (ARN) を
Ec2EventAPI
ARNの GraphQL エンドポイントに設定しますAPI。GraphQL ミューテーション操作をターゲットパラメータとして指定します。
mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) { pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) { id statusCode instanceId } }
ミューテーション選択セットには、GraphQL サブスクリプションでサブスクライブするすべてのフィールドを含める必要があります。
入力トランスフォーマーを設定して、一致したイベントのデータをどのように操作で使用するかを指定します。
次の
“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> }