View a markdown version of this page

ベストプラクティス - AWS Partner Central

AWS パートナーセントラル API リファレンスが再構築されました。サポートされている API オペレーションの詳細については、 AWS パートナーセントラル API リファレンスを参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ベストプラクティス

イベントへの対応

AWS Partner Central API からイベントを処理するときは、処理ロジックが重複イベントを処理するべき等であることを確認します。各イベントに対して GetOpportunity をすぐに呼び出す代わりに、アプリケーションのニーズに基づいて詳細をバッチ処理または選択的に取得することを検討してください。中断のないオペレーションの場合は、クォータに注意してください。

オプティミスティックロックの実装

オプティミスティックロックは、同時更新中の意図しないデータ上書きを防ぎます。一般的なシナリオを次に示します。

  1. パートナーは CRM システムからオポチュニティを取得します。

  2. ユーザーはAWS Partner Central でオポチュニティAを更新します。

  3. ユーザーは CRM 統合を通じて同じ機会を同時にB更新します。

  4. データが変更されると、CRM システムはデータのアップロードを試みますが、 を返しますConflictException

  5. ユーザーはエラーを確認し、競合するデータを手動で解決します。

このシナリオを回避するには、すべての UpdateOpportunity リクエストに、以前の CreateOpportunity、および GetOpportunity アクションから取得できる LastModifiedDateパラメータが含まれている必要があります。 UpdateOpportunity 更新は、 がシステムLastModifiedDateと一致する場合にのみ成功します。そうでない場合は、GetOpportunity LastModifiedDateを使用して最新の を取得し、更新を再試行する必要があります。

CRM とAWS Partner Central 間のデータの同期

システムを Partner Central の最新データと同期させることが重要です。以下は、システムが最新のデータを確実に反映するための 2 つの戦略です。

イベントの使用 (推奨)

  1. ListOpportunities を使用してデータをロードします。

  2. オポチュニティイベントにサブスクライブします。

  3. 新しい機会や変化に対応します。

    • Opportunity CreatedOpportunity Updated、または Engagement Invitation Acceptedイベントを受け取ったら、 GetOpportunityを使用して最新のデータを取得します。

    • Engagement Invitation Rejected イベントを受け取ったら、対応するオポチュニティを削除します。

ListOpportunities ポーリングの使用

  1. ListOpportunities を使用してデータをロードします。

  2. 毎日の読み取りクォータを使い果たさないように、ポーリング頻度を選択します。

  3. 保存されたデータLastModifiedDateから最新のデータを特定し、データの送信元を確認しますAWS。

  4. ListOpportunities を呼び出すときは、AfterLastModifiedDateフィルターのタイムスタンプを使用します。

    { "FilterList": [ { "Name": "AfterLastModifiedDate", "ValueList": [ "2023-05-01T20:37:46Z" ] // Replace with actual timestamp of your last synced data } ] }
  5. AWSは、タイムスタンプに示された値の後に作成または更新されたオポチュニティを返します。

  6. を使用して返されたすべてのページを反復処理しNextTokenGetOpportunity を使用してシステムのデータを更新します。

    { "NextToken": "AAMA-EFRSN...PZa942D", "FilterList": [ { "Name": "AfterLastModifiedDate", "ValueList": [ "2023-05-01T20:37:46Z" ] // Replace with actual timestamp of your last synced data } ] }