Удаление учетной записи клиента из песочницы интеграции

Область применения: Центр партнеров | Центр партнеров, управляемый 21Vianet | Центр партнеров для Microsoft Cloud for US Government

В этой статье объясняется, как разорвать отношения между партнером и учетной записью клиента и восстановить квоту для тестирования в песочнице интеграции с рабочей средой (Совет).

Важно!

При удалении учетной записи клиента удаляются все ресурсы, связанные с этим клиентом.

Предварительные условия

  • Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. В этом сценарии поддерживается проверка подлинности с использованием учетных данных автономного приложения и приложения и пользователя.

  • Идентификатор клиента (customer-tenant-id). Если вы не знаете идентификатор клиента, вы можете найти его в Центре партнеров , выбрав рабочую область Клиенты , а затем клиента в списке клиентов, а затем Учетная запись. На странице учетной записи клиента найдите Идентификатор Майкрософт в разделе Сведения об учетной записи клиента. Идентификатор Майкрософт совпадает с идентификатором клиента (customer-tenant-id).

  • Перед удалением клиента из песочницы интеграции Tip необходимо отменить все зарезервированные экземпляры виртуальных машин Azure и заказы на покупку программного обеспечения.

C#

Чтобы удалить клиента из песочницы интеграции Tip, выполните следующие действия.

  1. Передайте учетные данные учетной записи Tip методу CreatePartnerOperations , чтобы получить интерфейс IPartner для партнерских операций.

  2. Используйте интерфейс партнерских операций для получения коллекции прав:

    1. Вызовите метод Customers.ById() с идентификатором клиента, чтобы указать клиента.

    2. Вызовите свойство "Права ".

    3. Вызовите метод Get или GetAsync , чтобы получить коллекцию Прав .

  3. Убедитесь, что все зарезервированные экземпляры виртуальных машин Azure и заказы на покупку программного обеспечения для этого клиента отменены. Для каждого права в коллекции:

    1. Используйте entitlement.ReferenceOrder.Id , чтобы получить локальную копию соответствующего заказа из коллекции заказов клиента.

    2. Присвойте свойству Order.Status значение "Отменено".

    3. Используйте метод Patch() для обновления заказа.

  4. Отмена всех заказов. Например, в следующем примере кода используется цикл для опроса каждого заказа, пока его состояние не будет "Отменено".

    // 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 для клиента.

Пример: консольное тестовое приложение. Project: PartnerCenterSDK.FeaturesSamples Class: DeleteCustomerFromTipAccount.cs

Запрос REST

Синтаксис запроса

Метод Универсальный код ресурса (URI) запроса
DELETE {baseURL}/v1/customers/{customer-tenant-id} HTTP/1.1

Параметр универсального кода ресурса (URI)

Используйте следующий параметр запроса, чтобы удалить клиента.

Имя Тип Обязательно Описание
customer-tenant-id Код GUID Да Значение представляет собой идентификатор 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