---
title: 'SDK-клиент'
sidebar_label: 'SDK-клиент'
description: 'Как настроить SDK-клиент для работы с логами'
sidebar_position: 2
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'

# SDK-клиент

Для работы с логами вы можете настроить собственный SDK-клиент на Python или Go.

Для SDK-клиента можно:

* задать конфигурации настроенного AWS CLI;
* переопределить конфигурации AWS CLI;
* задать кастомные конфигурации.

<Tabs queryString="configure-clients">
  <TabItem value="python" default>
    <TabItemLabel>
      Python
    </TabItemLabel>

    <Tabs queryString="python-configs">
      <TabItem value="aws-cli-config">
        <TabItemLabel>
          Конфигурации AWS CLI
        </TabItemLabel>

        1. Откройте CLI.

        2. Установите [boto3](https://github.com/boto/boto3/blob/develop/README.rst#quick-start) для настройки зависимостей:

           ```python
           pip install boto3
           ```

        3. [Настройте AWS CLI](/logs/tools/aws-cli.mdx).

        4. Настройте клиент с конфигурациями, которые вы задали для [AWS CLI](/logs/tools/aws-cli.mdx#configure-aws-cli):

           ```python
           import boto3

           client = boto3.client('logs')
           ```
      </TabItem>

      <TabItem value="overriden-config">
        <TabItemLabel>
          Переопределенные конфигурации AWS CLI
        </TabItemLabel>

        1. Откройте CLI.

        2. Установите [boto3](https://github.com/boto/boto3/blob/develop/README.rst#quick-start) для настройки зависимостей:

           ```python
           pip install boto3
           ```

        3. [Настройте AWS CLI](/logs/tools/aws-cli.mdx).

        4. Создайте или откройте файл скрипта клиента.

        5. Добавьте скрипт в файл. Вы можете переопределить конфигурации [AWS CLI](/logs/tools/aws-cli.mdx#configure-aws-cli) в скрипте:

           ```python
           import boto3

           access_key = '<access_key>'
           secret_key = '<secret_key>'
           region = '<pool>'

           client = boto3.client(
               'logs', 
               aws_access_key_id=access_key,
               aws_secret_access_key=secret_key,
               region_name=region,
               endpoint_url=f'<log_endpoint>'
           )
           ```

           Укажите:

           * опционально: `access_key = '<access_key>'` — переопределение Access key. В параметре `<access_key>` укажите значение поля **Access key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
           * опционально: `secret_key = '<secret_key>'` — переопределение Secret key. В параметре `<secret_key>` укажите значение поля **Secret key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
           * опционально: `region = '<pool>'` — переопределение [пула](/infrastructure/locations.mdx#pool). В параметре `<pool>` укажите пул, например `ru-9`;
           * `<log_endpoint>` — URL для обращения к API сервиса Логи. Список URL можно посмотреть в подразделе [Логи](/api/urls/#logs) инструкции [Список URL](/api/urls/).
      </TabItem>

      <TabItem value="custom-config">
        <TabItemLabel>
          Кастомные конфигурации
        </TabItemLabel>

        1. Откройте CLI.

        2. Установите [boto3](https://github.com/boto/boto3/blob/develop/README.rst#quick-start) для настройки зависимостей:

           ```python
           pip install boto3
           ```

        3. Создайте или откройте файл скрипта клиента.

        4. Добавьте скрипт в файл:

           ```python
           import boto3

           access_key = '<access_key>'
           secret_key = '<secret_key>'
           region = '<pool>'

           client = boto3.client(
               'logs', 
               aws_access_key_id=access_key,
               aws_secret_access_key=secret_key,
               region_name=region,
               endpoint_url=f'<log_endpoint>'
           )
           ```

           Укажите:

           * `<access_key>` — значение поля **Access key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
           * `<secret_key>` — значение поля **Secret key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
           * `<pool>` — [пул](/infrastructure/locations.mdx#pool), например `ru-9`;
           * `<log_endpoint>` — URL для обращения к API сервиса Логи. Список URL можно посмотреть в подразделе [Логи](/api/urls/#logs) инструкции [Список URL](/api/urls/).
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="go" default>
    <TabItemLabel>
      Go
    </TabItemLabel>

    <Tabs>
      <TabItem value="aws-cli-config">
        <TabItemLabel>
          Конфигурации AWS CLI
        </TabItemLabel>

        1. Откройте CLI.

        2. Загрузите пакеты для создания клиента:

           ```go
           go get github.com/aws/aws-sdk-go-v2
           go get github.com/aws/aws-sdk-go-v2/config
           go get github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs
           go get github.com/aws/aws-sdk-go-v2/credentials
           ```

        3. [Настройте AWS CLI](/logs/tools/aws-cli.mdx).

        4. Создайте или откройте файл скрипта клиента.

        5. Добавьте скрипт в файл.
           Скрипт настроит клиент с конфигурациями, которые вы задали для [AWS CLI](/logs/tools/aws-cli.mdx#configure-aws-cli):

        ```go
        package main

        import (
          "context"
          "fmt"
          "log"

          "github.com/aws/aws-sdk-go-v2/config"
          "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs"
        )

        func main() {
          cfg, err := config.LoadDefaultConfig(context.TODO())
          if err != nil {
            log.Fatalf("Ошибка загрузки конфигурации: %v", err)
          }

          client := cloudwatchlogs.NewFromConfig(cfg)

          fmt.Println("CloudWatch Logs Сlient создан:", client)
        }
        ```
      </TabItem>

      <TabItem value="overriden-config">
        <TabItemLabel>
          Переопределенные конфигурации AWS CLI
        </TabItemLabel>

        1. Откройте CLI.

        2. Загрузите пакеты для создания клиента:

           ```go
           go get github.com/aws/aws-sdk-go-v2
           go get github.com/aws/aws-sdk-go-v2/config
           go get github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs
           go get github.com/aws/aws-sdk-go-v2/credentials
           ```

        3. [Настройте AWS CLI](/logs/tools/aws-cli.mdx).

        4. Создайте или откройте файл скрипта клиента.

        5. Добавьте скрипт в файл. Вы можете переопределить конфигурации [AWS CLI](/logs/tools/aws-cli.mdx#configure-aws-cli) в скрипте:

        ```go
        package main

        import (
          "context"
          "fmt"
          "log"

          "github.com/aws/aws-sdk-go-v2/aws"
          "github.com/aws/aws-sdk-go-v2/config"
          "github.com/aws/aws-sdk-go-v2/credentials"
          "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs"
        )

        func main() {
          accessKey := "<access_key>"
          secretKey := "<secret_key>"
          region := "<pool>"
          endpoint := "<log_endpoint>"

          customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
            if service == cloudwatchlogs.ServiceID {
              return aws.Endpoint{
                URL:           endpoint,
                SigningRegion: region,
              }, nil
            }
            return aws.Endpoint{}, fmt.Errorf("Неизвестный сервис: %s", service)
          })

          cfg, err := config.LoadDefaultConfig(context.TODO(),
            config.WithRegion(region),
            config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKey, secretKey, "")),
            config.WithEndpointResolver(customResolver),
          )
          if err != nil {
            log.Fatalf("Ошибка загрузки конфигурации: %v", err)
          }

          client := cloudwatchlogs.NewFromConfig(cfg)

          fmt.Println("CloudWatch Logs Client создан:", client)
        }
        ```

        Укажите:

        * опционально: `accessKey := "<access_key>"` — переопределение Access key. В параметре `<access_key>` укажите значение поля **Access key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
        * опционально: `secretKey := "<secret_key>"` — переопределение Secret key. В параметре `<secret_key>` укажите значение поля **Secret key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
        * опционально: `region := "<pool>"` — переопределение [пула](/infrastructure/locations.mdx#pool). В параметре `<pool>` укажите пул, например `ru-9`;
        * `<log_endpoint>` — URL для обращения к API сервиса Логи. Список URL можно посмотреть в подразделе [Логи](/api/urls/#logs) инструкции [Список URL](/api/urls/).
      </TabItem>

      <TabItem value="custom-config">
        <TabItemLabel>
          Кастомные конфигурации
        </TabItemLabel>

        1. Откройте CLI.

        2. Загрузите пакеты для создания клиента:

           ```go
           go get github.com/aws/aws-sdk-go-v2
           go get github.com/aws/aws-sdk-go-v2/config
           go get github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs
           go get github.com/aws/aws-sdk-go-v2/credentials
           ```

        3. Создайте или откройте файл скрипта клиента.

        4. Добавьте скрипт в файл:

        ```go
        package main

        import (
          "context"
          "fmt"
          "log"

          "github.com/aws/aws-sdk-go-v2/aws"
          "github.com/aws/aws-sdk-go-v2/config"
          "github.com/aws/aws-sdk-go-v2/credentials"
          "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs"
        )

        func main() {
          accessKey := "<access_key>"
          secretKey := "<secret_key>"
          region := "<pool>"
          endpoint := "<log_endpoint>"

          customResolver := aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
            if service == cloudwatchlogs.ServiceID {
              return aws.Endpoint{
                URL:           endpoint,
                SigningRegion: region,
              }, nil
            }
            return aws.Endpoint{}, fmt.Errorf("Неизвестный сервис: %s", service)
          })

          cfg, err := config.LoadDefaultConfig(context.TODO(),
            config.WithRegion(region),
            config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKey, secretKey, "")),
            config.WithEndpointResolver(customResolver),
          )
          if err != nil {
            log.Fatalf("Ошибка загрузки конфигурации: %v", err)
          }

          client := cloudwatchlogs.NewFromConfig(cfg)

          fmt.Println("CloudWatch Logs Client создан:", client)
        }
        ```

        Укажите:

        * `<access_key>` — значение поля **Access key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
        * `<secret_key>` — значение поля **Secret key** из S3-ключа, который вы [выдали пользователю](/logs/tools/aws-cli.mdx#issue-s3-key);
        * `<pool>` — [пул](/infrastructure/locations.mdx#pool) для генерации [URL к API](/api/urls/) сервиса Логов;
        * `<log_endpoint>` — URL для обращения к API сервиса Логи. Список URL можно посмотреть в подразделе [Логи](/api/urls/#logs) инструкции [Список URL](/api/urls/).
      </TabItem>
    </Tabs>
  </TabItem>
</Tabs>

<Formbricks />
