View a markdown version of this page

모범 사례 - AWS 파트너 센트럴

AWS Partner Central API 참조가 재구성되었습니다. 지원되는 API 작업에 대한 자세한 내용은 AWS Partner Central API 참조를 참조하세요.

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

모범 사례

이벤트에 대응

AWS Partner Central API에서 이벤트를 처리할 때 중복 이벤트를 처리할 수 있는 처리 로직이 멱등성인지 확인합니다. 각 이벤트에 대해 즉각적인 GetOpportunity 호출을 수행하는 대신 애플리케이션의 요구 사항에 따라 세부 정보를 일괄 처리하거나 선택적으로 가져오는 것이 좋습니다. 중단 없는 작업의 경우 할당량을 주의하십시오.

낙관적 잠금 구현

낙관적 잠금은 동시 업데이트 중에 의도하지 않은 데이터 재정의를 방지합니다. 다음은 일반적인 시나리오입니다.

  1. 파트너는 CRM 시스템에서 기회를 검색합니다.

  2. 사용자는AWS Partner Central에서 기회를 A 업데이트합니다.

  3. 사용자는 CRM 통합을 통해 동일한 기회를 동시에 B 업데이트합니다.

  4. 데이터가 변경되면 CRM 시스템은 데이터를 업로드하려고 시도하지만를 반환합니다ConflictException.

  5. 사용자가 오류를 검토하고 충돌하는 데이터를 수동으로 해결합니다.

이 시나리오를 방지하려면 모든 UpdateOpportunity 요청에 이전 CreateOpportunity, UpdateOpportunity 및 GetOpportunity 작업에서 가져올 수 있는 LastModifiedDate 파라미터가 포함되어야 합니다. UpdateOpportunity 가 시스템과 LastModifiedDate 일치하는 경우에만 업데이트가 성공합니다. 그렇지 않은 경우 GetOpportunityLastModifiedDate 사용하여 최신를 가져오고 업데이트를 다시 시도해야 합니다.

CRM과AWS Partner Central 간의 데이터 동기화

시스템을 Partner Central의 최신 데이터와 동기화하는 것이 중요합니다. 다음은 시스템이 최신 데이터를 반영하도록 하기 위한 두 가지 전략입니다.

이벤트 사용(권장)

  1. ListOpportunities를 사용하여 데이터를 로드합니다.

  2. 기회 이벤트를 구독합니다.

  3. 새로운 기회나 변화에 대응합니다.

    • Opportunity Created, Opportunity 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. 를 사용하여 반환된 모든 페이지를 반복NextToken하고 GetOpportunity를 사용하여 시스템 데이터를 업데이트합니다.

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