Przykład: interfejs API usług REST produktu Log Management
W tym przykładzie przedstawiono sposób użycia operacji przetwarzania w chmurze Log Management REST API do żądania i pobierania dzienników z serwerów przepływu pracy w subskrypcji w chmurze.
Ten przykład obejmuje pobieranie listy żądań dzienników, poznawanie
dostępnych typów dzienników, żądanie i pobieranie dziennika oraz usuwanie żądań
dzienników i powiązanych z nimi plików dzienników.
- Zanim rozpoczniesz
- Wszystkie wywołania funkcji API wymagają poprawnego znacznika CSRF (cross site forgery request) w nagłówku IBM-CSRF-TOKEN wywołania. Znacznik CSRF należy uzyskać
za pomocą komendy
POST /instance/services/csrf_token
. Więcej informacji na ten temat zawiera sekcja Zapobieganie fałszerstowi żądań między ośrodkiem. - Wyświetlanie listy żądań pobrania dzienników wykonanych w subskrypcji
- Aby pobrać żądania, należy użyć następującego wywołania:
Żądania możesz przefiltrować wg środowiska (np. wg środowiska programistycznego) i możesz zastosować stronicowanie:GET /instance/services/logs
GET /instance/services/logs/?environment=dev&offset=5&size=10
- Poznawanie dostępnych typów dzienników
- Obsługiwanych jest kilka typów dzienników. Aby uzyskać listę typów dzienników obsługiwanych w subskrypcji, należy użyć następującego
wywołania:
Lista zawiera nazwy wyświetlane (możliwe do przetłumaczenia) wszystkich typów dzienników i listę dostępnych właściwości.GET /instance/services/log_types
- Żądanie konkretnego typu dziennika dla środowiska
- Aby zażądać dziennika, należy użyć następującego wywołania:
Szczegółowe informacje o żądaniu dziennika są przekazywane jako obiekt JSON w treści żądania wywołania. Aby na przykład zażądać dzienników z klastra aplikacji w środowisku programistycznym, w treści wywołania należy podać środowisko i typ dziennika:POST /instance/services/logs
W zależności od właściwości, które są obsługiwane w przypadku danego typu dziennika, możesz do treści wywołania dodać więcej kryteriów filtrowania. W tym celu należy ustawić odpowiednie właściwości w obiekcie JSON. Aby na przykład zażądać dziennika klastra aplikacji, który zawiera wszystkie zdarzenia zarejestrowane między 13:07 i 13:17 w dniu 16 sierpnia 2019 roku z zastosowaniem poziomu rejestrowania all (Wszystko), należy użyć następującego wywołania:POST /instance/services/logs ... { "environment": "dev", "log_type": "AppCluster" }
Odpowiedź zawiera identyfikator dziennika oraz status i szczegóły żądania dziennika. Identyfikatora dziennika można użyć do pobrania wartości statusu, szczegółowych informacji o żądaniu dziennika i pliku dziennika. Jeśli podasz nieobsługiwaną właściwość typu dziennika, interfejs API zwróci błąd. Jeśli nie dołączysz wszystkich obsługiwanych właściwości, w przypadku brakujących właściwości będą używane wartości domyślne.POST /instance/services/logs ... { "environment": "dev", "log_type": "AppCluster", "start_time": "2019-08-16T13:17:22.421Z", "duration": 10, "min_log_level": "all" }
- Pobieranie żądanego dziennika
- Sprawdź status żądania pobrania dziennika, dodając parametr log_id do wywołania GET :
Gdy zwrócone żądanie dziennika zawiera status „available” (dostępne), w celu pobrania pliku .zip zawierającego dzienniki, można użyć poniższego wywołania z elementem content-type o wartości „application/zip”:GET /instance/services/logs/8015
GET /instance/services/logs/8015/file
- Usuwanie żądań dzienników i powiązanych plików dzienników
- Aby usunąć żądanie dziennika i pliki dziennika, należy użyć następującego
wywołania:
DELETE /instance/services/logs/8015