다음을 통해 공유


사용량 이벤트 데이터 처리

 

적용 대상: Windows Azure Pack

Windows Windows Server용 Azure Pack 청구 시스템에서는 구독, 계획 등의 테넌트 관리에 대한 사용 이벤트 데이터를 사용하여 테넌트 청구 정보를 계산해야 합니다. 이를 위해 청구 시스템의 청구 어댑터는 사용량 REST API를 사용하여 사용량 이벤트 데이터를 수집하고 청구 요구 사항에 적용되는 사용량 현황 데이터 데이터베이스를 작성합니다.

사용 이벤트 가져오기

Usage Service 엔드포인트는 REST API를 노출하여 계획, 계획 추가 기능, 계획 서비스, 추가 기능 및 구독에 대한 청구 데이터를 반환합니다. 예를 들어 계획 이벤트를 검색하려면 계획 이벤트 검색 REST API 호출이 수행됩니다.

https://<Computer>:30022/billing/plans?startId=0&batchSize=1 HTTP/1.1
Accept: application/json
Authorization: basic <Token>
Host: <Computer>:30022
Connection: Keep-Alive

응답 본문은 최근 계획 이벤트를 포함하는 UsageEvent(사용량 계량 개체) 개체 목록을 반환합니다. 예를 들면 다음과 같습니다.

[
  {
    "EventId": 1,
    "State": 0,
    "Method": "0",
    "Entity": {
      "Id": "Idjt711xf",
      "DisplayName": "TheDisplayName",
      "State": 0,
      "ConfigState": 0,
      "QuotaSyncState": 2,
      "LastErrorMessage": null,
      "Advertisements": [
        {
          "LanguageCode": "en-us",
          "DisplayName": "TheDisplayName",
          "Description": null
        }
      ],
      "ServiceQuotas": [
        {
          "ServiceName": "webspaces",
          "ServiceInstanceId": "4576E3B4-881D-4B9F-87F4-E72206FB11D6",
          "ServiceDisplayName": "Web Site Cloud",
          "ServiceInstanceDisplayName": null,
          "ConfigState": 0,
          "QuotaSyncState": 2,
          "Settings": [

          ]
        },
        {
          "ServiceName": "sqlservers",
          "ServiceInstanceId": "2FBED6DE-5195-4F95-98DC-B67829621025",
          "ServiceDisplayName": "SQL Servers",
          "ServiceInstanceDisplayName": null,
          "ConfigState": 0,
          "QuotaSyncState": 2,
          "Settings": [

          ]
        },
        {
          "ServiceName": "mysqlservers",
          "ServiceInstanceId": "0C18772C-3596-4E2A-BD60-21230C186D17",
          "ServiceDisplayName": "MySQL Servers",
          "ServiceInstanceDisplayName": null,
          "ConfigState": 0,
          "QuotaSyncState": 2,
          "Settings": [

          ]
        },
        {
          "ServiceName": "servicebus",
          "ServiceInstanceId": "B40CC649-1ACE-4134-ADC9-1E610B64F400",
          "ServiceDisplayName": "Service Bus",
          "ServiceInstanceDisplayName": null,
          "ConfigState": 0,
          "QuotaSyncState": 2,
          "Settings": [

          ]
        }
      ],
      "SubscriptionCount": 0,
      "MaxSubscriptionsPerAccount": 1,
      "AddOnReferences": [

      ],
      "AddOns": [

      ],
      "InvitationCode": null,
      "Price": null
    },
    "EntityParentId": null,
    "NotificationEventTimeCreated": "2013-07-31T23:56:20.05"
  }
]

사용 가능한 사용량 REST API에 대한 자세한 내용은 Windows Azure Pack Usage Service 사용량 REST API 참조를 참조하세요.

사용 이벤트 처리

사용 이벤트 데이터에 액세스하려면 Usage Service REST API에서 반환 된 UsageEvent(사용량 계량 개체) 개체를 사용합니다. 청구 어댑터로 전송된 이벤트 알림은 유형 - UsageEvent(사용량 계량 개체)<T 형식을 준수합니다. 여기서 T> 는 다음 개체 중 하나로 바뀝니다.

  • 계획

  • PlanAddon

  • AdminSubscription

  • ResourceProviderReference

  • PlanAddonReference

UsageEvent 개체에는 계획 및 구독과 같은 이벤트 엔터티, 생성 또는 삭제와 같은 작업 유형 및 작업의 현재 상태와 같은 정보가 포함됩니다. 다음 표에서는 각 조합 상태에 대해 청구 어댑터에서 수행할 작업에 대해 설명합니다.

이벤트/작업

만들기(POST)

업데이트(PUT)

삭제

계획

모든 이벤트 처리

무시

무시(수동)

추가 기능 계획

모든 이벤트 처리

무시

무시(수동)

계획 서비스

모든 이벤트 처리

무시

무시(수동)

추가 기능

모든 이벤트 처리

무시

무시(수동)

추가 기능 서비스

모든 이벤트 처리

무시

무시(수동)

Subscriptions

프로세스 "승인됨" 이벤트

"승인 보류 중" 및 "승인됨" 이벤트 처리

"승인됨" 이벤트 처리

구독 추가 기능

"중복" 이벤트를 포함하여 "승인됨" 이벤트 처리*

무시

"승인됨" 이벤트 처리

위의 테이블을 처리하기 위한 중요한 UsageEvent 속성은 다음과 같습니다.

속성

설명

엔터티

작동 중인 개체를 포함합니다. 예를 들어 구독에 대한 AdminSubscription(관리자 개체) 입니다.

메서드

POST, PUT 또는 DELETE와 같은 작업의 형식입니다.

시스템 상태

작업의 현재 상태입니다.

Description

0

승인됨

1

거부됨

2

승인 보류 중

3

승인됨

위의 작업 중 일부에 대해 중복 이벤트가 발생할 수 있습니다. 예를 들어 작업이 실패할 수 있으므로 "계획 삭제" 이벤트는 동일한 데이터가 있는 행에서 두 번 발생할 수 있습니다. "구독 추가 기능 만들기" 이벤트의 경우 테넌트는 동일한 추가 기능을 여러 번 구매할 수 있으므로(이러한 방식으로 구성된 경우) 각 만들기 이벤트를 처리하여 청구 시스템에서 새 엔터티를 만들어야 합니다. 다른 모든 만들기 작업의 경우 중복 생성은 청구 시스템에 만들어지지 않아야 합니다(즉, 엔터티가 이미 있는 경우 다른 엔터티를 만들지 않음). 안전하게 무시할 수 있습니다.

Windows Azure 팩과 청구 시스템 간의 엔터티 매핑

청구 어댑터는 Windows Azure Pack에서 보낸 식별자와 일치하는 이름을 사용하여 청구 시스템에 엔터티를 만들어야 합니다. 이러한 방식으로 관리자는 청구 시스템의 엔터티에 해당하는 Windows Azure Pack의 엔터티를 상호 연결할 수 있습니다. 청구 시스템에서 이를 지원하지 않는 경우 청구 어댑터는 매핑 정보를 유지 관리하여 Windows Azure Pack에서 사용하는 식별자를 청구 시스템에서 사용하는 식별자로 변환해야 합니다. 이러한 이유로 청구 어댑터에는 불일치 또는 불확실성을 해결할 수 있도록 이 매핑 정보를 관리자에게 안전한 방식으로 노출하는 몇 가지 메커니즘이 있어야 합니다.

구독 처리

구독 이벤트는 다음과 같은 상황에서 만들어집니다.

  • 구독이 활성화되거나 일시 중단된 경우

  • 구독을 마이그레이션하는 경우

구독 일시 중단

중요

여기에 설명된 구독 일시 중단은 Windows Azure Pack의 다음 업데이트 릴리스까지 사용할 수 없습니다. 현재 RTM 빌드에서 구독 일시 중단 및 활성화는 이 인터페이스를 통해 검색할 수 없습니다. 청구 시스템의 관점에서 실행 불가능하고 무시해야 하는 구독 업데이트 이벤트가 있습니다.

구독이 Windows Azure Pack에서 일시 중단되어 테넌트가 새 리소스를 프로비전하거나 일시 중단된 구독을 사용하여 기존 리소스에 액세스하는 것을 허용하지 않는 경우 이 변경 내용은 구독 업데이트 이벤트를 통해 청구 시스템으로 전파됩니다. 구독 개체 인 AdminSubscription(Administrator 개체)에는 구독이 활성 인지 일시 중단되었는지 여부를 나타내는 상태 속성이 있습니다. 관리자가 사용자의 구독을 일시 중단하는 경우 사용자에게 부적절한 요금이 부과되지 않도록 청구 시스템에서 적절한 조치를 취해야 합니다. 데이터베이스, 웹 사이트 및 VM과 같은 사용자의 기존 리소스는 삭제되지 않습니다. 테넌트의 액세스 권한만 제거됩니다. 또한 사용자가 여러 구독을 가질 수 있으므로 나머지 구독이 활성 상태로 유지되는 동안 사용자의 구독 중 하나가 일시 중단될 수 있습니다. 해당 사용자와 연결된 Windows Azure Pack의 모든 구독이 일시 중단되지 않는 한 청구 시스템에서 사용자 수준 일시 중단이 발생하지 않아야 합니다.

구독 마이그레이션

Windows Azure Pack에서 구독 마이그레이션이 시작되면 구독이 참조하는 새 계획의 계획 식별자를 포함하는 구독 업데이트 이벤트로 Usage Service REST API에 이벤트가 노출됩니다. 이를 감지하려면 청구 어댑터가 각 구독의 WAP 계획 식별자를 추적하여 이 변경 내용을 감지하고 청구 시스템에서 적절한 조치를 취해야 합니다. 또한 이전에 마이그레이션된 구독과 연결된 모든 구독 추가 기능은 청구 시스템에서 삭제해야 합니다. 이러한 추가 기능은 Windows Azure Pack에서 제거되고 할당량 증가는 새 계획의 할당량에 통합됩니다.

참고 항목

Azure Pack 사용량 서비스 사용량 REST API 참조 Windows