Updating an API gateway
After you create an API gateway, you can change any of its parameters and the OpenAPI specification
-
In the management console
, go to the folder where you want to update an API gateway. -
From the list of services, select API Gateway.
-
In the API gateway row, click
and select Edit. -
Edit the API gateway parameters or OpenAPI specification, if needed.
To add the x-yc-apigateway-integration extension to a specification, you can use the specification constructor.
-
Click Save.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder specified when creating the CLI profile is used by default. To change the default folder, use the yc config set folder-id <folder_ID>
command. You can also specify a different folder for any command using the --folder-name
or --folder-id
parameter.
To update an API gateway:
-
Edit the OpenAPI specification file or create a new one, if required.
-
View the description of the CLI command for updating an API gateway:
yc serverless api-gateway update --help
-
In the update command, specify the API gateway ID or name and the parameters to update (not all the supported parameters are listed below):
yc serverless api-gateway update \ --id <API_gateway_ID> \ --new-name <new_API_gateway_name> \ --execution-timeout <request_execution_timeout> \ --spec=<path_to_new_specification_file>
Where:
-
--id
: ID of the API gateway you need to update. -
--name
: New name for the API gateway. This is an optional parameter. The naming requirements are as follows:- It must be from 2 to 63 characters long.
- It may contain lowercase Latin letters, numbers, and hyphens.
- It must start with a letter and cannot end with a hyphen.
-
--execution-timeout
: Request execution timeout. The value is specified in seconds and must not exceed the set limit. This is an optional parameter. The default value is300
seconds. -
--spec
: Path to the file with the updated API gateway specification.
-
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the documentation on the Terraform
If you do not have Terraform yet, install it and configure its Yandex Cloud provider.
To change the name, description, or specification of the API gateway:
-
Open the Terraform configuration file and edit the
name
,description
,execution_timeout
, orspec
properties, respectively.Here is an example of the configuration file structure:
... resource "yandex_api_gateway" "test-api-gateway" { name = "some_name" description = "any description" labels = { label = "label" empty-label = "" } execution_timeout = "<request_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 } ...
For more information about
yandex_api_gateway
properties in Terraform, see this Terraform article . -
Check the configuration using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
The terminal will display a list of resources with their properties. No changes will be made at this step. If the configuration contains any errors, Terraform will point them out.
-
Apply the changes:
terraform apply
-
Type
yes
and press Enter to confirm the changes.You can check the API gateway update using the management console
or this CLI command:yc serverless api-gateway get <API_gateway_name>
To change the API gateway name, description, or specification, use the update REST API method for the ApiGateway resource or the ApiGatewayService/Update gRPC API call.
To change a name, description, or specification for an API gateway, use the Yandex Cloud Toolkit plugin