Изменить API-шлюз
После создания API-шлюза вы можете изменить любые его параметры и спецификацию OpenAPI
-
В консоли управления
перейдите в каталог, в котором необходимо изменить API-шлюз. -
В списке сервисов выберите API Gateway.
-
В строке с API-шлюзом нажмите кнопку
и выберите Редактировать. -
Отредактируйте параметры API-шлюза или спецификацию OpenAPI при необходимости.
Чтобы добавить расширение x-yc-apigateway-integration в спецификацию, вы можете воспользоваться конструктором спецификаций.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить API-шлюз:
-
При необходимости внесите изменения в файл спецификации OpenAPI или подготовьте новый файл.
-
Посмотрите описание команды CLI для изменения API-шлюза:
yc serverless api-gateway update --help
-
Укажите в команде изменения идентификатор или имя API-шлюза, а также параметры, которые необходимо изменить (в примере приведены не все доступные параметры):
yc serverless api-gateway update \ --id <идентификатор_API-шлюза> \ --new-name <новое_имя_API-шлюза> \ --execution-timeout <таймаут_обработки_запроса> \ --spec=<путь_к_новому_файлу_спецификации>
Где:
-
--id
— идентификатор API-шлюза, который требуется изменить. -
--new-name
— новое имя API-шлюза. Необязательный параметр. Требования к имени:- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
--execution-timeout
— таймаут обработки запроса. Значение задается в секундах и не должно превышать установленный лимит. Необязательный параметр. Значение по умолчанию –300
сек. -
--spec
— путь к файлу с обновленной спецификацией API-шлюза.
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы изменить имя, описание или спецификацию API-шлюза:
-
Откройте файл конфигурации Terraform и измените параметры
name
,description
,execution_timeout
илиspec
соответственно.Пример структуры конфигурационного файла:
... resource "yandex_api_gateway" "test-api-gateway" { name = "some_name" description = "any description" 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 again, {user}!\n" EOT } ...
Более подробную информацию о параметрах ресурса
yandex_api_gateway
в Terraform см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение API-шлюза можно в консоли управления
или с помощью команды CLI:yc serverless api-gateway get <имя_API-шлюза>
Чтобы изменить имя, описание или спецификацию API-шлюза, воспользуйтесь методом REST API update для ресурса ApiGateway или вызовом gRPC API ApiGatewayService/Update.
Изменить имя, описание или спецификацию API-шлюза можно с помощью плагина Yandex Cloud Toolkit