Настроить параметры сервиса метаданных функции
Настроить параметры сервиса метаданных вы можете при создании версии функции.
Доступны следующие опции:
-
awsV1HttpEndpoint
— обеспечивает доступ к метаданным с использованием формата AWS (IMDSv1). Возможные значения:enabled
,disabled
. Если для опции задано значениеdisabled
, то запрос к метаданным завершится ошибкой404 Not Found
. Значение по умолчанию:enabled
.Примечание
По умолчанию параметр
awsV1HttpEndpoint
включен (enabled
), но мы советуем выключить его. Формат IMDSv1 имеет ряд недостатков со стороны безопасности. Наиболее критичный — повышенный риск реализации некоторых атак, например SSRF (подробнее в официальном блоге AWS ). -
gceHttpEndpoint
— обеспечивает доступ к метаданным с использованием формата Google Compute Engine. Возможные значения:enabled
,disabled
. Если для опции задано значениеdisabled
, то запрос к метаданным завершится ошибкой404 Not Found
. Значение по умолчанию:enabled
.
- В консоли управления
перейдите в каталог, в котором находится функция. - Выберите сервис Cloud Functions.
- Выберите функцию.
- Перейдите на вкладку Редактор.
- Разверните блок Дополнительные настройки.
- В блоке Параметры сервиса метаданных настройте параметры сервиса метаданных функции —
Доступ к метаданным с использованием формата Google Compute Engine
иДоступ к метаданным с использованием формата AWS (IMDSv1)
. - Нажмите кнопку Сохранить изменения.
Чтобы настроить параметры сервиса метаданных функции, выполните команду:
yc serverless function version create \
--function-id=<идентификатор_функции> \
--runtime <среда_выполнения> \
--entrypoint <точка_входа> \
--source-version-id <идентификатор_версии> \
--metadata-options <опция>=<enable_или_disabled>
Где:
--function-id
— идентификатор функции, новую версию которой вы хотите создать. Чтобы узнать идентификатор, получите список функций в каталоге.--runtime
— среда выполнения.--entrypoint
— точка входа, указывается в формате<имя_файла_с_функцией>.<имя_обработчика>
.--source-version-id
— идентификатор версии функции, код которой вы хотите скопировать. Чтобы узнать идентификатор, получите список версий функции.--metadata-options
— настройки параметров сервиса метаданных, напримерaws-v1-http-endpoint=disabled
.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы настроить параметры сервиса метаданных функции:
-
Откройте файл конфигурации Terraform и добавьте к описанию функции блок
metadata_options
:resource "yandex_function" "metadata_function" { name = "<имя_функции>" user_hash = "<хеш_функции>" runtime = "<среда_выполнения>" entrypoint = "<точка_входа>" memory = "<объем_RAM>" execution_timeout = "<максимальное_время_выполнения>" service_account_id = "<идентификатор_сервисного_аккаунта>" content { zip_filename = "<путь_к_ZIP-архиву>" } metadata_options { metadata_options.0.gce_http_endpoint = "0_или_1_или_2" metadata_options.0.aws_v1_http_endpoint = "0_или_1_или_2" } }
Где:
metadata_options
— настройки параметров сервиса метаданных, напримерmetadata_options.0.gce_http_endpoint = "1"
. Укажите:0
— если хотите оставить значение по молчанию.1
— чтобы включить параметр.2
— чтобы выключить параметр.
Более подробную информацию о параметрах ресурса
yandex_function
см. в документации провайдера . -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Проверить, что функция и ее настройки изменились, можно в консоли управления
yc serverless function version get <идентификатор_версии_функции>
Чтобы настроить параметры сервиса метаданных функции, воспользуйтесь методом REST API createVersion для ресурса Function или вызовом gRPC API FunctionService/CreateVersion.