Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex API Gateway
  • Начало работы
    • Все инструкции
    • Создание API-шлюза
    • Просмотр операций с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Создание API-шлюза

Создание API-шлюза

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.

Перед началом работы подготовьте файл спецификации API по стандарту OpenAPI 3.0.

Пример файла спецификации hello-world.yaml
openapi: "3.0.0"
info:
  version: 1.0.0
  title: Test API
paths:
  /hello:
    get:
      summary: Say hello
      operationId: hello
      parameters:
        - name: user
          in: query
          description: User name to appear in greetings.
          required: false
          schema:
            type: string
            default: 'world'
      responses:
        '200':
          description: Greeting.
          content:
            'text/plain':
                schema:
                  type: "string"
      x-yc-apigateway-integration:
        type: dummy
        http_code: 200
        http_headers:
          'Content-Type': "text/plain"
        content:
          'text/plain': "Hello, {user}!\n"
Консоль управления
CLI
Terraform
API
Yandex Cloud Toolkit
  1. В консоли управления перейдите в каталог, в котором необходимо создать API-шлюз.

  2. В списке сервисов выберите API Gateway.

  3. Нажмите кнопку Создать API-шлюз.

  4. В поле Имя введите название API-шлюза.

  5. (Опционально) В поле Описание введите описание API-шлюза.

  6. В поле Таймаут обработки запроса задайте таймаут обработки запроса. Значение не должно превышать установленный лимит.

  7. В блок Спецификация добавьте текст спецификаций OpenAPI.

    Чтобы добавить расширение x-yc-apigateway-integration в спецификацию, вы можете воспользоваться конструктором спецификаций.

  8. При необходимости задайте дополнительные настройки API-шлюза.

  9. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать API-шлюз:

  1. Посмотрите описание команды CLI для создания API-шлюза:

    yc serverless api-gateway create --help
    
  2. Укажите параметры API-шлюза в команде создания (в примере приведены не все доступные параметры):

    yc serverless api-gateway create \
      --name <имя_API-шлюза> \
      --execution-timeout <таймаут_обработки_запроса> \
      --spec=<путь_к_файлу_спецификации>
    

    Где:

    • --name — имя API-шлюза:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • --execution-timeout — таймаут обработки запроса. Значение задается в секундах и не должно превышать установленный лимит. Необязательный параметр. Значение по умолчанию – 300 сек.

    • --spec — путь к созданному ранее файлу со спецификацией.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать API-шлюз:

  1. Опишите в конфигурационном файле параметры ресурса yandex_api_gateway:

    • name — имя API-шлюза. Формат имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • description — описание API-шлюза.

    • labels — метки для API-шлюза. Укажите пару ключ-значение.

    • execution_timeout — таймаут обработки запроса. Значение задается в секундах и не должно превышать установленный лимит. Необязательный параметр. Значение по умолчанию – 300 сек.

    • spec — спецификация API-шлюза.

    Пример структуры конфигурационного файла:

    resource "yandex_api_gateway" "test-api-gateway" {
      name        = "<имя_API-шлюза>"
      description = "<описание_API-шлюза>"
      labels      = {
        label       = "label"
        empty-label = ""
      }
      execution_timeout = "<таймаут_обработки_запроса>"
      spec              = <<-EOT
        openapi: "3.0.0"
        info:
          version: 1.0.0
          title: Test API
        paths:
          /hello:
            get:
              summary: Say hello
              operationId: hello
              parameters:
                - name: user
                  in: query
                  description: User name to appear in greetings
                  required: false
                  schema:
                    type: string
                    default: 'world'
              responses:
                '200':
                  description: Greeting
                  content:
                    'text/plain':
                      schema:
                        type: "string"
              x-yc-apigateway-integration:
                type: dummy
                http_code: 200
                http_headers:
                  'Content-Type': "text/plain"
                content:
                  'text/plain': "Hello, {user}!\n"
      EOT
    }
    

    Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

    2. Выполните проверку с помощью команды:

      terraform plan
      

    Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:

      terraform apply
      
    2. Подтвердите создание ресурсов: введите в терминал слово yes и нажмите Enter.

      После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команд CLI:

      yc serverless api-gateway get <имя_API-шлюза>
      

Чтобы создать API-шлюз, воспользуйтесь методом REST API create для ресурса ApiGateway или вызовом gRPC API ApiGatewayService/Create.

Создать API-шлюз можно с помощью плагина Yandex Cloud Toolkit для семейства IDE на платформе IntelliJ от JetBrains.

Была ли статья полезна?

Предыдущая
Все инструкции
Следующая
Изменить API-шлюз и его спецификацию
Проект Яндекса
© 2025 ООО «Яндекс.Облако»