다음을 통해 공유


통합 샌드박스에서 고객 계정 삭제

적용 대상: 파트너 센터 | 21Vianet에서 운영되는 파트너 센터 | Microsoft Cloud for US Government 파트너 센터

이 문서에서는 파트너와 고객 계정 간의 관계를 끊고 프로덕션에서 테스트(팁) 통합 샌드박스에 대한 할당량을 되찾는 방법을 설명합니다.

중요

고객 계정을 삭제하면 해당 고객 테넌트와 연결된 모든 리소스가 제거됩니다.

필수 구성 요소

  • 자격 증명(파트너 센터 인증에서 설명). 이 시나리오는 독립 실행형 앱 및 App+사용자 자격 증명을 모두 사용하여 인증을 지원합니다.

  • 고객 ID (customer-tenant-id). 고객의 ID를 모르는 경우 고객 작업 영역, 고객 목록에서 고객, 계정을 차례로 선택하여 파트너 센터에서 조회할 수 있습니다. 고객 계정 페이지의 고객 계정 정보 섹션에서 Microsoft ID를 찾습니다. Microsoft ID는 고객 ID(customer-tenant-id)와 동일합니다.

  • 팁 통합 샌드박스에서 고객을 삭제하기 전에 모든 Azure Reserved Virtual Machine 인스턴스 및 소프트웨어 구매 주문을 취소해야 합니다.

C#

팁 통합 샌드박스에서 고객을 삭제하려면 다음을 수행합니다.

  1. 파트너 작업에 대한 IPartner 인터페이스를 얻으려면 Tip 계정 자격 증명을 CreatePartnerOperations 메서드에 전달합니다.

  2. 파트너 작업 인터페이스를 사용하여 자격 컬렉션을 검색합니다.

    1. 고객 식별자를 사용하여 Customers.ById() 메서드를 호출하여 고객을 지정합니다.

    2. Entitlements 속성을 호출합니다.

    3. Get 또는 GetAsync 메서드를 호출하여 Entitlement 컬렉션을 검색합니다.

  3. 해당 고객에 대한 모든 Azure Reserved Virtual Machine Instances 및 소프트웨어 구매 주문이 취소되었는지 확인합니다. 컬렉션의 각 권한 에 대해 다음을 수행합니다.

    1. entitlement.ReferenceOrder.Id 사용하여 고객의 주문 컬렉션에서 해당 주문의 로컬 복사본을 가져옵니다.

    2. Order.Status 속성을 "Canceled"로 설정합니다.

    3. Patch() 메서드를 사용하여 순서를 업데이트합니다.

  4. 모든 주문을 취소합니다. 예를 들어 다음 코드 샘플에서는 루프를 사용하여 상태 "Canceled"가 될 때까지 각 주문을 폴링합니다.

    // IPartnerCredentials tipAccountCredentials;
    // Customer tenant Id to be deleted.
    // string customerTenantId;
    
    IPartner tipAccountPartnerOperations = PartnerService.Instance.CreatePartnerOperations(tipAccountCredentials);
    
    // Get all entitlements whose order must be canceled.
    ResourceCollection<Entitlement> entitlements = tipAccountPartnerOperations.Customers.ById(customerTenantId).Entitlements.Get();
    
    // Cancel all orders
    foreach (var entitlement in entitlements)
    {
        var order = tipAccountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(entitlement.ReferenceOrder.Id).Get();
        order.Status = "Cancelled";
        order = tipAccountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(order.Id).Patch(order);
    }
    
    // Keep polling until the status of all orders is "Cancelled".
    bool proceed = true;
    do
    {
        // Check if all the orders were canceled.
        foreach (var entitlement in entitlements)
        {
            var order = tipAccountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(entitlement.ReferenceOrder.Id).Get();
            if (!order.Status.Equals("Cancelled", StringComparison.OrdinalIgnoreCase))
            {
                proceed = false;
            }
        }
    
        // Wait for a few seconds.
        Thread.Sleep(5000);
    }
    while (proceed == false);
    
    tipAccountPartnerOperations.Customers.ById(customerTenantId).Delete();
    
  5. 고객의 Delete 메서드를 호출하여 모든 주문이 취소되었는지 확인합니다.

샘플: 콘솔 테스트 앱. 프로젝트: 파트너 센터 PartnerCenterSDK.FeaturesSamples 클래스: DeleteCustomerFromTipAccount.cs

REST 요청

요청 구문

방법 요청 URI
DELETE {baseURL}/v1/customers/{customer-tenant-id} HTTP/1.1

URI 매개 변수

다음 쿼리 매개 변수를 사용하여 고객을 삭제합니다.

Name 형식 필수 설명
customer-tenant-id GUID Y 값은 재판매인이 재판매인에 속한 지정된 고객의 결과를 필터링할 수 있도록 하는 GUID 형식의 customer-tenant-id 입니다.

요청 헤더

자세한 내용은 파트너 센터 REST 헤더를 참조하세요.

요청 본문

없음

요청 예제

DELETE https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id> HTTP/1.1
Accept: application/json
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
Content-Length: 0

REST 응답

성공하면 이 메서드는 빈 응답을 반환합니다.

응답 성공 및 오류 코드

각 응답에는 성공 또는 실패와 추가 디버깅 정보를 나타내는 HTTP 상태 코드가 함께 제공됩니다. 네트워크 추적 도구를 사용하여 이 코드, 오류 유형 및 추가 매개 변수를 읽을 수 있습니다. 전체 목록은 파트너 센터 REST 오류 코드를 참조하세요.

응답 예제

HTTP/1.1 204 No Content
Content-Length: 0
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
Date: Wed, 16 Mar 2016 00:43:02 GMT