diff --git a/en/_includes/security/security-bulletins/cve-2023-23583.md b/en/_includes/security/security-bulletins/cve-2023-23583.md new file mode 100644 index 00000000000..306fa41c773 --- /dev/null +++ b/en/_includes/security/security-bulletins/cve-2023-23583.md @@ -0,0 +1,45 @@ +## 28/12/2023: CVE-2023-23583 Reptar vulnerability in Ice Lake (IPU Out-of-Band) {#CVE-2023-23583} + +CVE ID: CVE-2023-23583 + +CVE link: + + + +### Summary {#brief-description} + +The Reptar vulnerability affects Intel-based server systems, and the manufacturer has released the necessary patches. The {{ yandex-cloud }} infrastructure has been updated. + +The vulnerability potentially led to privilege escalation. + +### Technologies affected {#technologies-affected} + +Intel (microcode) + +### Vulnerable products and versions {#vulnerable-products-and-versions} + + + + + +### Base vector and severity level of the vulnerability according to CVSS v.3.0 {#severity-level} + +7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H + +### Recommendations for vulnerability detection and additional materials {#recommendations-for-vulnerability-detection} + +Procedure for checking the vulnerability and supporting materials (PoC code, video demonstration or others): + + + +Update or patch version: + + + +### Safe version of vulnerable product or patch {#safe-version} + +The vulnerability has been fixed as of version 1.9.0. + +### Are cloud services affected? {#impact-on-yandex-cloud-services} + +No. diff --git a/en/_includes/security/security-bulletins/cve-2023-44487.md b/en/_includes/security/security-bulletins/cve-2023-44487.md new file mode 100644 index 00000000000..e9af242f7fc --- /dev/null +++ b/en/_includes/security/security-bulletins/cve-2023-44487.md @@ -0,0 +1,70 @@ +## 28/12/2023: CVE-2023-44487 HTTP/2 Rapid Reset DDoS Attack {#CVE-2023-44487} + +CVE ID: CVE-2023-44487 + +CVE link: + + + +### Original report {#original-report} + + + +### Summary {#brief-description} + +{{ yandex-cloud }} has implemented all necessary measures against CVE-2023-44487 known as _HTTP/2 Rapid Reset_. + +This vulnerability is related to the HTTP/2 protocol. Under certain conditions, can be exploited to execute a denial-of-service attack on webservers such as NGINX, envoy and other products that implement the server-side portion of the HTTP/2 specification. To protect your systems from this attack, we’re recommending an immediate update to your web server. + +### Technologies affected {#technologies-affected} + +NGINX, HTTP/2 + +### Vulnerable products and versions {#vulnerable-products-and-versions} + +* NGINX Open Source 1.x: 1.25.2 - 1.9.5 +* org.apache.tomcat.embed:tomcat-embed-core package, versions [,8.5.94], [9.0.0,9.0.81], [10.0.0,10.1.14], [11.0.0-M3,11.0.0-M12] +* NGINX Ingress Controller + * 3.x 3.0.0 - 3.3.0 3.3.1 + * 2.x 2.0.0 - 2.4.2 + * 1.x 1.12.2 - 1.12.5 +* Envoy 1.27.1, 1.26.5, 1.25.10 or 1.24.10 +* NGINX Plus R2x R25 - R30 +* BIG-IP (all modules) 17.x 17.1.0 +* BIG-IP Next (all modules) 20.x 20.0.1 +* BIG-IP Next SPK 1.x 1.5.0 - 1.8.2 +* + +### Base vector and severity level of the vulnerability according to CVSS v.3.0 {#severity-level} + +CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H + +### Recommendations for vulnerability detection and additional materials {#recommendations-for-vulnerability-detection} + +Procedure for checking the vulnerability and supporting materials (PoC code, video demonstration or others): + + + + + + + +Update or patch version: + +* Upgrade org.apache.tomcat.embed:tomcat-embed-core to version 8.5.94, 9.0.81, 10.1.14, 11.0.0-M12 or higher. + +* Upgrade envoyproxy/envoy to version 1.24.11, 1.25.10, 1.26.5, 1.27.1 or higher. + +* Use http2_max_concurrent_streams directive NGINX + + + +* Use [{{ sws-full-name }}](https://cloud.yandex.ru/services/smartwebsecurity) + +### Safe version of vulnerable product or patch {#safe-version} + +Not yet. + +### Are cloud services affected? {#impact-on-yandex-cloud-services} + +No. diff --git a/en/_includes/security/security-bulletins/cve-2023-46850.md b/en/_includes/security/security-bulletins/cve-2023-46850.md new file mode 100644 index 00000000000..12694b669f6 --- /dev/null +++ b/en/_includes/security/security-bulletins/cve-2023-46850.md @@ -0,0 +1,42 @@ +## 28/12/2023: CVE-2023-46850 OpenVPN v.2.6.7 Security patch {#CVE-2023-46850} + +CVE IDs: CVE-2023-46849, CVE-2023-46850 + +CVE link: + + + + +### Original report {#original-report} + + + +### Summary {#brief-description} + +CVE-2023-46850: it can lead to sending the contents of the process memory to the other side of the connection, as well as potentially to remote code execution. + +CVE-2023-46849: this may lead to the remote initiation of an emergency shutdown of the access server. + +### Technologies affected {#technologies-affected} + +OpenVPN + +### Vulnerable products and versions {#vulnerable-products-and-versions} + +From v2.6.0 before v2.6.6 + +### Base vector and severity level of the vulnerability according to CVSS v.3.0 {#severity-level} + +Network. + +### Procedure for checking the vulnerability and supporting materials (PoC code, video demonstration or others) {#poc} + +No PoC yet. + +### Safe version of vulnerable product or patch {#safe-version} + +The vulnerability has been fixed as of version 2.6.7. + +### Are cloud services affected? {#impact-on-yandex-cloud-services} + +Yes. diff --git a/en/_tutorials/datasphere/s3-to-datasphere.md b/en/_tutorials/datasphere/s3-to-datasphere.md index 20515842113..12e02109cb8 100644 --- a/en/_tutorials/datasphere/s3-to-datasphere.md +++ b/en/_tutorials/datasphere/s3-to-datasphere.md @@ -164,6 +164,7 @@ To access {{ objstorage-name }} from {{ ml-platform-name }}, you need a static k For more information about the `yandex_storage_bucket` resource, see the [{{ TF }} provider documentation]({{ tf-provider-link }}/storage_bucket). 1. Create resources: + {% include [terraform-validate-plan-apply](../../_tutorials/terraform-validate-plan-apply.md) %} {{ TF }} will create all the required resources. You can check the new resources and their configuration using the [management console]({{ link-console-main }}). diff --git a/en/security/security-bulletins/index.md b/en/security/security-bulletins/index.md index 4bb4668433c..8763a577cee 100644 --- a/en/security/security-bulletins/index.md +++ b/en/security/security-bulletins/index.md @@ -2,6 +2,12 @@ This page contains security recommendations from {{ yandex-cloud }} experts. +{% include [28.12.2023 — CVE-2023-44487 HTTP/2 Rapid Reset Attack](../../_includes/security/security-bulletins/cve-2023-44487.md) %} + +{% include [28.12.2023 — CVE-2023-23583 Reptar in Ice Lake IPU Out-of-Band](../../_includes/security/security-bulletins/cve-2023-23583.md) %} + +{% include [28.12.2023 — CVE-2023-46850 OpenVPN v.2.6.7 Security patch](../../_includes/security/security-bulletins/cve-2023-46850.md) %} + {% include [3.11.2023 — CVE-2023-5043 Nginx ingress controller fo Kubernetes vulnerabilities](../../_includes/security/security-bulletins/cve-2023-5043.md) %} {% include [26.10.2023 — CVE-2023-3484 GitLab Security Release: 16.1.2, 16.0.7, and 15.11.11](../../_includes/security/security-bulletins/cve-2023-3484-gitlab-security-release.md) %} diff --git a/ru/_includes/api-gateway/terraform-create.md b/ru/_includes/api-gateway/terraform-create.md index 5a1c216c6a6..d443d34c200 100644 --- a/ru/_includes/api-gateway/terraform-create.md +++ b/ru/_includes/api-gateway/terraform-create.md @@ -14,8 +14,8 @@ ```hcl resource "yandex_api_gateway" "test-api-gateway" { - name = "<имя API-шлюза>" - description = "<описание API-шлюза>" + name = "<имя_API-шлюза>" + description = "<описание_API-шлюза>" labels = { label = "label" empty-label = "" @@ -82,5 +82,5 @@ После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления]({{ link-console-main }}) или с помощью команд [CLI](../../cli/quickstart.md): ``` - yc serverless api-gateway get <имя API-шлюза> + yc serverless api-gateway get <имя_API-шлюза> ``` \ No newline at end of file diff --git a/ru/_includes/datasphere/control-compute-resources-steps.md b/ru/_includes/datasphere/control-compute-resources-steps.md index 845a154a209..77856b6adc5 100644 --- a/ru/_includes/datasphere/control-compute-resources-steps.md +++ b/ru/_includes/datasphere/control-compute-resources-steps.md @@ -11,4 +11,4 @@ Увеличьте вычислительные ресурсы для ячейки через интерфейс: 1. Нажмите кнопку с названием конфигурации в меню на вкладке ноутбука. 1. Выберите необходимую конфигурацию. -1. Дождитесь, когда на панели ноутбука появится статус **<Префикс конфигурации> instance is ready**. \ No newline at end of file +1. Дождитесь, когда на панели ноутбука появится статус **<префикс_конфигурации> instance is ready**. \ No newline at end of file diff --git a/ru/_includes/datasphere/dataproc-sessions.md b/ru/_includes/datasphere/dataproc-sessions.md index 07bcf1d5471..c4022751de1 100644 --- a/ru/_includes/datasphere/dataproc-sessions.md +++ b/ru/_includes/datasphere/dataproc-sessions.md @@ -1,8 +1,8 @@ В кластере {{ dataproc-name }} ваш код выполняется в [сессиях](https://livy.incubator.apache.org/docs/latest/rest-api.html#session). Сессия хранит промежуточное состояние до тех пор, пока вы не удалите ее или кластер. У каждого кластера есть сессия по умолчанию. Ее идентификатор равен идентификатору проекта. Для управления сессиями используйте следующие команды: -* `%create_livy_session --cluster <имя кластера> --id <идентификатор сессии>` — создание сессии; -* `%delete_livy_session --cluster <имя кластера> --id <идентификатор сессии>` — удаление сессии. +* `%create_livy_session --cluster <имя_кластера> --id <идентификатор_сессии>` — создание сессии; +* `%delete_livy_session --cluster <имя_кластера> --id <идентификатор_сессии>` — удаление сессии. Например, следующая команда создаст в кластере `my-new-cluster` сессию `ses1`, которая позволит каждому процессу использовать максимум 4 ядра CPU в кластере и 4 ГБ RAM (подробнее см. в [документации Spark](https://spark.apache.org/docs/latest/configuration.html)): diff --git a/ru/_includes/datasphere/install-dependencies-steps.md b/ru/_includes/datasphere/install-dependencies-steps.md index 52e536ed8ca..9f0b81326a0 100644 --- a/ru/_includes/datasphere/install-dependencies-steps.md +++ b/ru/_includes/datasphere/install-dependencies-steps.md @@ -3,7 +3,7 @@ 1. Напишите в ячейке ноутбука команду: ``` - %pip install <Имя_пакета> + %pip install <имя_пакета> ``` Например, установите пакет [seaborn](https://github.com/mwaskom/seaborn) для визуализации статистических данных: diff --git a/ru/_includes/iam/iam-token-usage-examples.md b/ru/_includes/iam/iam-token-usage-examples.md index 2629937cd5d..7a5737e113d 100644 --- a/ru/_includes/iam/iam-token-usage-examples.md +++ b/ru/_includes/iam/iam-token-usage-examples.md @@ -1,8 +1,8 @@ Запишите IAM-токен в переменную с помощью CLI и используйте токен в других запросах из командной строки. Пример запроса на получение списка облаков: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash export IAM_TOKEN=`yc iam create-token` @@ -10,7 +10,7 @@ https://resource-manager.{{ api-host }}/resource-manager/v1/clouds ``` -- PowerShell +- PowerShell {#powershell} ```powershell $IAM_TOKEN=yc iam create-token diff --git a/ru/_includes/kms/signature-verification-ecdsa.md b/ru/_includes/kms/signature-verification-ecdsa.md index 437609b9441..27c33e608a2 100644 --- a/ru/_includes/kms/signature-verification-ecdsa.md +++ b/ru/_includes/kms/signature-verification-ecdsa.md @@ -1,6 +1,6 @@ -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Проверьте электронную подпись с помощью утилиты [OpenSSL](https://www.openssl.org/): @@ -23,7 +23,7 @@ Если подпись корректна, утилита OpenSSL вернет статус `Verified OK`. -- Java +- Java {#java} ```java import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -91,7 +91,7 @@ Код выполняет проверку электронной подписи на эллиптических кривых (ECDSA). Если подпись корректна, код возвращает `true`, если нет — `false`. -- Go +- Go {#go} ```golang import ( @@ -165,7 +165,7 @@ Код выполняет проверку электронной подписи на эллиптических кривых (ECDSA). Если подпись корректна, код возвращает `true`, если нет — `false`. -- Python +- Python {#python} ```python import base64 diff --git a/ru/_includes/kms/signature-verification-rsa.md b/ru/_includes/kms/signature-verification-rsa.md index d2040e3a869..602e5cc7090 100644 --- a/ru/_includes/kms/signature-verification-rsa.md +++ b/ru/_includes/kms/signature-verification-rsa.md @@ -1,6 +1,6 @@ -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Проверьте электронную подпись с помощью утилиты [OpenSSL](https://www.openssl.org/): @@ -25,7 +25,7 @@ Если подпись корректна, утилита OpenSSL вернет статус `Verified OK`. -- Java +- Java {#java} ```java import org.bouncycastle.jce.provider.BouncyCastleProvider; @@ -95,7 +95,7 @@ Код выполняет проверку электронной подписи RSA. Если подпись корректна, код возвращает `true`, если нет — `false`. -- Go +- Go {#go} ```golang import ( @@ -164,7 +164,7 @@ Код выполняет проверку электронной подписи RSA. Если подпись корректна, код возвращает `true`, если нет — `false`. -- Python +- Python {#python} ```python import base64 diff --git a/ru/_includes/managed-kubernetes/create-k8s-res.md b/ru/_includes/managed-kubernetes/create-k8s-res.md index 85b6e98340e..26f2d040d0d 100644 --- a/ru/_includes/managed-kubernetes/create-k8s-res.md +++ b/ru/_includes/managed-kubernetes/create-k8s-res.md @@ -4,9 +4,9 @@ Создайте [кластер {{ managed-k8s-name }}](../../managed-kubernetes/concepts/index.md#kubernetes-cluster) и укажите ранее созданные [сервисные аккаунты](../../iam/concepts/users/service-accounts.md) во флагах `--service-account-id` и `--node-service-account-id`. -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду: @@ -21,7 +21,7 @@ --node-service-account-id $NODE_SA_ID ``` -- PowerShell +- PowerShell {#powershell} Выполните команду: @@ -48,9 +48,9 @@ * В столбце **{{ ui-key.yacloud.k8s.cluster.overview.label_health }}** должно быть указано `Healthy`. 1. Создайте [группу узлов {{ managed-k8s-name }}](../../managed-kubernetes/concepts/index.md#node-group): - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash yc managed-kubernetes node-group create \ @@ -66,7 +66,7 @@ --async ``` - - PowerShell + - PowerShell {#powershell} ```shell script > yc managed-kubernetes node-group create ` diff --git a/ru/_includes/managed-kubernetes/node-group-migration.md b/ru/_includes/managed-kubernetes/node-group-migration.md index f6a07041fe6..8742359f84c 100644 --- a/ru/_includes/managed-kubernetes/node-group-migration.md +++ b/ru/_includes/managed-kubernetes/node-group-migration.md @@ -17,7 +17,7 @@ * `--name` — название подсети. * `--zone` — зона доступности: `{{ region-id }}-a`, `{{ region-id }}-b` или `{{ region-id }}-d`. * `--network-id` — идентификатор сети, в которую входит новая подсеть. - * `--range` — список IPv4-адресов, откуда или куда будет поступать трафик. Например, `10.0.0.0/22` или `192.168.0.0/16`. Адреса должны быть уникальными внутри сети. Минимальный размер подсети - `/28`, а максимальный размер подсети - `/16`. Поддерживается только IPv4. + * `--range` — список IPv4-адресов, откуда или куда будет поступать трафик. Например, `10.0.0.0/22` или `192.168.0.0/16`. Адреса должны быть уникальными внутри сети. Минимальный размер подсети — `/28`, а максимальный размер подсети — `/16`. Поддерживается только IPv4. 1. Перенесите группу узлов: @@ -79,7 +79,7 @@ * `name` — название подсети. * `zone` — зона доступности, в которую вы переносите группу узлов: `{{ region-id }}-a`, `{{ region-id }}-b` или `{{ region-id }}-d`. * `network_id` — идентификатор сети, в которую входит новая подсеть. - * `v4_cidr_blocks` — список IPv4-адресов, откуда или куда будет поступать трафик. Например, `10.0.0.0/22` или `192.168.0.0/16`. Адреса должны быть уникальными внутри сети. Минимальный размер подсети - `/28`, а максимальный размер подсети - `/16`. Поддерживается только IPv4. + * `v4_cidr_blocks` — список IPv4-адресов, откуда или куда будет поступать трафик. Например, `10.0.0.0/22` или `192.168.0.0/16`. Адреса должны быть уникальными внутри сети. Минимальный размер подсети — `/28`, а максимальный размер подсети — `/16`. Поддерживается только IPv4. * `subnet_ids` — идентификатор новой подсети. 1. Проверьте корректность конфигурационного файла. diff --git a/ru/_includes/mdb/mes-conn-strings.md b/ru/_includes/mdb/mes-conn-strings.md index fab11475efb..a00ffcdd91b 100644 --- a/ru/_includes/mdb/mes-conn-strings.md +++ b/ru/_includes/mdb/mes-conn-strings.md @@ -1,6 +1,6 @@ -{% list tabs %} +{% list tabs group=programming_language %} -- Kibana +- Kibana {#kibana} **Если хосту с ролью _Data node_ назначен публичный IP-адрес:** @@ -81,13 +81,13 @@ {% include [kibana-api](mes-kibana-api.md) %} -- Bash +- Bash {#bash} **Пример команды для подключения с использованием SSL-соединения:** {% include [default-connstring](./mes/default-connstring.md) %} -- PowerShell +- PowerShell {#powershell} **Пример команды для подключения с использованием SSL-соединения:** @@ -100,7 +100,7 @@ В открывшемся окне введите пароль пользователя. -- Python +- Python {#python} **Перед подключением установите зависимости:** @@ -144,7 +144,7 @@ python3 connect.py ``` -- Go +- Go {#go} **Перед подключением установите зависимости:** diff --git a/ru/_includes/overview/network.md b/ru/_includes/overview/network.md index d66ecdf3e1a..663d5dfbe7d 100644 --- a/ru/_includes/overview/network.md +++ b/ru/_includes/overview/network.md @@ -117,7 +117,7 @@ CloudGate — группы сервисных ВМ в каждой [зоне д 1. Сейчас для организации сетевой связности в виртуальной сети {{ yandex-cloud }} можно использовать только протокол IPv4. Протокол IPv6 не поддерживается. 1. Виртуальная сеть в {{ yandex-cloud }} работает на третьем уровне модели OSI (L3), поэтому работа сетевых технологий второго уровня модели OSI (L2) сильно ограничена: 1. Ответы на ARP-запросы от VRouter (шлюза по умолчанию) всегда будут приходить от одного и того же фиксированного MAC-адреса. - 1. Для сетевого взаимодействия используется только `Unicast` транспорт, `Mulicast` транспорт не поддерживается. + 1. Для сетевого взаимодействия используется только `Unicast` транспорт, `Multicast` транспорт не поддерживается. 1. Сетевые протоколы, которые требуют использования одного виртуального IP-адреса (VIP) между ВМ, такие как, HSRP, VRRP, GLBP и подобные не поддерживаются. ## Дополнительные материалы {#refs} diff --git a/ru/_includes/security/security-bulletins/cve-2023-23583.md b/ru/_includes/security/security-bulletins/cve-2023-23583.md new file mode 100644 index 00000000000..800639776b2 --- /dev/null +++ b/ru/_includes/security/security-bulletins/cve-2023-23583.md @@ -0,0 +1,45 @@ +## 28/12/2023: Уязвимость Reptar в Ice Lake (IPU Out-of-Band) {#CVE-2023-23583} + +CVE ID: CVE-2023-23583 + +Ссылка на CVE: + + + +### Краткое описание {#brief-description} + +Уязвимость Reptar затрагивает серверные системы на базе Intel, производитель выпустил необходимые патчи. Инфраструктура {{ yandex-cloud }} была обновлена. + +Уязвимость потенциально приводила к эскалации привилегий. + +### Затронутые технологии {#technologies-affected} + +Intel (микрокод) + +### Уязвимые продукты и версии {#vulnerable-products-and-versions} + + + + + +### Базовый вектор атаки и уровень опасности уязвимости согласно CVSS v.3.0 {#severity-level} + +7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H + +### Рекомендации по обнаружению уязвимости и дополнительные материалы {#recommendations-for-vulnerability-detection} + +Процедура проверки уязвимости и дополнительные материалы (PoC-код, видеодемонстрация и т.д.): + + + +Версия обновления или патча: + + + +### Безопасная версия уязвимого продукта или патч {#safe-version} + +Уязвимость исправлена начиная с версии 1.9.0. + +### Затрагиваются ли облачные сервисы? {#impact-on-yandex-cloud-services} + +Нет diff --git a/ru/_includes/security/security-bulletins/cve-2023-44487.md b/ru/_includes/security/security-bulletins/cve-2023-44487.md new file mode 100644 index 00000000000..525ce4f11f7 --- /dev/null +++ b/ru/_includes/security/security-bulletins/cve-2023-44487.md @@ -0,0 +1,70 @@ +## 28/12/2023: CVE-2023-44487 DDoS-атака быстрого сброса HTTP/2 {#CVE-2023-44487} + +CVE ID: CVE-2023-44487 + +Ссылка на CVE: + + + +### Исходный отчет {#original-report} + + + +### Краткое описание {#brief-description} + +{{ yandex-cloud }} применил все необходимые меры для противодействия уязвимости CVE-2023-44487, известной под названием _Быстрый сброс HTTP/2_. + +Эта уязвимость связана с работой протокола HTTP/2. При определенных условиях этот протокол можно использовать для проведения атаки отказа в обслуживании на таких веб-серверах как NGINX, envoy, а также в других продуктах, реализующих серверную часть спецификации HTTP/2. Для защиты систем от этой атаки рекомендуем немедленно обновить свои веб-серверы. + +### Затронутые технологии {#technologies-affected} + +NGINX, HTTP/2 + +### Уязвимые продукты и версии {#vulnerable-products-and-versions} + +* NGINX Open Source 1.x: 1.25.2 - 1.9.5 +* Пакет org.apache.tomcat.embed:tomcat-embed-core, версии [8.5.94, [9.0.0,9.0.81], [10.0.0,10.1.14], [11.0.0-M3,11.0.0-M12] +* NGINX Ingress Controller + * 3.x 3.0.0 - 3.3.0 3.3.1 + * 2.x 2.0.0 - 2.4.2 + * 1.x 1.12.2 - 1.12.5 +* Envoy 1.27.1, 1.26.5, 1.25.10 или 1.24.10 +* NGINX Plus R2x R25 - R30 +* BIG-IP (все модули) 17.x 17.1.0 +* BIG-IP Next (все модули) 20.x 20.0.1 +* BIG-IP Next SPK 1.x, версии с 1.5.0 по 1.8.2 +* + +### Базовый вектор атаки и уровень опасности уязвимости согласно CVSS v.3.0 {#severity-level} + +CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H + +### Рекомендации по обнаружению уязвимости и дополнительные материалы {#recommendations-for-vulnerability-detection} + +Процедура проверки уязвимости и дополнительные материалы (PoC-код, видеодемонстрация и т.д.): + + + + + + + +Версия обновления или патча: + +* Обновите org.apache.tomcat.embed:tomcat-embed-core до версии 8.5.94, 9.0.81, 10.1.14, 11.0.0-M12 или выше. + +* Обновите envoyproxy/envoy до версии 1.24.11, 1.25.10, 1.26.5, 1.27.1 или выше. + +* Используйте NGINX-директиву http2_max_concurrent_streams + + + +* Воспользуйтесь сервисом [{{ sws-full-name }}](https://cloud.yandex.ru/services/smartwebsecurity) + +### Безопасная версия или патч для уязвимого продукта {#safe-version} + +Находится в разработке. + +### Затрагиваются ли облачные сервисы? {#impact-on-yandex-cloud-services} + +Нет diff --git a/ru/_includes/security/security-bulletins/cve-2023-46850.md b/ru/_includes/security/security-bulletins/cve-2023-46850.md new file mode 100644 index 00000000000..5e3c496f331 --- /dev/null +++ b/ru/_includes/security/security-bulletins/cve-2023-46850.md @@ -0,0 +1,42 @@ +## 28/12/2023: CVE-2023-46850 Патч безопасности OpenVPN вер. 2.6.7 {#CVE-2023-46850} + +CVE ID: CVE-2023-46849, CVE-2023-46850 + +Ссылка на CVE: + + + + +### Исходный отчет {#original-report} + + + +### Краткое описание {#brief-description} + +Уязвимость CVE-2023-46850 может привести к отправке содержимого памяти процесса на другую сторону соединения, а также, потенциально – к удаленному выполнению кода. + +Уязвимость CVE-2023-46849 может привести к удаленному инициированию аварийного выключения сервера доступа. + +### Затронутые технологии {#technologies-affected} + +OpenVPN + +### Уязвимые продукты и версии {#vulnerable-products-and-versions} + +Версии от v2.6.0 до v2.6.6 + +### Базовый вектор атаки и уровень опасности уязвимости согласно CVSS v.3.0 {#severity-level} + +Cеть. + +### Процедура проверки уязвимости и дополнительные материалы (PoC-код, видеодемонстрация и т.д.) {#poc} + +PoC-код в разработке. + +### Безопасная версия уязвимого продукта или патч {#safe-version} + +Уязвимость исправлена начиная с версии 2.6.7. + +### Затрагиваются ли облачные сервисы? {#impact-on-yandex-cloud-services} + +Да. diff --git a/ru/_includes/terraform-token-variables.md b/ru/_includes/terraform-token-variables.md index c4977607548..8549eff0a9f 100644 --- a/ru/_includes/terraform-token-variables.md +++ b/ru/_includes/terraform-token-variables.md @@ -1,6 +1,6 @@ -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash export YC_TOKEN=$(yc iam create-token) @@ -13,7 +13,7 @@ * `YC_CLOUD_ID` — идентификатор облака. * `YC_FOLDER_ID` — идентификатор каталога. -- PowerShell +- PowerShell {#powershell} ```powershell $Env:YC_TOKEN=$(yc iam create-token) diff --git a/ru/_includes/translate/translate-instruction.md b/ru/_includes/translate/translate-instruction.md index ee902642386..68ace191a3f 100644 --- a/ru/_includes/translate/translate-instruction.md +++ b/ru/_includes/translate/translate-instruction.md @@ -10,9 +10,9 @@ Чтобы перевести текст, передайте его с помощью метода [translate](../../translate/api-ref/Translation/translate): -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Будет выполнен перевод на русский язык двух строк с текстом: Hello и World. Язык исходного текста будет определен автоматически. @@ -54,7 +54,7 @@ } ``` -- Python +- Python {#python} В этом примере показано, как перевести на русский язык две строки с текстом: Hello и World. Язык исходного текста будет определен автоматически. @@ -131,7 +131,7 @@ {% endcut %} -- PHP +- PHP {#php} В этом примере показано, как перевести на русский язык две строки с текстом: Hello и World. Язык исходного текста будет определен автоматически. diff --git a/ru/_includes/vision/base64-encode-command-pdf.md b/ru/_includes/vision/base64-encode-command-pdf.md index 9dbf24a6b25..df8905ee78d 100644 --- a/ru/_includes/vision/base64-encode-command-pdf.md +++ b/ru/_includes/vision/base64-encode-command-pdf.md @@ -1,25 +1,25 @@ -{% list tabs %} +{% list tabs group=programming_language %} -- UNIX +- UNIX {#unix} ``` base64 -i input.pdf > output.txt ``` -- Windows +- Windows {#windows} ``` C:> Base64.exe -e input.pdf > output.txt ``` -- PowerShell +- PowerShell {#powershell} ``` [Convert]::ToBase64String([IO.File]::ReadAllBytes("./input.pdf")) > output.txt ``` -- Python +- Python {#python} ```python # Импортируйте библиотеку для кодирования в Base64 @@ -31,7 +31,7 @@ return base64.b64encode(file_content) ``` -- Node.js +- Node.js {#node} ```js // Считайте содержимое файла в память. @@ -42,7 +42,7 @@ var encoded = Buffer.from(file).toString('base64'); ``` -- Java +- Java {#java} ```java // Импортируйте библиотеку для кодирования в Base64. @@ -52,7 +52,7 @@ byte[] fileData = Base64.encodeBase64(yourFile.getBytes()); ``` -- Go +- Go {#go} ```go import ( diff --git a/ru/_includes/vision/base64-encode-command.md b/ru/_includes/vision/base64-encode-command.md index b24c61101d2..078f96db03a 100644 --- a/ru/_includes/vision/base64-encode-command.md +++ b/ru/_includes/vision/base64-encode-command.md @@ -1,25 +1,25 @@ -{% list tabs %} +{% list tabs group=programming_language %} -- UNIX +- UNIX {#unix} ``` base64 -i input.jpg > output.txt ``` -- Windows +- Windows {#windows} ``` C:> Base64.exe -e input.jpg > output.txt ``` -- PowerShell +- PowerShell {#powershell} ``` [Convert]::ToBase64String([IO.File]::ReadAllBytes("./input.jpg")) > output.txt ``` -- Python +- Python {#python} ```python # Импортируйте библиотеку для кодирования в Base64 @@ -31,7 +31,7 @@ return base64.b64encode(file_content) ``` -- Node.js +- Node.js {#node} ```js // Считайте содержимое файла в память. @@ -42,7 +42,7 @@ var encoded = Buffer.from(file).toString('base64'); ``` -- Java +- Java {#java} ```java // Импортируйте библиотеку для кодирования в Base64. @@ -52,7 +52,7 @@ byte[] fileData = Base64.encodeBase64(yourFile.getBytes()); ``` -- Go +- Go {#go} ```go import ( diff --git a/ru/_includes/vision/send-request.md b/ru/_includes/vision/send-request.md index 24519ca1469..0d63d093c50 100644 --- a/ru/_includes/vision/send-request.md +++ b/ru/_includes/vision/send-request.md @@ -1,8 +1,8 @@ Отправьте запрос с помощью метода [batchAnalyze](../../vision/vision/api-ref/Vision/batchAnalyze.md) и сохраните ответ в файл, например `output.json`: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash export IAM_TOKEN= @@ -13,7 +13,7 @@ https://vision.{{ api-host }}/vision/v1/batchAnalyze > output.json ``` -- CMD +- CMD {#cmd} ```cmd set IAM_TOKEN= @@ -24,7 +24,7 @@ https://vision.{{ api-host }}/vision/v1/batchAnalyze > output.json ``` -- PowerShell +- PowerShell {#powershell} ```powershell $Env:IAM_TOKEN="" diff --git a/ru/_includes/vision/text-detection-steps.md b/ru/_includes/vision/text-detection-steps.md index eb25a1c5be8..48d1909121b 100644 --- a/ru/_includes/vision/text-detection-steps.md +++ b/ru/_includes/vision/text-detection-steps.md @@ -79,9 +79,9 @@ 1. Чтобы получить все распознанные на изображении слова, найдите все строки со свойством `text`, например с помощью [grep](https://www.gnu.org/software/grep/): - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash grep -o "\"text\":\s\".*\"" output.json @@ -95,7 +95,7 @@ "text": "SLOW" ``` - - CMD + - CMD {#cmd} ```bash findstr text output.json @@ -109,7 +109,7 @@ "text": "SLOW" ``` - - PowerShell + - PowerShell {#powershell} ```powershell Select-String -Pattern '\"text\":\s\".*\"' -Path .\output.json diff --git a/ru/_includes/ydb/get-db-id.md b/ru/_includes/ydb/get-db-id.md new file mode 100644 index 00000000000..57bc58cf0d7 --- /dev/null +++ b/ru/_includes/ydb/get-db-id.md @@ -0,0 +1 @@ +Идентификатор БД можно получить со [списком БД](../../ydb/operations/manage-databases.md#list-db). \ No newline at end of file diff --git a/ru/_qa/monitoring/metrics-export.md b/ru/_qa/monitoring/metrics-export.md index 7911a5e85f0..3bcbf0e9ccd 100644 --- a/ru/_qa/monitoring/metrics-export.md +++ b/ru/_qa/monitoring/metrics-export.md @@ -18,29 +18,29 @@ Воспользуйтесь [клиентской библиотекой](https://prometheus.io/docs/instrumenting/clientlibs/) для языка программирования, на котором написано ваше приложение, и передавайте метрики в {{ monitoring-name }} в формате {{ prometheus-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- Go +- Go {#go} [Клиентская библиотека Prometheus для Go](https://github.com/prometheus/client_golang). -- Python +- Python {#python} [Клиентская библиотека Prometheus для Python](https://github.com/prometheus/client_python). -- PHP +- PHP {#php} [Клиентская библиотека Prometheus для PHP](https://github.com/promphp/prometheus_client_php). -- Java +- Java {#java} [Клиентская библиотека Prometheus для Java](https://github.com/prometheus/client_java). -- Node.js +- Node.js {#node} [Клиентская библиотека Prometheus для Node.js](https://github.com/siimon/prom-client). -- C++ +- C++ {#cpp} [Клиентская библиотека Prometheus для C++](https://github.com/jupp0r/prometheus-cpp). diff --git a/ru/_tutorials/api-gateway/jwt-authorizer-firebase.md b/ru/_tutorials/api-gateway/jwt-authorizer-firebase.md index 8b47509f7ee..8c4bfd5dca4 100644 --- a/ru/_tutorials/api-gateway/jwt-authorizer-firebase.md +++ b/ru/_tutorials/api-gateway/jwt-authorizer-firebase.md @@ -176,8 +176,8 @@ Firebase: Где: - * `name` — имя API-шлюза. - * `spec` — файл со спецификацией. + * `--name` — имя API-шлюза. + * `--spec` — файл со спецификацией. Результат: diff --git a/ru/_tutorials/datalens/data-from-metrica-yc-visualization.md b/ru/_tutorials/datalens/data-from-metrica-yc-visualization.md index ce85b8ef92f..59716ed7a21 100644 --- a/ru/_tutorials/datalens/data-from-metrica-yc-visualization.md +++ b/ru/_tutorials/datalens/data-from-metrica-yc-visualization.md @@ -124,7 +124,7 @@ 1. Нажмите кнопку **Создать приложение**. 1. В открывшемся окне появится описание нашего приложения. Сохраните ClientID вашего приложения. -1. Перейдите по ссылке `https://oauth.yandex.ru/authorize?response_type=token&client_id=`. В качестве `` вставьте ClientID вашего приложения. +1. Перейдите по ссылке `https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор_приложения>`. В качестве `<идентификатор_приложения>` вставьте ClientID вашего приложения. 1. Нажмите кнопку **Войти как**. 1. Сохраните полученный токен доступа. diff --git a/ru/_tutorials/dataplatform/data-transfer-mkf-mes.md b/ru/_tutorials/dataplatform/data-transfer-mkf-mes.md index 3be8ca247f3..02a6164e2e7 100644 --- a/ru/_tutorials/dataplatform/data-transfer-mkf-mes.md +++ b/ru/_tutorials/dataplatform/data-transfer-mkf-mes.md @@ -295,9 +295,9 @@ 1. Проверьте, что индекс `sensors` кластера {{ mes-name }} содержит отправленные данные: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -309,7 +309,7 @@ --request GET 'https://c-<идентификатор_кластера_{{ ES }}>.rw.{{ dns-zone }}:{{ port-mes }}/sensors/_search?pretty' ``` - - Kibana + - Kibana {#kibana} 1. [Подключитесь](../../managed-elasticsearch/operations/cluster-connect.md#connection-string) к кластеру-приемнику с помощью Kibana. 1. Откройте панель управления, нажав на значок ![os-dashboards-sandwich](../../_assets/console-icons/bars.svg). diff --git a/ru/_tutorials/dataplatform/data-transfer-mkf-mos.md b/ru/_tutorials/dataplatform/data-transfer-mkf-mos.md index ac42a13f9d0..b755bc69b90 100644 --- a/ru/_tutorials/dataplatform/data-transfer-mkf-mos.md +++ b/ru/_tutorials/dataplatform/data-transfer-mkf-mos.md @@ -296,9 +296,9 @@ 1. Проверьте, что индекс `sensors` кластера {{ mos-name }} содержит отправленные данные: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -310,7 +310,7 @@ --request GET 'https://<идентификатор_хоста_{{ OS }}_с_ролью_DATA>.rw.{{ dns-zone }}:{{ port-mos }}/sensors/_search?pretty' ``` - - {{ OS }} Dashboards + - {{ OS }} Dashboards {#opensearch} 1. [Подключитесь](../../managed-opensearch/operations/connect.md#dashboards) к кластеру-приемнику с помощью {{ OS }} Dashboards. 1. Выберите общий тенант `Global`. diff --git a/ru/_tutorials/dataplatform/es-mos-migration.md b/ru/_tutorials/dataplatform/es-mos-migration.md index 8b5691a278c..094ea6025ec 100644 --- a/ru/_tutorials/dataplatform/es-mos-migration.md +++ b/ru/_tutorials/dataplatform/es-mos-migration.md @@ -240,9 +240,9 @@ 1. Убедитесь, что все нужные индексы перенесены в кластер-приемник {{ mos-name }}, а количество документов в них такое же, как и в кластере-источнике: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -255,7 +255,7 @@ В списке должны быть перенесенные индексы из {{ ES }} с количеством документов в столбце `docs.count`. - - {{ OS }} Dashboards + - {{ OS }} Dashboards {#opensearch} 1. [Подключитесь](../../managed-opensearch/operations/connect.md#dashboards) к кластеру-приемнику с помощью {{ OS }} Dashboards. 1. Выберите общий тенант `Global`. @@ -420,9 +420,9 @@ Убедитесь, что все нужные индексы перенесены в кластер-приемник {{ mos-name }}, а количество документов в них такое же как и в кластере-источнике: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду: @@ -435,7 +435,7 @@ В списке должны быть перенесенные индексы из {{ ES }} с количеством документов в столбце `docs.count`. -- {{ OS }} Dashboards +- {{ OS }} Dashboards {#opensearch} 1. [Подключитесь](../../managed-opensearch/operations/connect.md#dashboards) к кластеру-приемнику с помощью {{ OS }} Dashboards. 1. Выберите общий тенант `Global`. diff --git a/ru/_tutorials/datasphere/automation-community-settings.md b/ru/_tutorials/datasphere/automation-community-settings.md index c7a296f1996..1da1863fb2f 100644 --- a/ru/_tutorials/datasphere/automation-community-settings.md +++ b/ru/_tutorials/datasphere/automation-community-settings.md @@ -52,7 +52,7 @@ 1. Укажите полученный IAM-токен: ```python - iam_token = "" + iam_token = "" ``` 1. Импортируйте необходимую библиотеку: @@ -73,7 +73,7 @@ 1. Укажите идентификатор организации, в которой должно быть создано сообщество: ```python - ORGANIZATION_ID = "" + ORGANIZATION_ID = "<идентификатор_организации>" ``` 1. Получите список доступных платежных аккаунтов: @@ -91,7 +91,7 @@ data['name'] = "<имя_сообщества>" data['description'] = "<описание_сообщества>" data['organizationId'] = ORGANIZATION_ID - data['billingAccountId'] = "" + data['billingAccountId'] = "<идентификатор_платежного_аккаунта>" res = requests.post('https://datasphere.api.cloud.yandex.net/datasphere/v2/communities', json=data, @@ -124,7 +124,7 @@ ```python # Укажите список идентификаторов участников из поля 'sub', для которых должны быть созданы проекты - user_organization_ids = ['',''] + user_organization_ids = ['<идентификатор_участника_1>','<идентификатор_участника_2>'] projects = {} for user_id in user_organization_ids: @@ -159,13 +159,13 @@ data['accessBindings'] = [{ "roleId": 'datasphere.community-projects.admin', "subject": { - "id": "", # Укажите идентификатор администратора проекта + "id": "<идентификатор_администратора_проекта>", # Укажите идентификатор администратора проекта "type": "userAccount" }}, { "roleId": 'datasphere.community-projects.developer', "subject": { - "id": "", # Укажите идентификатор разработчика проекта + "id": "<идентификатор_разработчика_проекта>", # Укажите идентификатор разработчика проекта "type": "userAccount" }} ] diff --git a/ru/_tutorials/datasphere/mlflow-datasphere.md b/ru/_tutorials/datasphere/mlflow-datasphere.md index 36ab6c02436..ef7a94a5ebc 100644 --- a/ru/_tutorials/datasphere/mlflow-datasphere.md +++ b/ru/_tutorials/datasphere/mlflow-datasphere.md @@ -226,7 +226,7 @@ ```bash MLFLOW_S3_ENDPOINT_URL=https://storage.yandexcloud.net/ - MLFLOW_TRACKING_URI=http://<внутренний_ip_виртуальной_машины>:8000 + MLFLOW_TRACKING_URI=http://<внутренний_IP-адрес_виртуальной_машины>:8000 ``` 1. Укажите данные, которые будут использоваться библиотекой `boto3` для доступа к S3: @@ -247,7 +247,7 @@ ```bash [default] - aws_access_key_id= + aws_access_key_id=<идентификатор_статического_ключа> aws_secret_access_key=<секретный_ключ> ``` @@ -257,7 +257,7 @@ mlflow server --backend-store-uri postgresql://<имя_пользователя>:<пароль>@<хост>:6432/db1?sslmode=verify-full --default-artifact-root s3://mlflow-bucket/artifacts -h 0.0.0.0 -p 8000 ``` - Проверить подключение к MLFlow можно по ссылке `http://<публичный_ip_виртуальной_машины>:8000`. + Проверить подключение к MLFlow можно по ссылке `http://<публичный_IP-адрес_виртуальной_машины>:8000`. ### Включите автозапуск MLFlow {#autorun} @@ -297,8 +297,8 @@ ``` Где: - * <имя_пользователя_ВМ> — имя учетной записи пользователя ВМ; - * <имя_пользователя_БД> — имя пользователя, указанное при создании кластера БД. + * `<имя_пользователя_ВМ>` — имя учетной записи пользователя ВМ; + * `<имя_пользователя_БД>` — имя пользователя, указанное при создании кластера БД. 1. Запустите сервис и активируйте автозагрузку при старте системы: @@ -318,7 +318,7 @@ 1. В поле **{{ ui-key.yc-ui-datasphere.secret.content }}** вставьте адрес — `https://storage.yandexcloud.net/`. 1. Нажмите **{{ ui-key.yc-ui-datasphere.common.create }}**. 1. Создайте еще три секрета: - * `MLFLOW_TRACKING_URI` со значением `http://<внутренний_ip_виртуальной_машины>:8000`; + * `MLFLOW_TRACKING_URI` со значением `http://<внутренний_IP-адрес_виртуальной_машины>:8000`; * `AWS_ACCESS_KEY_ID` с идентификатором статического ключа; * `AWS_SECRET_ACCESS_KEY` со значением статического ключа. @@ -439,7 +439,7 @@ mlflow.sklearn.log_model(lr, "model", signature=signature) ``` - Проверить результат можно по ссылке `http://<публичный_ip_виртуальной_машины>:8000`. + Проверить результат можно по ссылке `http://<публичный_IP-адрес_виртуальной_машины>:8000`. ## Как удалить созданные ресурсы {#clear-out} diff --git a/ru/_tutorials/datasphere/node-from-cell.md b/ru/_tutorials/datasphere/node-from-cell.md index 8cecb40dfc1..491f3039a2a 100644 --- a/ru/_tutorials/datasphere/node-from-cell.md +++ b/ru/_tutorials/datasphere/node-from-cell.md @@ -277,9 +277,9 @@ Вы можете отправлять запросы из интерфейса {{ ml-platform-name }} или из кода ноутбука. -{% list tabs %} +{% list tabs group=programming_language %} -- Интерфейс {{ ml-platform-name }} +- Интерфейс {{ ml-platform-name }} {#datasphere} {% note info %} @@ -296,16 +296,16 @@ В ответе вернется код класса, к которому относится изображение. -- Python +- Python {#python} 1. Определите параметры запроса: - + ```python #!c1.4 import json import os import requests - + resp = requests.post( "https://datasphere.api.cloud.yandex.net/datasphere/v1/nodes/<идентификатор_ноды>:execute", data = json.dumps({ @@ -323,13 +323,14 @@ 'Authorization': f"Bearer " } ) - + # check response print(resp.status_code, resp.reason) print(resp.text) ``` - + Где: + - `<идентификатор_ноды>` — идентификатор ноды `classifier-node`; - `` — [IAM-токен](../../iam/operations/iam-token/create.md) вашего аккаунта; - `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md), в котором создана нода. diff --git a/ru/_tutorials/datasphere/node-from-docker.md b/ru/_tutorials/datasphere/node-from-docker.md index 4613837ef32..b6e09caa991 100644 --- a/ru/_tutorials/datasphere/node-from-docker.md +++ b/ru/_tutorials/datasphere/node-from-docker.md @@ -204,11 +204,11 @@ {{ registry }} ``` - 1. Загрузите Docker-образ в {{ container-registry-name }}. Вместо подставьте идентификатор вашего реестра `datasphere-registry`: + 1. Загрузите Docker-образ в {{ container-registry-name }}. Вместо <идентификатор_реестра> подставьте идентификатор вашего реестра `datasphere-registry`: ```bash - docker tag triton-docker {{ registry }}//triton:v1 - docker push {{ registry }}//triton:v1 + docker tag triton-docker {{ registry }}/<идентификатор_реестра>/triton:v1 + docker push {{ registry }}/<идентификатор_реестра>/triton:v1 ``` {% endlist %} diff --git a/ru/_tutorials/datasphere/s3-to-datasphere.md b/ru/_tutorials/datasphere/s3-to-datasphere.md index 7848d8a53d3..ab8f16d6b8f 100644 --- a/ru/_tutorials/datasphere/s3-to-datasphere.md +++ b/ru/_tutorials/datasphere/s3-to-datasphere.md @@ -132,42 +132,43 @@ 1. В поле **{{ ui-key.yacloud.storage.bucket.settings.field_name }}** укажите имя бакета в соответствии с [правилами именования](../../storage/concepts/bucket.md#naming). 1. В полях **{{ ui-key.yacloud.storage.bucket.settings.field_access-read }}**, **{{ ui-key.yacloud.storage.bucket.settings.field_access-list }}** и **{{ ui-key.yacloud.storage.bucket.settings.field_access-config-read }}** выберите **{{ ui-key.yacloud.storage.bucket.settings.access_value_private }}**. 1. Нажмите кнопку **{{ ui-key.yacloud.storage.buckets.create.button_create }}**. - + - AWS CLI 1. Если у вас еще нет AWS CLI, [установите и сконфигурируйте его](../../storage/tools/aws-cli.md). 1. Создайте бакет, указав имя бакета в соответствии с [правилами именования](../../storage/concepts/bucket.md#naming): - + ```bash aws --endpoint-url https://{{ s3-storage-host }} \ s3 mb s3://<имя_бакета> ``` Результат: - + ```text make_bucket: <имя_бакета> ``` - + - {{ TF }} {% include [terraform-install](../../_includes/terraform-install.md) %} 1. Добавьте в конфигурационный файл блок с параметрами бакета, указав имя бакета в соответствии с [правилами именования](../../storage/concepts/bucket.md#naming): - + ```hcl resource "yandex_storage_bucket" "<имя_бакета>" { bucket = "<имя_бакета>" } ``` - + Подробнее о ресурсе `yandex_storage_bucket` см. в [документации]({{ tf-provider-link }}/storage_bucket) провайдера {{ TF }}. - + 1. Создайте ресурсы: + {% include [terraform-validate-plan-apply](../../_tutorials/terraform-validate-plan-apply.md) %} - + {{ TF }} создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления]({{ link-console-main }}). - + - API Используйте метод REST API [create](../../storage/api-ref/Bucket/create.md) для ресурса [Bucket](../../storage/api-ref/Bucket/index.md), вызов gRPC API [BucketService/Create](../../storage/api-ref/grpc/bucket_service.md#Create) или метод S3 API [create](../../storage/s3/api-ref/bucket/create.md). @@ -240,11 +241,11 @@ 1. {% include [find project](../../_includes/datasphere/ui-find-project.md) %} 1. В правом верхнем углу нажмите кнопку **{{ ui-key.yc-ui-datasphere.common.create-resource }}**. Во всплывающем окне выберите **{{ ui-key.yc-ui-datasphere.resources.s3 }}**. 1. Заполните поля: - * **{{ ui-key.yc-ui-datasphere.common.name }}** — имя создаваемого коннектора, например `s3-datasphere-connect`. + * **{{ ui-key.yc-ui-datasphere.common.name }}** — имя создаваемого коннектора, например `s3-datasphere-connect`. * **{{ ui-key.yc-ui-datasphere.common.endpoint }}** — хост {{ objstorage-full-name }} — `https://{{ s3-storage-host }}/`. * **{{ ui-key.yc-ui-datasphere.common.bucket }}** — имя вашего бакета. * **{{ ui-key.yc-ui-datasphere.new-s3-page.mount-name }}** — название тома при монтировании бакета в файловую систему проекта. - * **{{ ui-key.yc-ui-datasphere.new-s3-page.access-key-id }}**, который используется для подключения к хранилищу. + * **{{ ui-key.yc-ui-datasphere.new-s3-page.access-key-id }}**, который используется для подключения к хранилищу. * В поле **{{ ui-key.yc-ui-datasphere.new-s3-page.static-access-key }}** нажмите **{{ ui-key.yc-ui-datasphere.common.create }}**. В открывшемся окне введите имя секрета и секретный ключ, который используется для подключения к хранилищу. 1. Нажмите кнопку **{{ ui-key.yc-ui-datasphere.common.create }}**. 1. Перейдите на страницу коннектора S3 и нажмите кнопку **{{ ui-key.yc-ui-datasphere.common.activate }}**. После активации бакет будет доступен в интерфейсе {{ jlab }}Lab в списке на вкладке **S3 Mounts** ![S3 Mounts](../../_assets/console-icons/bucket.svg), и его можно будет просматривать как файловую систему. diff --git a/ru/_tutorials/datasphere/yagpt-tuning.md b/ru/_tutorials/datasphere/yagpt-tuning.md index ef70ba1e6c8..441e5407fa5 100644 --- a/ru/_tutorials/datasphere/yagpt-tuning.md +++ b/ru/_tutorials/datasphere/yagpt-tuning.md @@ -128,9 +128,9 @@ ## Протестируйте модель {#model-test} -{% list tabs %} +{% list tabs group=programming_language %} -- Playground +- Playground {#playground} 1. {% include [find project](../../_includes/datasphere/ui-find-project.md) %} @@ -144,7 +144,7 @@ 1. Чтобы изменить вариативность, передвигайте ползунок в поле **{{ ui-key.yc-ui-datasphere.yagpt-playground.temperature.title }}**. Чем выше значение, тем более непредсказуемым будет результат выполнения запроса. -- {{ jlab }}Lab +- {{ jlab }}Lab {#jupyterlab} Скопируйте код в ячейку ноутбука, если вы не использовали инструкцию для дообучения модели: @@ -164,7 +164,7 @@ } ] } - headers = {"Authorization" : "Bearer " + '<значение_IAM-токена>', + headers = {"Authorization" : "Bearer " + '', "x-folder-id": "<идентификатор_каталога>", } res = requests.post("https://llm.api.cloud.yandex.net/foundationModels/v1/completion", headers=headers, json=req) @@ -176,7 +176,7 @@ * `modelUri` — идентификатор дообученной модели. Можно [найти](#model-tuning) в списке доступных ресурсов проекта. * `temperature` — температура. Чем выше значение, тем более непредсказуемым будет результат выполнения запроса. * `maxTokens` — максимальное число токенов в ответе модели. - * `<значение_IAM-токена>` — [IAM-токен сервисного аккаунта](../../iam/operations/iam-token/create-for-sa.md). + * `` — значение [IAM-токена сервисного аккаунта](../../iam/operations/iam-token/create-for-sa.md). * `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. Если вы использовали инструкцию для дообучения, укажите ее текст в сообщении с ролью `system`: @@ -201,7 +201,7 @@ } ] } - headers = {"Authorization" : "Bearer " + '<значение_IAM-токена>', + headers = {"Authorization" : "Bearer " + '', "x-folder-id": "<идентификатор_каталога>", } res = requests.post("https://llm.api.cloud.yandex.net/foundationModels/v1/completion", headers=headers, json=req) @@ -210,7 +210,7 @@ Подробнее о параметрах запроса к дообученной модели см. в [документации {{ yagpt-full-name }}](../../yandexgpt/api-ref/v1/index.md). -- cURL +- cURL {#curl} {% include [curl](../../_includes/curl.md) %} @@ -268,7 +268,7 @@ ```bash curl --request POST -H "Content-Type: application/json" - -H "Authorization: Bearer <значение_IAM-токена>" + -H "Authorization: Bearer " -H "x-folder-id: <идентификатор_каталога>" -d prompt.json https://llm.{{ api-host }}/foundationModels/v1/completion @@ -277,7 +277,7 @@ Где: * `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. - * `<значение_IAM-токена>` — [IAM-токен сервисного аккаунта](../../iam/operations/iam-token/create-for-sa.md). + * `` — значение [IAM-токена сервисного аккаунта](../../iam/operations/iam-token/create-for-sa.md). * `prompt.json` — файл в формате JSON, содержащий параметры запроса. {% endlist %} diff --git a/ru/_tutorials/infrastructure/terraform-state-lock.md b/ru/_tutorials/infrastructure/terraform-state-lock.md index 5ae2c8e91dc..e3018ec3a2e 100644 --- a/ru/_tutorials/infrastructure/terraform-state-lock.md +++ b/ru/_tutorials/infrastructure/terraform-state-lock.md @@ -122,16 +122,16 @@ description: "При работе с {{ TF }} в облаке важно иск 1. Добавьте в переменные окружения идентификатор ключа и секретный ключ, [полученные ранее](#create-service-account): - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash export ACCESS_KEY="<идентификатор_ключа>" export SECRET_KEY="<секретный_ключ>" ``` - - PowerShell + - PowerShell {#powershell} ```powershell $Env:ACCESS_KEY="<идентификатор_ключа>" diff --git a/ru/_tutorials/infrastructure/terraform-state-storage.md b/ru/_tutorials/infrastructure/terraform-state-storage.md index 098449b16c6..7acfe8a3a72 100644 --- a/ru/_tutorials/infrastructure/terraform-state-storage.md +++ b/ru/_tutorials/infrastructure/terraform-state-storage.md @@ -76,16 +76,16 @@ 1. Добавьте в переменные окружения идентификатор ключа и секретный ключ, [полученные ранее](#create-service-account): - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash export ACCESS_KEY="<идентификатор_ключа>" export SECRET_KEY="<секретный_ключ>" ``` - - PowerShell + - PowerShell {#powershell} ```powershell $ACCESS_KEY="<идентификатор_ключа>" diff --git a/ru/_tutorials/serverless/canary-release.md b/ru/_tutorials/serverless/canary-release.md index 162ddabb818..df3f97d2f33 100644 --- a/ru/_tutorials/serverless/canary-release.md +++ b/ru/_tutorials/serverless/canary-release.md @@ -318,8 +318,8 @@ Где: - * `name` — имя API-шлюза. - * `spec` — файл со спецификацией. + * `--name` — имя API-шлюза. + * `--spec` — файл со спецификацией. * `--canary-weight` — доля запросов в канареечном релизе. * `--canary-variables` — переменные для канареечного релиза. diff --git a/ru/_tutorials/serverless/java-servlet-todo-list.md b/ru/_tutorials/serverless/java-servlet-todo-list.md index 9e3ff4370e7..21a3487694e 100644 --- a/ru/_tutorials/serverless/java-servlet-todo-list.md +++ b/ru/_tutorials/serverless/java-servlet-todo-list.md @@ -183,13 +183,13 @@ Где: - * `function-name` — имя функции, версию которой вы хотите создать. - * `runtime` — среда выполнения. - * `entrypoint` — точка входа, указывается в формате \<имя_файла_с_функцией>.\<имя_обработчика>. - * `memory` — объем RAM. - * `execution-timeout` — максимальное время выполнения функции до таймаута. - * `source-path` — ZIP-архив с кодом функции и необходимыми зависимостями. - * `environment` — переменные окружения в формате key=value. + * `--function-name` — имя функции, версию которой вы хотите создать. + * `--runtime` — среда выполнения. + * `--entrypoint` — точка входа, указывается в формате `<имя_файла_с_функцией>`.`<имя_обработчика>`. + * `--memory` — объем RAM. + * `--execution-timeout` — максимальное время выполнения функции до таймаута. + * `--source-path` — ZIP-архив с кодом функции и необходимыми зависимостями. + * `--environment` — переменные окружения в формате `key=value`. Результат: diff --git a/ru/_tutorials/serverless/movies-database.md b/ru/_tutorials/serverless/movies-database.md index cb293372fc8..51960ea457c 100644 --- a/ru/_tutorials/serverless/movies-database.md +++ b/ru/_tutorials/serverless/movies-database.md @@ -378,8 +378,9 @@ ``` Где: - * `role` — назначаемая роль. - * `subject serviceAccount` — идентификатор сервисного аккаунта. + + * `--role` — назначаемая роль. + * `--subject serviceAccount` — идентификатор сервисного аккаунта. Роли назначаются сервисному аккаунту для следующих действий: * Вызов контейнера в [{{ serverless-containers-name }}]({{ link-cloud-services }}/serverless-containers). @@ -453,8 +454,9 @@ ``` Где: - * `name` — имя контейнера. - * `folder-id` — идентификатор каталога. + + * `--name` — имя контейнера. + * `--folder-id` — идентификатор каталога. 1. В выводе команды указан идентификатор созданного контейнера. Экспортируйте его в переменную окружения: ```bash @@ -478,15 +480,16 @@ ``` Где: - * `folder-id` — идентификатор каталога. - * `container-id` — идентификатор контейнера. - * `memory` — объем памяти, доступный контейнеру. - * `cores` — количество ядер vCPU, доступное контейнеру. - * `execution-timeout` — таймаут выполнения. - * `concurrency` — максимальное число одновременных вызовов контейнера. Если вызовов контейнера больше, чем значение параметра `concurrency`, сервис масштабирует контейнер — запускает его дополнительные экземпляры. - * `environment` — переменные окружения. Через переменную окружения `DOCUMENT_API_ENDPOINT` в приложение передается Document API эндпоинт базы данных. - * `service-account-id` — идентификатор сервисного аккаунта. - * `image` — название репозитория. + + * `--folder-id` — идентификатор каталога. + * `--container-id` — идентификатор контейнера. + * `--memory` — объем памяти, доступный контейнеру. + * `--cores` — количество ядер vCPU, доступное контейнеру. + * `--execution-timeout` — таймаут выполнения. + * `--concurrency` — максимальное число одновременных вызовов контейнера. Если вызовов контейнера больше, чем значение параметра `--concurrency`, сервис масштабирует контейнер — запускает его дополнительные экземпляры. + * `--environment` — переменные окружения. Через переменную окружения `DOCUMENT_API_ENDPOINT` в приложение передается Document API эндпоинт базы данных. + * `--service-account-id` — идентификатор сервисного аккаунта. + * `--image` — название репозитория. ### Разверните API в {{ api-gw-name }} {#deploy-api-gw} diff --git a/ru/_tutorials/serverless/ory-kratos-authorization.md b/ru/_tutorials/serverless/ory-kratos-authorization.md index 136ff1eb30d..3317db3c854 100644 --- a/ru/_tutorials/serverless/ory-kratos-authorization.md +++ b/ru/_tutorials/serverless/ory-kratos-authorization.md @@ -134,7 +134,7 @@ } resource "yandex_resourcemanager_folder_iam_member" "{{ roles-admin }}" { - folder_id = "<идентификатор каталога>" + folder_id = "<идентификатор_каталога>" role = "{{ roles-admin }}" member = "serviceAccount:${yandex_iam_service_account.sa-for-kratos id}" } @@ -250,7 +250,7 @@ * **{{ ui-key.yacloud.forms.label_service-account-select }}** — `sa-func-authorizer`. * **{{ ui-key.yacloud.serverless-functions.item.editor.field_environment-variables }}**: - * `KRATOS_API_BASE_PATH` — `https:///public`, где `` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). + * `KRATOS_API_BASE_PATH` — `https://<служебный_домен_API-шлюза>/public`, где `<служебный_домен_API-шлюза>` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). 1. Нажмите кнопку **{{ ui-key.yacloud.serverless-functions.item.editor.button_deploy-version }}**. @@ -284,19 +284,19 @@ --runtime=nodejs16 \ --entrypoint=index.js \ --service-account-id=<идентификатор_сервисного_аккаунта> \ - --environment KRATOS_API_BASE_PATH=https:///public \ + --environment KRATOS_API_BASE_PATH=https://<служебный_домен_API-шлюза>/public \ --source-path=./index-js.zip ``` Где: * `--function-name` — имя функции, версия которой создается. - * `--memory` — объем RAM. + * `--memory` — объем RAM. * `--execution-timeout` — максимальное время выполнения функции до таймаута. * `--runtime` — среда выполнения. * `--entrypoint` — точка входа. * `--service-account-id` — идентификатор сервисного аккаунта `sa-func-authorizer`. - * `--environment` — переменные окружения. `` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). + * `--environment` — переменные окружения. `<служебный_домен_API-шлюза>` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). * `--source-path` — путь до ZIP-архива `index-js.zip`. Результат: @@ -337,7 +337,7 @@ execution_timeout = "5" service_account_id = "<идентификатор_сервисного_аккаунта>" environment = { - KRATOS_API_BASE_PATH = https:///public + KRATOS_API_BASE_PATH = https://<служебный_домен_API-шлюза>/public } content { zip_filename = "./index-js.zip" @@ -354,7 +354,7 @@ * `memory` — объем памяти в мегабайтах, отведенный для выполнения функции. * `execution_timeout` — таймаут выполнения функции. * `service_account_id` — идентификатор сервисного аккаунта `sa-func-authorizer`. - * `environment` — переменные окружения. `` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). + * `environment` — переменные окружения. `<служебный_домен_API-шлюза>` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). * `content` — путь до ZIP-архива `index-js.zip` c исходным кодом функции. Более подробную информацию о параметрах ресурса `yandex_function` см. в [документации провайдера]({{ tf-provider-resources-link }}/function). @@ -512,20 +512,17 @@ ## Проверьте результат {#check} -1. В браузере перейдите на страницу тестовой консоли Identity Server based on Ory Kratos по адресу `https:///ui/`, где `` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). +1. В браузере перейдите на страницу тестовой консоли Identity Server based on Ory Kratos по адресу `https://<служебный_домен_API-шлюза>/ui/`, где `<служебный_домен_API-шлюза>` — служебный домен API-шлюза, который вы сохранили на шаге [Разверните Identity Server based on Ory Kratos](#deploy-kratos). 1. Зарегистрируйте пользователя. -1. Выполните вход с учетными данными пользователя: `https:///ui/login`. +1. Выполните вход с учетными данными пользователя: `https://<служебный_домен_API-шлюза>/ui/login`. 1. Откройте консоль разработчика в браузере и скопируйте значение куки с названием `ory_kratos_session`. 1. Обратитесь к API-шлюзу `for-kratos-authorization`: ```bash - curl 'https:///authorized/api' -H 'Cookie: ory_kratos_session=' + curl 'https://<служебный_домен_API-шлюза_for-kratos-authorization>/authorized/api' -H 'Cookie: ory_kratos_session=<значение_куки>' ``` - Где: - - * `` — служебный домен API-шлюза `for-kratos-authorization`; - * `` — значение куки `ory_kratos_session`, скопированное на предыдущем шаге. + Где `<значение_куки>` — значение куки `ory_kratos_session`, скопированное на предыдущем шаге. Если в ответе вы получили `Authorized!`, значит, сессия пользователя активна и API был успешно вызван после проверки авторизационной куки. diff --git a/ru/_tutorials/serverless/serverless-live-debug.md b/ru/_tutorials/serverless/serverless-live-debug.md index 5542eb17382..971cc4803ab 100644 --- a/ru/_tutorials/serverless/serverless-live-debug.md +++ b/ru/_tutorials/serverless/serverless-live-debug.md @@ -73,7 +73,7 @@ yc iam service-account create --name sa-live-debug ``` - Где `name` — имя сервисного аккаунта в формате: + Где `--name` — имя сервисного аккаунта в формате: {% include [name-format](../../_includes/name-format.md) %} @@ -181,7 +181,7 @@ * `cloud_id` — [идентификатор облака](../../resource-manager/operations/cloud/get-id.md). Обязательный параметр. * `role` — назначаемая роль. Обязательный параметр. - * `member` — пользователь или сервисный аккаунт, которому назначается роль. Указывается в виде `userAccount:<идентификатор пользователя>` или `serviceAccount:<идентификатор сервисного аккаунта>`. Обязательный параметр. + * `member` — пользователь или сервисный аккаунт, которому назначается роль. Указывается в виде `userAccount:<идентификатор_пользователя>` или `serviceAccount:<идентификатор_сервисного_аккаунта>`. Обязательный параметр. Более подробную информацию о параметрах ресурса `yandex_resourcemanager_folder_iam_member` см. в [документации провайдера]({{ tf-provider-resources-link }}/iam_service_account_iam_member). @@ -224,9 +224,9 @@ ``` Где: - * `service-account-id` — идентификатор сервисного аккаунта `sa-live-debug`. - * `folder-id` — идентификатор каталога, в котором создан сервисный аккаунт. - * `output` — имя файла с авторизованным ключом. + * `--service-account-id` — идентификатор сервисного аккаунта `sa-live-debug`. + * `--folder-id` — идентификатор каталога, в котором создан сервисный аккаунт. + * `--output` — имя файла с авторизованным ключом. Результат: diff --git a/ru/_tutorials/serverless/websocket-app.md b/ru/_tutorials/serverless/websocket-app.md index 35bf980adc9..751e59c43d7 100644 --- a/ru/_tutorials/serverless/websocket-app.md +++ b/ru/_tutorials/serverless/websocket-app.md @@ -212,7 +212,7 @@ git clone --branch sls-demo-0323 https://github.com/yandex-cloud-examples/yc-ser 1. Сохраните имя пользователя в переменную `TG_BOT_LOGIN`: ```bash - echo "export TG_BOT_LOGIN=<имя пользователя для бота>" >> ~/.bashrc && . ~/.bashrc + echo "export TG_BOT_LOGIN=<имя_пользователя_для_бота>" >> ~/.bashrc && . ~/.bashrc echo $TG_BOT_LOGIN ``` @@ -310,7 +310,7 @@ git clone --branch sls-demo-0323 https://github.com/yandex-cloud-examples/yc-ser 1. Сохраните идентификатор ключа `key_id` в переменную `AWS_ACCESS_KEY_ID` и секретный ключ `secret` — в переменную `AWS_SECRET_ACCESS_KEY`: ```bash - echo "export AWS_ACCESS_KEY_ID=<идентификатор ключа>" >> ~/.bashrc && . ~/.bashrc + echo "export AWS_ACCESS_KEY_ID=<идентификатор_ключа>" >> ~/.bashrc && . ~/.bashrc echo $AWS_ACCESS_KEY_ID echo "export AWS_SECRET_ACCESS_KEY=<секретный_ключ>" >> ~/.bashrc && . ~/.bashrc @@ -327,7 +327,7 @@ git clone --branch sls-demo-0323 https://github.com/yandex-cloud-examples/yc-ser * `AWS Access Key ID` — идентификатор ключа доступа `key_id` сервисного аккаунта, полученный ранее. * `AWS Secret Access Key` — секретный ключ `secret` сервисного аккаунта, полученный ранее. - * `Default region name` — используйте значение `ru-central1`. + * `Default region name` — используйте значение `{{ region-id }}`. * `Default output format` — оставьте пустым. 1. Проверьте конфигурацию: @@ -357,24 +357,24 @@ git clone --branch sls-demo-0323 https://github.com/yandex-cloud-examples/yc-ser created_at: "2023-03-30T15:01:19Z" name: game-data status: PROVISIONING - endpoint: grpcs://ydb.serverless.yandexcloud.net:2135/?database=/ru-central1/b1gia87mbao********/etn0ejcvmjm4******** + endpoint: grpcs://ydb.serverless.yandexcloud.net:2135/?database=/{{ region-id }}/b1gia87mbaom********/etn0ejcvmjm4******** serverless_database: storage_size_limit: "53687091200" - location_id: ru-central1 + location_id: {{ region-id }} ... ``` 1. Сохраните в переменной `YDB_ENDPOINT` значение `endpoint` из вывода предыдущей команды. В нашем примере оно равняется `grpcs://ydb.serverless.yandexcloud.net:2135`. ```bash - echo "export YDB_ENDPOINT=<эндпоинт Document API БД>" >> ~/.bashrc && . ~/.bashrc + echo "export YDB_ENDPOINT=<эндпоинт_Document_API_БД>" >> ~/.bashrc && . ~/.bashrc echo $YDB_ENDPOINT ``` -1. Сохраните в переменной `YDB_DATABASE` значение `database` из вывода предыдущей команды. В нашем примере оно равняется `/ru-central1/b1gia87mbaomkfvsleds/etn0ejcvmjm4********`. +1. Сохраните в переменной `YDB_DATABASE` значение `database` из вывода предыдущей команды. В нашем примере оно равняется `/{{ region-id }}/b1gia87mbaom********/etn0ejcvmjm4********`. ```bash - echo "export YDB_DATABASE=<имя таблицы>" >> ~/.bashrc && . ~/.bashrc + echo "export YDB_DATABASE=<имя_таблицы>" >> ~/.bashrc && . ~/.bashrc echo $YDB_DATABASE ``` @@ -393,23 +393,23 @@ git clone --branch sls-demo-0323 https://github.com/yandex-cloud-examples/yc-ser created_at: "2023-03-30T15:02:44Z" name: data-streams status: PROVISIONING - endpoint: grpcs://ydb.serverless.yandexcloud.net:2135/?database=/ru-central1/b1gia87mbaom********/etn16k0e1757******** + endpoint: grpcs://ydb.serverless.yandexcloud.net:2135/?database=/{{ region-id }}/b1gia87mbaom********/etn16k0e1757******** serverless_database: storage_size_limit: "53687091200" - location_id: ru-central1 + location_id: {{ region-id }} ``` 1. Сохраните в переменной `YDB_DATA_STREAMS_ENDPOINT` значение `endpoint` из вывода предыдущей команды. В нашем примере оно равняется `grpcs://ydb.serverless.yandexcloud.net:2135`. ```bash - echo "export YDB_DATA_STREAMS_ENDPOINT=<эндпоинт Document API БД>" >> ~/.bashrc && . ~/.bashrc + echo "export YDB_DATA_STREAMS_ENDPOINT=<эндпоинт_Document_API_БД>" >> ~/.bashrc && . ~/.bashrc echo $YDB_DATA_STREAMS_ENDPOINT ``` -1. Сохраните в переменной `YDB_DATA_STREAMS_DATABASE` значение `database` из вывода предыдущей команды. В нашем примере оно равняется `/ru-central1/b1gia87mbaomkfvsleds/etn16k0e1757********`. +1. Сохраните в переменной `YDB_DATA_STREAMS_DATABASE` значение `database` из вывода предыдущей команды. В нашем примере оно равняется `/{{ region-id }}/b1gia87mbaom********/etn16k0e1757********`. ```bash - echo "export YDB_DATA_STREAMS_DATABASE=<имя таблицы>" >> ~/.bashrc && . ~/.bashrc + echo "export YDB_DATA_STREAMS_DATABASE=<имя_таблицы>" >> ~/.bashrc && . ~/.bashrc echo $YDB_DATA_STREAMS_DATABASE ``` @@ -780,13 +780,13 @@ git clone --branch sls-demo-0323 https://github.com/yandex-cloud-examples/yc-ser 1. Скопируйте служебный домен API-шлюза. Он находится в выводе предыдущей команды, в поле `domain`. 1. В Telegram найдите [BotFather](https://t.me/BotFather) и введите команду `/setdomain`. -1. Выберите из списка своего бота и отправьте служебный домен API-шлюза. Перед доменом добавьте `https://`. Например, если служебный домен API-шлюза — `d5d920bqkitfr3nqk61s.apigw.yandexcloud.net`, URL будет `https://d5d920bqkitfr3nqk61s.apigw.yandexcloud.net`. +1. Выберите из списка своего бота и отправьте служебный домен API-шлюза. Перед доменом добавьте `https://`. Например, если служебный домен API-шлюза — `d5d920bqkitf********.apigw.yandexcloud.net`, URL будет `https://d5d920bqkitf********.apigw.yandexcloud.net`. ## Протестируйте приложение {#test-app} Перейдите по ссылке, которую отправили Telegram-боту, авторизуйтесь и откройте игру. -В игре доступна статистика игроков. Если служебный домен API-шлюза — `d5d920bqkitfr3nqk61s.apigw.yandexcloud.net`, тогда по адресу `https://d5d920bqkitfr3nqk61s.apigw.yandexcloud.net/stats.html` будет доступна страница со статистикой всех игроков. +В игре доступна статистика игроков. Если служебный домен API-шлюза — `d5d920bqkitf********.apigw.yandexcloud.net`, тогда по адресу `https://d5d920bqkitf********.apigw.yandexcloud.net/stats.html` будет доступна страница со статистикой всех игроков. ## Как удалить созданные ресурсы {#clear-out} diff --git a/ru/_tutorials/windows/mssql-alwayson-lb.md b/ru/_tutorials/windows/mssql-alwayson-lb.md index 9ecacc30e47..991fa9d1c13 100644 --- a/ru/_tutorials/windows/mssql-alwayson-lb.md +++ b/ru/_tutorials/windows/mssql-alwayson-lb.md @@ -40,16 +40,16 @@ 1. Создайте сеть с именем `ya-network`: - {% list tabs %} + {% list tabs group=programming_language %} - - Консоль управления + - Консоль управления {#console} 1. Откройте раздел **{{ vpc-name }}** в каталоге, где требуется создать облачную сеть. 1. Нажмите кнопку **Создать сеть.** 1. Задайте имя сети: `ya-network`. 1. Нажмите кнопку **Создать сеть**. - - Bash + - Bash {#bash} {% include [cli-install](../../_includes/cli-install.md) %} @@ -59,7 +59,7 @@ yc vpc network create --name ya-network ``` - - PowerShell + - PowerShell {#powershell} [Установите](../../cli/operations/install-cli.md) интерфейс командной строки {{ yandex-cloud }}, чтобы использовать команды CLI в PowerShell. @@ -76,9 +76,9 @@ * Подсеть `ya-ad-rc1a` для Active Directory. - {% list tabs %} + {% list tabs group=programming_language %} - - Консоль управления + - Консоль управления {#console} 1. Откройте раздел **{{ vpc-name }}** в каталоге, где требуется создать подсети. 1. Выберите сеть `ya-network`. @@ -94,7 +94,7 @@ * `ya-ilb-rc1a` в зоне доступности `{{ region-id }}-a` — `192.168.1.48/28`; * `ya-ad-rc1a` в зоне доступности `{{ region-id }}-a` — `10.0.0.0/28`. - - Bash + - Bash {#bash} ``` yc vpc subnet create \ @@ -136,7 +136,7 @@ --network-name ya-network ``` - - PowerShell + - PowerShell {#powershell} ``` yc vpc subnet create ` @@ -182,9 +182,9 @@ ## Создайте внутренний сетевой балансировщик {#create-load-balancer} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ``` yc load-balancer network-load-balancer create \ @@ -192,7 +192,7 @@ --type internal ``` -- PowerShell +- PowerShell {#powershell} ``` yc load-balancer network-load-balancer create ` @@ -204,9 +204,9 @@ ### Создайте обработчик {#create-listener} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Получите идентификатор подсети: @@ -222,7 +222,7 @@ --listener name=ya-listener,port=1433,target-port=14333,protocol=tcp,internal-subnet-id=<идентификатор_подсети> ``` -- PowerShell +- PowerShell {#powershell} ``` $inlbSubnet = yc vpc subnet get ` @@ -240,9 +240,9 @@ ### Создайте и подключите целевую группу к балансировщику {#create-target-group} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ``` yc load-balancer target-group create \ @@ -260,7 +260,7 @@ --target-group target-group-id=<идентификатор_целевой_группы>,healthcheck-name=listener,healthcheck-tcp-port=59999 ``` -- PowerShell +- PowerShell {#powershell} ``` yc load-balancer target-group create ` @@ -304,9 +304,9 @@ {% endnote %} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ``` touch ~/setpass @@ -321,7 +321,7 @@ cd ``` -- PowerShell +- PowerShell {#powershell} ``` ni ~/setpass @@ -359,9 +359,9 @@ Создайте бастионный хост с ОС Windows Server 2022 Datacenter с публичным IP-адресом для доступа к остальным ВМ: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} @@ -382,7 +382,7 @@ ``` -- PowerShell +- PowerShell {#powershell} @@ -408,9 +408,9 @@ #### Создайте ВМ для Active Directory {#create-ad-controller} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} @@ -431,7 +431,7 @@ ``` -- PowerShell +- PowerShell {#powershell} @@ -459,9 +459,9 @@ Создайте три виртуальных машины с ОС Windows Server 2022 Datacenter для серверов SQL Server: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} @@ -526,7 +526,7 @@ ``` -- PowerShell +- PowerShell {#powershell} @@ -607,9 +607,9 @@ 1. С ВМ `ya-jump1` подключитесь к ВМ `ya-ad` с помощью RDP и той же учетной записи. 1. На ВМ `ya-ad` запустите PowerShell и установите необходимые роли сервера: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Install-WindowsFeature AD-Domain-Services -IncludeManagementTools @@ -619,9 +619,9 @@ 1. Создайте лес Active Directory: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Install-ADDSForest ` @@ -639,9 +639,9 @@ 1. Переименуйте сайт и добавьте в него созданные подсети: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Get-ADReplicationSite 'Default-First-Site-Name' | Rename-ADObject -NewName '{{ region-id }}' @@ -656,9 +656,9 @@ 1. Укажите Forwarder для DNS-сервера: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Set-DnsServerForwarder '10.0.0.2' @@ -668,9 +668,9 @@ 1. Укажите адреса DNS-сервера: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses "10.0.0.3,127.0.0.1" @@ -686,9 +686,9 @@ 1. На ВМ `ya-ad` запустите PowerShell и создайте сервисную учетную запись `mssql-svc`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-ADUser ` @@ -703,9 +703,9 @@ 1. Создайте группы для доступа к резервным копиям и серверам баз данных: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-AdGroup mssql-admins-grp -GroupScope:Global @@ -716,9 +716,9 @@ 1. Добавьте учетную запись `Administrator` во все группы. В группу `mssql-backups-grp` добавьте сервисную учетную запись `mssql-svc`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Add-ADGroupMember mssql-admins-grp -Members Administrator @@ -730,9 +730,9 @@ 1. Задайте [SPN](https://docs.microsoft.com/en-us/windows/win32/ad/service-principal-names) сервисной учетной записи: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` setspn -A MSSQLSvc/ya-mssql1.yantoso.net:1433 yantoso\mssql-svc @@ -753,9 +753,9 @@ 1. Настройте на ВМ с серверами БД доступ в интернет: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ``` yc compute instance add-one-to-one-nat <идентификатор_ВМ_ya-mssql1> --network-interface-index 0 @@ -763,7 +763,7 @@ yc compute instance add-one-to-one-nat <идентификатор_ВМ_ya-mssql3> --network-interface-index 0 ``` - - PowerShell + - PowerShell {#powershell} ``` yc compute instance add-one-to-one-nat <идентификатор_ВМ_ya-mssql1> --network-interface-index 0 @@ -777,9 +777,9 @@ 1. Запустите PowerShell и установите роль: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Install-WindowsFeature Failover-Clustering -IncludeManagementTools @@ -793,9 +793,9 @@ 1. Инициализируйте и отформатируйте второй логический диск: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Get-Disk | ` @@ -816,9 +816,9 @@ 1. Подготовьте папки для дистрибутива, резервного копирования, хранения баз данных, логов и временных файлов: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` mkdir C:\dist @@ -835,9 +835,9 @@ 1. Установите модуль SqlServer: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Install-Module -Name SqlServer @@ -849,9 +849,9 @@ 1. Импортируйте команды модуля SqlServer для PowerShell: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Import-Module SQLServer @@ -861,9 +861,9 @@ 1. Укажите адрес DNS-сервера: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses "10.0.0.3" @@ -873,9 +873,9 @@ Подготовьте данные для доступа к домену: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` $domain_credential = ` @@ -888,9 +888,9 @@ Добавьте сервер БД в домен: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Add-Computer -DomainCredential $domain_credential -DomainName 'yantoso.net' -Restart -Force @@ -904,9 +904,9 @@ 1. Настройте необходимые права служебной учетной записи: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` & secedit /export /cfg sec_conf_export.ini /areas user_rights @@ -950,9 +950,9 @@ 1. Настройте файрвол: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-NetFirewallRule ` @@ -992,9 +992,9 @@ 1. Установите SQL Server. Смонтируйте образ, выполните установку и отсоедините образ: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Mount-DiskImage -ImagePath C:\dist\<имя_образа_SQL_Server>.iso @@ -1019,16 +1019,16 @@ 1. Отключите у ВМ доступ в интернет: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ``` yc compute instance remove-one-to-one-nat <идентификатор_ВМ_ya-mssql1> --network-interface-index 0 yc compute instance remove-one-to-one-nat <идентификатор_ВМ_ya-mssql2> --network-interface-index 0 yc compute instance remove-one-to-one-nat <идентификатор_ВМ_ya-mssql3> --network-interface-index 0 ``` - - PowerShell + - PowerShell {#powershell} ``` yc compute instance remove-one-to-one-nat <идентификатор_ВМ_ya-mssql1> --network-interface-index 0 @@ -1054,9 +1054,9 @@ 1. Для работы группы доступности Always On требуется настроенный Windows Server Failover Cluster. Для его создания необходимо протестировать серверы БД. На любой из ВМ кластера выполните: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Test-Cluster -Node 'ya-mssql1.yantoso.net' @@ -1072,9 +1072,9 @@ 1. С ВМ `ya-jump1` подключитесь к ВМ `ya-mssql1` с помощью RDP и учетной записи `yantoso\Administrator`. 1. Создайте кластер из трех серверов БД: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-Cluster ` @@ -1104,9 +1104,9 @@ 1. Включите на всех ВМ TCP/IP и добавьте порт `14333` для получения трафика: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") @@ -1148,9 +1148,9 @@ 1. Назначьте служебному пользователю `mssql-svc` разрешения на управление серверами: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Add-SqlLogin -Path "SQLSERVER:\SQL\ya-mssql1\Default" ` @@ -1198,9 +1198,9 @@ 1. Создайте и запустите [эндпоинты HADR](https://docs.microsoft.com/en-us/powershell/module/sqlps/new-sqlhadrendpoint?view=sqlserver-ps#description): - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-SqlHADREndpoint -Port 5022 -Owner sa ` @@ -1229,9 +1229,9 @@ 1. Создайте переменные с параметрами реплик. Основной репликой будет выступать `ya-mssql1`, второй и третьей — `ya-mssql2` и `ya-mssql3`. - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` $PrimaryReplica = New-SqlAvailabilityReplica ` @@ -1260,9 +1260,9 @@ 1. Создайте из реплик группу доступности `MyAG` и добавьте туда первый сервер: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-SqlAvailabilityGroup ` @@ -1275,9 +1275,9 @@ 1. Добавьте оставшиеся серверы в группу доступности: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\ya-mssql2.yantoso.net\Default" -Name 'MyAG' @@ -1288,9 +1288,9 @@ 1. Создайте [Listener](https://docs.microsoft.com/en-us/powershell/module/sqlps/new-sqlavailabilitygrouplistener?view=sqlserver-ps#description): - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` $NLBIPAddress = '192.168.1.62' @@ -1333,9 +1333,9 @@ 1. Назначьте порт `14333` обработчику: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Set-SqlAvailabilityGroupListener ` @@ -1347,9 +1347,9 @@ 1. Откройте порт `14333` на всех ВМ кластера: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` $nodes = @('ya-mssql1.yantoso.net','ya-mssql2.yantoso.net','ya-mssql3.yantoso.net') @@ -1390,9 +1390,9 @@ 1. Создайте базу данных на сервере `ya-mssql1`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -Query "CREATE DATABASE MyDatabase" -ServerInstance 'ya-mssql1.yantoso.net' @@ -1402,9 +1402,9 @@ 1. Задайте настройки доступа к папке с резервными копиями на сервере: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` New-SMBShare -Name SQLBackup -Path "X:\BACKUP" -FullAccess "yantoso\mssql-backups-grp" @@ -1420,9 +1420,9 @@ 1. Создайте резервную копию базы `MyDatabase` на ВМ `ya-mssql1`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Backup-SqlDatabase ` @@ -1441,9 +1441,9 @@ 1. Восстановите базу данных на сервере `ya-mssql2` из резервной копии: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Restore-SqlDatabase ` @@ -1464,9 +1464,9 @@ 1. Восстановите базу данных на сервере `ya-mssql3` из резервной копии: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Restore-SqlDatabase ` @@ -1487,9 +1487,9 @@ 1. Добавьте все базы данных в группу доступности: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Add-SqlAvailabilityDatabase ` @@ -1513,9 +1513,9 @@ 1. Создайте таблицу в реплицируемой БД `MyDatabase`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -ServerInstance 'MyAGlistener.yantoso.net' -Query @" @@ -1530,9 +1530,9 @@ 1. Добавьте в таблицу БД новую строку: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -ServerInstance 'MyAGlistener.yantoso.net' -Query @" @@ -1545,9 +1545,9 @@ 1. Проверьте, появилась ли строка в таблице: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -ServerInstance 'MyAGlistener.yantoso.net' -Query @" @@ -1567,9 +1567,9 @@ 1. Проверьте имя основной реплики БД: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -Query "SELECT @@SERVERNAME" -ServerInstance 'MyAGlistener.yantoso.net' @@ -1587,9 +1587,9 @@ 1. Выполните аварийное переключение на вторую реплику: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -Query "ALTER AVAILABILITY GROUP MyAg FAILOVER" -ServerInstance 'ya-mssql2.yantoso.net' @@ -1599,9 +1599,9 @@ 1. Снова проверьте имя основной реплики: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -Query "SELECT @@SERVERNAME" -ServerInstance 'MyAGlistener.yantoso.net' @@ -1618,9 +1618,9 @@ 1. Добавьте еще одну строку в таблицу, чтобы проверить работу второй реплики на запись: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -ServerInstance 'MyAGlistener.yantoso.net' -Query @" @@ -1633,9 +1633,9 @@ 1. Убедитесь, что строка добавлена: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ``` Invoke-Sqlcmd -ServerInstance 'MyAGlistener.yantoso.net' -Query "SELECT * FROM MyDatabase.dbo.test" diff --git a/ru/_tutorials/windows/rds.md b/ru/_tutorials/windows/rds.md index 14232a29591..8de586b8bf9 100644 --- a/ru/_tutorials/windows/rds.md +++ b/ru/_tutorials/windows/rds.md @@ -113,9 +113,9 @@ Создайте файл `setpass`, содержащий скрипт, который будет устанавливать пароль для локальной учетной записи администратора при создании виртуальных машин через CLI: -{% list tabs %} +{% list tabs group=programming_language %} -- PowerShell +- PowerShell {#powershell} ``` #ps1 @@ -199,9 +199,9 @@ 1. Подключитесь к ВМ `my-rds-vm` с [помощью RDP](../../compute/operations/vm-connect/rdp.md). Используйте логин `Administrator` и ваш пароль. 1. Установите роли Active Directory: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell Install-WindowsFeature AD-Domain-Services -IncludeManagementTools @@ -212,9 +212,9 @@ 1. Создайте лес Active Directory: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell Install-ADDSForest -DomainName 'yantoso.net' -Force:$true @@ -228,9 +228,9 @@ 1. Добавьте правила файрвола, защищающие службу Active Directory от запросов из внешних сетей: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell Set-NetFirewallRule ` @@ -252,9 +252,9 @@ 1. Добавьте системного пользователя Network Service в Terminal Server License Servers, группу безопасности Active Directory: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell net localgroup "Terminal Server License Servers" /Add 'Network Service' @@ -270,9 +270,9 @@ {% endnote %} - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell New-ItemProperty ` @@ -286,9 +286,9 @@ 1. Укажите службу лицензирования RDS: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell New-ItemProperty ` @@ -302,9 +302,9 @@ 1. (Опционально) Ограничьте количество разрешенных одновременных сессий к серверу: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell New-ItemProperty ` @@ -320,9 +320,9 @@ Установите роль Remote Desktop Session Host на сервер: -{% list tabs %} +{% list tabs group=programming_language %} -- PowerShell +- PowerShell {#powershell} ```powershell Install-WindowsFeature RDS-RD-Server -IncludeManagementTools @@ -355,9 +355,9 @@ 1. Создайте тестовых пользователей: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell New-ADUser ` @@ -391,9 +391,9 @@ 1. Выдайте пользователям права `Remote Desktop Users`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell Add-ADGroupMember -Members 'ru1' -Identity 'Remote Desktop Users' @@ -407,9 +407,9 @@ 1. Настройте права доступа по RDP для группы `Remote Desktop Users`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell & secedit /export /cfg sec_conf_export.ini /areas user_rights diff --git a/ru/api-gateway/concepts/extensions/any-method.md b/ru/api-gateway/concepts/extensions/any-method.md index 258b5705c32..59cab544e29 100644 --- a/ru/api-gateway/concepts/extensions/any-method.md +++ b/ru/api-gateway/concepts/extensions/any-method.md @@ -31,7 +31,7 @@ type: string x-yc-apigateway-integration: type: cloud_functions - function_id: b095c95icnvbuf4v755l + function_id: b095c95icnvb******** tag: "$latest" - service_account_id: ajehfe56hhlsd4n93q1 + service_account_id: ajehfe56hhl******** ``` diff --git a/ru/api-gateway/concepts/extensions/cloud-functions.md b/ru/api-gateway/concepts/extensions/cloud-functions.md index 9646d716394..f4b494c966b 100644 --- a/ru/api-gateway/concepts/extensions/cloud-functions.md +++ b/ru/api-gateway/concepts/extensions/cloud-functions.md @@ -34,9 +34,9 @@ type: string x-yc-apigateway-integration: type: cloud_functions - function_id: b095c95icnvbuf4v755l + function_id: b095c95icnvb******** tag: "$latest" - service_account_id: ajehfe56hhlsd4n93q1 + service_account_id: ajehfe56hhl******** ``` Пример функции: diff --git a/ru/api-gateway/concepts/extensions/cors.md b/ru/api-gateway/concepts/extensions/cors.md index c36a3181f35..fdf5c236ea3 100644 --- a/ru/api-gateway/concepts/extensions/cors.md +++ b/ru/api-gateway/concepts/extensions/cors.md @@ -103,7 +103,7 @@ paths: x-yc-apigateway-cors: origin: false options: - operationId: preflightPetById + operationId: prefligh******** parameters: - in: path name: petId diff --git a/ru/api-gateway/concepts/extensions/datasphere.md b/ru/api-gateway/concepts/extensions/datasphere.md index e4b3a5d2649..345bf39e0b6 100644 --- a/ru/api-gateway/concepts/extensions/datasphere.md +++ b/ru/api-gateway/concepts/extensions/datasphere.md @@ -25,7 +25,7 @@ - datasphere x-yc-apigateway-integration: type: cloud_datasphere - folder_id: b095c95icnvbuf4v755l - node_id: 244e0c20-74a7-4147-83ad-7fd7b8a1f43f - service_account_id: ajehfe78asliq4n94q1 + folder_id: b095c95icnvb******** + node_id: 244e0c20-74a7-4147-83ad-7fd7******** + service_account_id: ajehfe78asl******** ``` diff --git a/ru/api-gateway/concepts/extensions/datastreams.md b/ru/api-gateway/concepts/extensions/datastreams.md index 9ca056abcba..e048e5e54e5 100644 --- a/ru/api-gateway/concepts/extensions/datastreams.md +++ b/ru/api-gateway/concepts/extensions/datastreams.md @@ -24,9 +24,9 @@ x-yc-apigateway-integration: type: cloud_datastreams action: PutRecord - stream_name: /{{ region-id }}/b1v1emj927uvf97q62lt/ett01h3uz7qm8rjv0rsh/pets-stream + stream_name: /{{ region-id }}/b1v1emj927uv********/ett01h3uz7qm********/pets-stream partition_key: '{petId}' - service_account_id: ajeqvh23fi2mfdoq6ba + service_account_id: ajeqvh23fi2******** parameters: - description: petId explode: false diff --git a/ru/api-gateway/concepts/extensions/function-authorizer.md b/ru/api-gateway/concepts/extensions/function-authorizer.md index 585697d75fe..bd79dcf5ef8 100644 --- a/ru/api-gateway/concepts/extensions/function-authorizer.md +++ b/ru/api-gateway/concepts/extensions/function-authorizer.md @@ -51,9 +51,9 @@ components: scheme: basic x-yc-apigateway-authorizer: type: function - function_id: b095c95icnvbuf4v755l + function_id: b095c95icnvb******** tag: "$latest" - service_account_id: ajehfe84hhlaq4n59q1 + service_account_id: ajehfe84hhl******** authorizer_result_ttl_in_seconds: 300 ``` @@ -163,9 +163,9 @@ components: scheme: basic x-yc-apigateway-authorizer: type: function - function_id: b095c95icnvbuf4v755l + function_id: b095c95icnvb******** tag: "$latest" - service_account_id: ajehfe84hhlaq4n59q1 + service_account_id: ajehfe84hhl******** authorizer_result_ttl_in_seconds: 300 authorizer_result_caching_mode: path ``` diff --git a/ru/api-gateway/concepts/extensions/http.md b/ru/api-gateway/concepts/extensions/http.md index 1de9888652a..5df0726abe5 100644 --- a/ru/api-gateway/concepts/extensions/http.md +++ b/ru/api-gateway/concepts/extensions/http.md @@ -26,7 +26,7 @@ x-yc-apigateway-integration: url: https://example.com/backend1 method: POST headers: - Authorization: Basic ZjTqBB3f$IF9gdYAGlMrs2fuINjHsz + Authorization: Basic ZjTqBB3f$IF9gdYAGlMrs2******** query: my_param: myInfo timeouts: diff --git a/ru/api-gateway/concepts/extensions/index.md b/ru/api-gateway/concepts/extensions/index.md index b7072fd2fd0..29c26d34243 100644 --- a/ru/api-gateway/concepts/extensions/index.md +++ b/ru/api-gateway/concepts/extensions/index.md @@ -24,10 +24,10 @@ description: "Расширение x-yc-apigateway позволяет задат ```yaml x-yc-apigateway: - service_account_id: - validator: - cors: - rateLimit: + service_account_id: <идентификатор_сервисного_аккаунта> + validator: + cors: + rateLimit: ``` ## Расширение x-yc-apigateway-integration {#integration} @@ -97,9 +97,9 @@ components: x-yc-apigateway-integrations: BaseGetDefault: type: cloud_functions - function_id: b095c95icnvbuf4v755l + function_id: b095c95icnvb******** tag: "$latest" - service_account_id: ajehfe84hhlaq4n59q1 + service_account_id: ajehfe84hhl******** BaseGetUnimplemented: type: dummy content: diff --git a/ru/api-gateway/concepts/extensions/ymq.md b/ru/api-gateway/concepts/extensions/ymq.md index 2f64cd11a50..7f83f495a7c 100644 --- a/ru/api-gateway/concepts/extensions/ymq.md +++ b/ru/api-gateway/concepts/extensions/ymq.md @@ -25,8 +25,8 @@ x-yc-apigateway-integration: type: cloud_ymq action: SendMessage - queue_url: https://message-queue.{{ api-host }}/b2g2emj937uxo97w65lt/dj6000000003lln607ma/pets-queue - folder_id: b1gmf8vk4dq3paduc4gj + queue_url: https://message-queue.{{ api-host }}/b2g2emj937ux********/dj6000000003********/pets-queue + folder_id: b1gmf8vk4dq******** delay_seconds: 300 - service_account_id: ajea046f05rndh38bfie + service_account_id: ajea046f05rn******** ``` diff --git a/ru/api-gateway/operations/api-gw-delete.md b/ru/api-gateway/operations/api-gw-delete.md index 2cae131326b..159cbff75af 100644 --- a/ru/api-gateway/operations/api-gw-delete.md +++ b/ru/api-gateway/operations/api-gw-delete.md @@ -23,7 +23,7 @@ description: "Следуя данной инструкции, вы сможет yc serverless api-gateway delete --id <идентификатор_API-шлюза> ``` - Где `id` — идентификатор API-шлюза. + Где `--id` — идентификатор API-шлюза. Результат: diff --git a/ru/api-gateway/operations/api-gw-domains.md b/ru/api-gateway/operations/api-gw-domains.md index 908fa9cd3c6..e788cd91934 100644 --- a/ru/api-gateway/operations/api-gw-domains.md +++ b/ru/api-gateway/operations/api-gw-domains.md @@ -17,7 +17,7 @@ 1. Разместите у своего DNS-провайдера или на собственном DNS-сервере CNAME-запись: ``` - <домен> IN CNAME <служебный домен API-шлюза> + <домен> IN CNAME <служебный_домен_API-шлюза> ``` Чтобы узнать служебный домен API-шлюза: diff --git a/ru/api-gateway/operations/api-gw-update.md b/ru/api-gateway/operations/api-gw-update.md index 6031812e894..758eb3c563e 100644 --- a/ru/api-gateway/operations/api-gw-update.md +++ b/ru/api-gateway/operations/api-gw-update.md @@ -132,7 +132,7 @@ description: "Следуя данной инструкции, вы сможет Проверить изменение API-шлюза можно в [консоли управления]({{ link-console-main }}) или с помощью команды [CLI](../../cli/quickstart.md): ``` - yc serverless api-gateway get <имя API-шлюза> + yc serverless api-gateway get <имя_API-шлюза> ``` diff --git a/ru/api-gateway/quickstart/index.md b/ru/api-gateway/quickstart/index.md index 52c013bb685..90db4aca67d 100644 --- a/ru/api-gateway/quickstart/index.md +++ b/ru/api-gateway/quickstart/index.md @@ -79,14 +79,14 @@ description: "В этой инструкции вы создадите и про 1. Скопируйте значение поля **{{ ui-key.yacloud.serverless-functions.gateways.overview.label_domain }}** и сформируйте ссылку вида: `https://<домен>/hello?user=API`. Должна получиться ссылка вида: ``` - https://falrnjna8r5vj88ero6a.apigw.yandexcloud.net/hello?user=API + https://falrnjna8r5v********.apigw.yandexcloud.net/hello?user=API ``` 1. Обратитесь к API-шлюзу с помощью [curl](https://curl.haxx.se), используя одну из команд: ```bash - curl https://falrnjna8r5vj88ero6a.apigw.yandexcloud.net/hello?user=API - curl https://falrnjna8r5vj88ero6a.apigw.yandexcloud.net/hello + curl https://falrnjna8r5v********.apigw.yandexcloud.net/hello?user=API + curl https://falrnjna8r5v********.apigw.yandexcloud.net/hello ``` Результат: @@ -166,10 +166,10 @@ description: "В этой инструкции вы создадите и про entrypoint = "index.handler" memory = "128" execution_timeout = "10" - service_account_id = "<идентификатор сервисного аккаунта>" + service_account_id = "<идентификатор_сервисного_аккаунта>" tags = ["my_tag"] content { - zip_filename = "<путь к ZIP-архиву>" + zip_filename = "<путь_к_ZIP-архиву>" } } ``` @@ -285,8 +285,8 @@ description: "В этой инструкции вы создадите и про type: "integer" x-yc-apigateway-integration: type: cloud_functions - function_id: - service_account_id: + function_id: <идентификатор_функции> + service_account_id: <идентификатор_сервисного_аккаунта> ``` - {{ TF }} @@ -350,8 +350,8 @@ description: "В этой инструкции вы создадите и про type: "integer" x-yc-apigateway-integration: type: cloud_functions - function_id: <идентификатор функции> - service_account_id: <идентификатор сервисного аккаунта> + function_id: <идентификатор_функции> + service_account_id: <идентификатор_сервисного_аккаунта> EOT } ``` @@ -382,7 +382,7 @@ description: "В этой инструкции вы создадите и про После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления]({{ link-console-main }}) или с помощью команд [CLI](../../cli/quickstart.md): ``` - yc serverless api-gateway get <имя API-шлюза> + yc serverless api-gateway get <имя_API-шлюза> ``` {% endlist %} @@ -398,7 +398,7 @@ description: "В этой инструкции вы создадите и про Обратитесь к API-шлюзу: ```bash -curl https://falrnjna8r5vj88ero6a.apigw.yandexcloud.net/numbers +curl https://falrnjna8r5v********.apigw.yandexcloud.net/numbers ``` Результат: diff --git a/ru/api-gateway/tutorials/api-gw-websocket.md b/ru/api-gateway/tutorials/api-gw-websocket.md index 9c44fb52e92..6ed5ae3c640 100644 --- a/ru/api-gateway/tutorials/api-gw-websocket.md +++ b/ru/api-gateway/tutorials/api-gw-websocket.md @@ -85,7 +85,7 @@ description: "Узнайте, как работать с API-шлюзом {{ api Сообщение отправится через установленное соединение в API-шлюз. API-шлюз вызовет интеграцию и отправит ответ — вы увидите его на экране. В ответе будет идентификатор установленного соединения: ```bash > Hello! -< {"connection_id":"<идентификатор соединения>"} +< {"connection_id":"<идентификатор_соединения>"} ``` ## Проверьте работу соединения {#check} @@ -105,18 +105,18 @@ description: "Узнайте, как работать с API-шлюзом {{ api ``` 1. Отправьте сообщение на клиентскую сторону: ```bash - yc serverless api-gateway websocket send <идентификатор соединения> --data Hello! + yc serverless api-gateway websocket send <идентификатор_соединения> --data Hello! ``` 1. Закройте соединение: ```bash - yc serverless api-gateway websocket disconnect <идентификатор соединения> + yc serverless api-gateway websocket disconnect <идентификатор_соединения> ``` 1. Перейдите в окно терминала с установленным соединением. Там должна отобразиться следующая информация: ```bash - wscat -c wss://<идентификатор API-шлюза>.apigw.yandexcloud.net/connections + wscat -c wss://<идентификатор_API-шлюза>.apigw.yandexcloud.net/connections Connected (press CTRL+C to quit) > Hello! - < {"connection_id":"<идентификатор соединения>"} + < {"connection_id":"<идентификатор_соединения>"} < Hello! Disconnected (code: 1000, reason: "") ``` diff --git a/ru/cdn/concepts/secure-tokens.md b/ru/cdn/concepts/secure-tokens.md index 1ac40c6894f..d73693bd3a3 100644 --- a/ru/cdn/concepts/secure-tokens.md +++ b/ru/cdn/concepts/secure-tokens.md @@ -34,9 +34,9 @@ _Подписанная ссылка_ [генерируется](#link-generatio ### Подписанная ссылка с ограничением доступа по IP-адресу {#link-code-ip-access} -{% list tabs %} +{% list tabs group=programming_language %} -- PHP +- PHP {#php} ```php <путь_к_файлу> <секретный_ключ>' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d ='<срок_действия_ссылки><путь_к_файлу> <секретный_ключ>' = '{expires}{path}{ip} {secret_key}' @@ -103,9 +103,9 @@ _Подписанная ссылка_ [генерируется](#link-generatio ### Подписанная ссылка без ограничения доступа по IP-адресу {#link-code-no-ip} -{% list tabs %} +{% list tabs group=programming_language %} -- PHP +- PHP {#php} ```php <путь_к_файлу> <секретный_ключ>' | openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d = '<срок_действия_ссылки><путь_к_файлу> <секретный_ключ>' = '{expires}{path} {secret_key}' diff --git a/ru/certificate-manager/operations/import/cert-create.md b/ru/certificate-manager/operations/import/cert-create.md index ed684e5794d..ae16f0c0e1b 100644 --- a/ru/certificate-manager/operations/import/cert-create.md +++ b/ru/certificate-manager/operations/import/cert-create.md @@ -6,9 +6,9 @@ Чтобы создать самоподписанный сертификат с использованием библиотеки `OpenSSL`, выполните команду: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash openssl req -x509 -newkey rsa:4096 -nodes \ @@ -18,7 +18,7 @@ -subj '/CN=example.com' ``` -- PowerShell +- PowerShell {#powershell} ```PowerShell openssl req -x509 -newkey rsa:4096 -nodes ` diff --git a/ru/cli/operations/install-cli.md b/ru/cli/operations/install-cli.md index e157704d4ba..16a45d3d995 100644 --- a/ru/cli/operations/install-cli.md +++ b/ru/cli/operations/install-cli.md @@ -14,9 +14,9 @@ Для использования CLI в скриптах можно использовать флаги для неинтерактивной установки: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду: diff --git a/ru/compute/concepts/instance-groups/specification.md b/ru/compute/concepts/instance-groups/specification.md index 9db3a292bb5..558d2748988 100644 --- a/ru/compute/concepts/instance-groups/specification.md +++ b/ru/compute/concepts/instance-groups/specification.md @@ -110,9 +110,9 @@ service_account_id: ajefnb8427bh******** * Объекты (JSON), структуры `message` и поля типа `map` (Protobuf) преобразуются в словарные объекты YAML (пары «ключ — значение»). Ключи объектов и названия полей преобразуются из `lowerCamelCase` и `CamelCase` в `snake_case`. - {% list tabs %} + {% list tabs group=data_format %} - - JSON + - JSON {#json} ```json "targetGroupSpec": { @@ -125,7 +125,7 @@ service_account_id: ajefnb8427bh******** } ``` - - Protobuf + - Protobuf {#protobuf} ```protobuf message TargetGroupSpec { @@ -135,7 +135,7 @@ service_account_id: ajefnb8427bh******** } ``` - - YAML + - YAML {#yaml} ```yaml target_group_spec: @@ -150,9 +150,9 @@ service_account_id: ajefnb8427bh******** * Массивы (JSON) и поля типа `repeated` (Protobuf) преобразуются в списки YAML. - {% list tabs %} + {% list tabs group=data_format %} - - JSON + - JSON {#json} ```json "variables": [ @@ -167,7 +167,7 @@ service_account_id: ajefnb8427bh******** ] ``` - - Protobuf + - Protobuf {#protobuf} ```protobuf message Variable { @@ -178,7 +178,7 @@ service_account_id: ajefnb8427bh******** repeated Variable variables = 1; ``` - - YAML + - YAML {#yaml} ```yaml variables: @@ -192,9 +192,9 @@ service_account_id: ajefnb8427bh******** * Структуры типа `enum` (Protobuf) преобразуются в скалярные значения YAML — строки, соответствующие названиям полей в Protobuf. - {% list tabs %} + {% list tabs group=data_format %} - - Protobuf + - Protobuf {#protobuf} ```protobuf message AttachedDiskSpec { @@ -207,7 +207,7 @@ service_account_id: ajefnb8427bh******** } ``` - - YAML + - YAML {#yaml} ```yaml attached_disk_spec: diff --git a/ru/compute/operations/vm-control/vm-reset-password.md b/ru/compute/operations/vm-control/vm-reset-password.md index 83c961b0e0a..21b31797603 100644 --- a/ru/compute/operations/vm-control/vm-reset-password.md +++ b/ru/compute/operations/vm-control/vm-reset-password.md @@ -13,13 +13,13 @@ description: "Следуя данной инструкции, вы сможет Чтобы сбросить пароль: -{% list tabs %} +{% list tabs group=programming_language %} -- Консоль управления +- Консоль управления {#console} {% include [vm-reset-password-windows-console](../../../_includes/compute/vm-reset-password-windows-console.md) %} -- PowerShell +- PowerShell {#powershell} 1. Запустите PowerShell от имени администратора. 1. Установите модуль для сброса пароля (один раз): diff --git a/ru/compute/operations/vm-guest-agent/check.md b/ru/compute/operations/vm-guest-agent/check.md index 7e7fba24016..50420df9114 100644 --- a/ru/compute/operations/vm-guest-agent/check.md +++ b/ru/compute/operations/vm-guest-agent/check.md @@ -10,9 +10,9 @@ description: "Из статьи вы узнаете, как проверить 1. [Подключитесь к ВМ по RDP](../vm-connect/rdp.md). 1. Проверьте, что агент установлен и запущен как служба `yc-guest-agent`: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} ```powershell Get-Service "yc-guest-agent" @@ -43,9 +43,9 @@ description: "Из статьи вы узнаете, как проверить 1. [Подключитесь к ВМ по RDP](../vm-connect/rdp.md). 1. Проверьте, что обновление агента корректно настроено и работает: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} 1. Проверьте, что задание по обновлению агента запущено: diff --git a/ru/compute/operations/vm-guest-agent/install.md b/ru/compute/operations/vm-guest-agent/install.md index 250256afb19..902fd5994dc 100644 --- a/ru/compute/operations/vm-guest-agent/install.md +++ b/ru/compute/operations/vm-guest-agent/install.md @@ -14,9 +14,9 @@ 1. [Подключитесь к ВМ по RDP](../vm-connect/rdp.md). 1. Скачайте и настройте программу для обновления агента: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} 1. Получите номер последней версии программы: diff --git a/ru/compute/operations/vm-guest-agent/uninstall.md b/ru/compute/operations/vm-guest-agent/uninstall.md index 883675d8b30..a4103cedccc 100644 --- a/ru/compute/operations/vm-guest-agent/uninstall.md +++ b/ru/compute/operations/vm-guest-agent/uninstall.md @@ -3,9 +3,9 @@ 1. [Подключитесь к ВМ по RDP](../vm-connect/rdp.md). 1. Остановите службу Windows Server и удалите агент: - {% list tabs %} + {% list tabs group=programming_language %} - - PowerShell + - PowerShell {#powershell} 1. Остановите службу `yc-guest-agent`: diff --git a/ru/cos/tutorials/serial-port.md b/ru/cos/tutorials/serial-port.md index b3b7a426b63..cc8e4840a7a 100644 --- a/ru/cos/tutorials/serial-port.md +++ b/ru/cos/tutorials/serial-port.md @@ -87,15 +87,15 @@ description: "Следуя данному руководству, вы смож 1. Создайте ВМ с несколькими [дисками](../../compute/concepts/disk.md). 1. Получите идентификатор образа для создания ВМ: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash IMAGE_ID=$(yc compute image get-latest-from-family container-optimized-image --folder-id standard-images --format=json | jq -r .id) ``` - - PowerShell + - PowerShell {#powershell} ```shell script > $IMAGE_ID=(yc compute image get-latest-from-family container-optimized-image --folder-id standard-images --format=json | ConvertFrom-Json).id diff --git a/ru/data-proc/concepts/init-action.md b/ru/data-proc/concepts/init-action.md index 7d778704cd1..cebd9a44e0b 100644 --- a/ru/data-proc/concepts/init-action.md +++ b/ru/data-proc/concepts/init-action.md @@ -69,15 +69,15 @@ fi Одной из причин ошибок скриптов инициализации может быть несовместимость формата. Так как среда выполнения скрипта — Linux (Ubuntu), то скрипты, подготовленные в Windows, могут выполниться с ошибкой `^M: bad interpreter` из-за использования символа переноса строки `CR/LF` (в Linux – `LF`). Для исправления выполните команду: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash sed -i -e 's/\r$//' <имя_файла_скрипта> ``` -- PowerShell +- PowerShell {#powershell} ```powershell $file = "<имя_файла_скрипта>"; $text = [IO.File]::ReadAllText($file) -replace "`r`n", "`n"; [IO.File]::WriteAllText($file, $text) diff --git a/ru/data-streams/operations/aws-sdk/create.md b/ru/data-streams/operations/aws-sdk/create.md index 3d26b90e3fe..bd42398b4c7 100644 --- a/ru/data-streams/operations/aws-sdk/create.md +++ b/ru/data-streams/operations/aws-sdk/create.md @@ -5,9 +5,9 @@ description: "Следуя данной инструкции, вы сможет # Создание потока данных в AWS SDK -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} Для создания потока данных используется метод `create_stream`. При вызове этого метода необходимо указать следующие параметры: * Имя создаваемого потока данных, например `example-stream`. diff --git a/ru/data-streams/operations/aws-sdk/delete.md b/ru/data-streams/operations/aws-sdk/delete.md index f89c8d8bcad..44aa965166c 100644 --- a/ru/data-streams/operations/aws-sdk/delete.md +++ b/ru/data-streams/operations/aws-sdk/delete.md @@ -5,9 +5,9 @@ description: "Следуя данной инструкции, вы сможет # Удаление потока данных в AWS SDK -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} Для удаления [потока данных](../../concepts/glossary.md#stream-concepts) используется метод `delete_stream`. При вызове этого метода необходимо указать следующие параметры: * Имя удаляемого потока данных, например `example-stream`. diff --git a/ru/data-streams/operations/aws-sdk/get-records.md b/ru/data-streams/operations/aws-sdk/get-records.md index 4f0409b35a2..f275857c6c6 100644 --- a/ru/data-streams/operations/aws-sdk/get-records.md +++ b/ru/data-streams/operations/aws-sdk/get-records.md @@ -5,9 +5,9 @@ description: "Следуя данной инструкции, вы сможет # Чтение данных из потока в AWS SDK -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} Для чтения записей из потока данных используется пара методов: `get_shard_iterator` и `get_record/get_records`. При вызове этого метода необходимо указать следующие параметры: * Имя потока данных, например `example-stream`. diff --git a/ru/data-streams/operations/aws-sdk/prepare.md b/ru/data-streams/operations/aws-sdk/prepare.md index 9463630ec37..ae92dd4eec0 100644 --- a/ru/data-streams/operations/aws-sdk/prepare.md +++ b/ru/data-streams/operations/aws-sdk/prepare.md @@ -7,9 +7,9 @@ description: "Следуя данной инструкции, вы сможет Настройте окружение для вашего языка программирования: -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} 1. Скачайте и установите [Python](https://www.python.org/downloads/) версии 3.6 или выше. 1. Установите библиотеку Boto3: diff --git a/ru/data-streams/operations/aws-sdk/send.md b/ru/data-streams/operations/aws-sdk/send.md index a8195ef3bcf..e71c07d7e22 100644 --- a/ru/data-streams/operations/aws-sdk/send.md +++ b/ru/data-streams/operations/aws-sdk/send.md @@ -7,9 +7,9 @@ description: "Из статьи вы узнаете, как отправить {% include [trigger](../../../_includes/data-streams/trigger.md) %} -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} Для отправки данных в поток данных используется метод `put_record/put_records`. При вызове этого метода необходимо указать следующие параметры: * Имя потока данных, например `example-stream`. diff --git a/ru/data-transfer/concepts/data-transformation.md b/ru/data-transfer/concepts/data-transformation.md index 29bd30666f4..ef05631318c 100644 --- a/ru/data-transfer/concepts/data-transformation.md +++ b/ru/data-transfer/concepts/data-transformation.md @@ -70,7 +70,7 @@ 1. С помощью списков включенных и исключенных таблиц задайте перечень таблиц, в которых будут фильтроваться данные. 1. Задайте критерий для фильтрации. В качестве критерия можно задавать операции сравнения числовых, строковых и булевых значений и сравнение с NULL, а также проверку вхождения подстроки в строку. -Критерий фильтрации задается набором правил, разделенных ключевым словом `AND`. Допустимы операции `>`, `>=`, `<`, `<=`, `==`, `!=`, `~` (вхождение подстроки в строку), `!~` (невхождение подстроки в строку). Все колонки, указанные в фильтре должны быть представлены в фильтруемой таблице. +Критерий фильтрации задается набором правил, разделенных ключевым словом `AND`. Допустимы операции `>`, `>=`, `<`, `<=`, `=`, `!=`, `~` (вхождение подстроки в строку), `!~` (невхождение подстроки в строку). Все колонки, указанные в фильтре должны быть представлены в фильтруемой таблице. Пример строки-фильтра: ``` aid > 0 AND id >= 10 AND f > 1000.1 AND f <= 1000.5 AND d != 3.14 AND i < 0 AND bi >= -9223372036854775808 AND biu <= 9223372036854775807 AND da > 1999-01-04 AND da <= 2000-03-04 AND ts > 2000-01-01T00:00:00 AND c != 'a' AND str ~ 'hello' AND t !~ 'bye-bye' AND nil = NULL AND val != NULL diff --git a/ru/datasphere/concepts/data-proc-template.md b/ru/datasphere/concepts/data-proc-template.md index 1446fde28e8..0059b6988ef 100644 --- a/ru/datasphere/concepts/data-proc-template.md +++ b/ru/datasphere/concepts/data-proc-template.md @@ -28,7 +28,7 @@ Необходимый суммарный объем дисков для разных конфигураций кластеров можно рассчитать по формуле: ``` -<количество хостов {{ dataproc-name }}> × 256 + 128 +<количество_хостов_Data_Proc> × 256 + 128 ``` | Тип кластера | Количество хостов | Объем дисков | diff --git a/ru/datasphere/concepts/data-proc.md b/ru/datasphere/concepts/data-proc.md index c3304d6b77b..cb0c31fb571 100644 --- a/ru/datasphere/concepts/data-proc.md +++ b/ru/datasphere/concepts/data-proc.md @@ -54,12 +54,12 @@ Где: -* `<кластер>` — кластер Data Proc, на котором будут производиться вычисления. Может быть: +* `--cluster` — кластер Data Proc, на котором будут производиться вычисления. Может быть: * Именем кластера, созданного через интерфейс ноутбука. * HTTP-ссылкой на внутренний IP-адрес хоста `masternode`, например `http://10.0.0.8:8998/`. -* `<сессия>` — идентификатор вычислительной сессии. Если параметр пропущен, используется сессия кластера {{ dataproc-name }} по умолчанию. -* `<входящая_переменная>` — переменная, импортированная из {{ ml-platform-name }} в кластер {{ dataproc-name }}. Поддерживаемые типы: `bool`, `int`, `float`, `str`, `pandas.DataFrame` (преобразовывается в Spark DataFrame в кластере). -* `<возвращаемая_переменная>` — переменная, которая будет экспортирована из кластера {{ dataproc-name }} в {{ ml-platform-name }}. Поддерживаемые типы: `bool`, `int`, `float`, `str`, `pandas.DataFrame` (преобразованный Spark DataFrame). +* `--session` — идентификатор вычислительной сессии. Если параметр пропущен, используется сессия кластера {{ dataproc-name }} по умолчанию. +* `--variables` — переменная, импортированная из {{ ml-platform-name }} в кластер {{ dataproc-name }}. Поддерживаемые типы: `bool`, `int`, `float`, `str`, `pandas.DataFrame` (преобразовывается в Spark DataFrame в кластере). +* `--return_variables` — переменная, которая будет экспортирована из кластера {{ dataproc-name }} в {{ ml-platform-name }}. Поддерживаемые типы: `bool`, `int`, `float`, `str`, `pandas.DataFrame` (преобразованный Spark DataFrame). #### Пример использования вычислительных сессий с пользовательскими параметрами {#example-custom-sessions} diff --git a/ru/datasphere/concepts/dataset.md b/ru/datasphere/concepts/dataset.md index 4136e5862d9..59d84747ff4 100644 --- a/ru/datasphere/concepts/dataset.md +++ b/ru/datasphere/concepts/dataset.md @@ -14,7 +14,7 @@ _Датасет в {{ ml-platform-name }}_ — это механизм хран Как и другими ресурсами, датасетами можно [делиться](../operations/data/dataset.md#share) в сообществе, чтобы использовать данные в нескольких проектах. -При активации в проекте диск с датасетом монтируется к хранилищу проекта. Файлы активированного датасета можно читать как локальные файлы хранилища проекта по пути `/home/jupyter/mnt/datasets/<имя датасета>`. +При активации в проекте диск с датасетом монтируется к хранилищу проекта. Файлы активированного датасета можно читать как локальные файлы хранилища проекта по пути `/home/jupyter/mnt/datasets/<имя_датасета>`. Одновременно в проекте может быть активировано до 3 датасетов. Вы можете активировать и деактивировать датасеты проекта прямо во время работы без перезагрузки проекта. Все ограничения {{ ml-platform-name }} см. в разделе [{#T}](limits.md). diff --git a/ru/datasphere/concepts/magic.md b/ru/datasphere/concepts/magic.md index c3f0c190d13..b8143bca60c 100644 --- a/ru/datasphere/concepts/magic.md +++ b/ru/datasphere/concepts/magic.md @@ -28,7 +28,7 @@ * С указанием конфигурации: ``` - #!<имя конфигурации>:bash + #!<имя_конфигурации>:bash ``` > Например, для запуска команд на конфигурации c1.4 укажите `#!c1.4:bash`. @@ -60,7 +60,7 @@ Чтобы указать, что переменная в ячейке используется только для чтения, используйте команду: ``` -#pragma readonly/ro <переменная 1>, <переменная 2> +#pragma readonly/ro <переменная_1>, <переменная_2> ``` Разместить команду необходимо в первых строках ячейки перед кодом, но можно после изменения конфигурации (`#!c1.4`, `#!g1.1`). diff --git a/ru/datasphere/concepts/preinstalled-packages.md b/ru/datasphere/concepts/preinstalled-packages.md index c466cae6acf..968545694ac 100644 --- a/ru/datasphere/concepts/preinstalled-packages.md +++ b/ru/datasphere/concepts/preinstalled-packages.md @@ -32,7 +32,7 @@ Чтобы обновить библиотеку до последней версии, выполните в ячейке ноутбука команду: ```js -%pip install <название библиотеки> -U +%pip install <название_библиотеки> -U ``` Например, для обновления TensorFlow до последней версии нужно выполнить команду: @@ -44,7 +44,7 @@ Чтобы обновить библиотеку до конкретной версии, выполните в ячейке ноутбука команду: ```js -%pip install <название библиотеки>==<версия> +%pip install <название_библиотеки>==<версия> ``` Например: diff --git a/ru/datasphere/operations/data/dataset.md b/ru/datasphere/operations/data/dataset.md index c0cef0bb551..9093056b7d1 100644 --- a/ru/datasphere/operations/data/dataset.md +++ b/ru/datasphere/operations/data/dataset.md @@ -26,9 +26,9 @@ Этот способ также подойдет для создания датасета с данными из бакета [{{ objstorage-full-name }}](../../../storage/) или другого объектного хранилища, подключенного к хранилищу проекта с помощью [коннектора S3](connect-to-s3.md). -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Чтобы создать датасет `<имя_датасета>`, инициализируйте его и скопируйте файлы каталога `<имя_исходного_каталога>`: @@ -37,7 +37,7 @@ #pragma dataset init <имя_датасета> --size 1Gb set -e - cp -r <имя исходного каталога> /home/jupyter/mnt/datasets/<имя_датасета> + cp -r <имя_исходного_каталога> /home/jupyter/mnt/datasets/<имя_датасета> ``` {% endlist %} @@ -46,9 +46,9 @@ Чтобы создать датасет `<имя_датасета>` из архива [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html), выполните код в ячейке: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash #!:bash @@ -61,7 +61,7 @@ rm -rf cifar-10-python.tar.gz ``` -- Python 3 +- Python 3 {#python} ```python #pragma dataset init <имя_датасета> --size 1Gb @@ -106,7 +106,7 @@ import boto3 S3_CREDS = { - "aws_access_key_id": os.environ['<секрет_с_ID_ключа_доступа>'], + "aws_access_key_id": os.environ['<секрет_с_идентификатором_ключа_доступа>'], "aws_secret_access_key": os.environ['<секрет_с_секретным_ключом>'] } bucket_name = "<имя_бакета>" @@ -171,13 +171,13 @@ import gdown - gdrive_folder_id = '' + gdrive_folder_id = '<идентификатор_папки_Google_Drive>' dst_path = '/home/jupyter/mnt/datasets/<имя_датасета>/' gdown.download_folder(id=gdrive_folder_id, output=dst_path, use_cookies=False) ``` - Где `gdrive_folder_id` — идентификатор папки Google Drive, который содержится в адресе после `https://drive.google.com/drive/folders/`. Например, в URL `https://drive.google.com/drive/folders/exampleId` идентификатор папки — `exampleId`. + Где `<идентификатор_папки_Google_Drive>` — идентификатор папки Google Drive, который содержится в адресе после `https://drive.google.com/drive/folders/`. Например, в URL `https://drive.google.com/drive/folders/exampleId` идентификатор папки — `exampleId`. {% endlist %} diff --git a/ru/datasphere/operations/data/secrets.md b/ru/datasphere/operations/data/secrets.md index 648b1e1c7c9..ec89f6a64cd 100644 --- a/ru/datasphere/operations/data/secrets.md +++ b/ru/datasphere/operations/data/secrets.md @@ -30,9 +30,9 @@ Созданный секрет можно использовать в ячейках проекта как переменные окружения. -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} ```python import os @@ -40,7 +40,7 @@ os.environ['<имя_секрета>'] # Обратиться к секрету <имя_секрета> из переменных окружения ``` -- bash +- Bash {#bash} ```bash #!:bash diff --git a/ru/datasphere/operations/deploy/node-api.md b/ru/datasphere/operations/deploy/node-api.md index e8a2800cd6a..a2fee82b03d 100644 --- a/ru/datasphere/operations/deploy/node-api.md +++ b/ru/datasphere/operations/deploy/node-api.md @@ -21,56 +21,60 @@ description: "Следуя данной инструкции, вы сможет {% endnote %} -Для отправки запросов в ноды необходимо иметь роль {{ roles-datasphere-user }} или {{ roles-datasphere-admin }} на каталог, в котором созданы проект и нода. +Для отправки запросов в ноды необходимо иметь роль `{{ roles-datasphere-user }}` или `{{ roles-datasphere-admin }}` на каталог, в котором созданы проект и нода. -## Пример запросов gRPC API +## Пример вызова gRPC API {#grpc-call-example} ```bash -grpcurl -H "Authorization: Bearer " \ +grpcurl -H "Authorization: Bearer " \ -d '{ - "folder_id": "", - "node_id": "", - "input": { } \ + "folder_id": "<идентификатор_каталога>", + "node_id": "<идентификатор_ноды>", + "input": { <входные_переменные> } \ }' \ datasphere.{{ api-host }}:443 yandex.cloud.datasphere.v1.NodeService/Execute ``` -* `` — IAM-токен для аутентификации; -* `` — идентификатор каталога, в котором созданы проект и нода; -* `` — идентификатор ноды; -* `` — объект, в котором ключи соответствуют входным переменным. +Где: + +* `` — IAM-токен для аутентификации. +* `<идентификатор_каталога>` — идентификатор каталога, в котором созданы проект и нода. +* `<идентификатор_ноды` — идентификатор ноды. +* `<входные_переменные>` — объект, в котором ключи соответствуют входным переменным. В успешном ответе будет возвращен объект: ``` { "output": { - + <выходные_переменные> } } ``` -* `output_variables` — объект, в котором ключи соответствуют выходным переменным. +Где `<выходные_переменные>` — объект, в котором ключи соответствуют выходным переменным. -## Пример запросов REST API +## Пример запроса REST API {#rest-query-example} Для отправки REST-запросов можно воспользоваться утилитой [cURL](https://curl.se). ```bash -curl https://datasphere.{{ api-host }}/datasphere/v1/nodes/:execute \ +curl https://datasphere.{{ api-host }}/datasphere/v1/nodes/<идентификатор_ноды>:execute \ -X POST \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " -d '{ - "folder_id": "", - "node_id": "", - "input": { } + "folder_id": "<идентификатор_каталога>", + "node_id": "<идентификатор_ноды>", + "input": { <входные_переменные> } }' ``` -* `` — IAM-токен для аутентификации; -* `` — идентификатор каталога, в котором созданы проект и нода; -* `` — идентификатор ноды; -* `` — объект, в котором ключи соответствуют входным переменным. +Где: + +* `` — IAM-токен для аутентификации. +* `<идентификатор_каталога>` — идентификатор каталога, в котором созданы проект и нода. +* `<идентификатор_ноды>` — идентификатор ноды. +* `<входные_переменные>` — объект, в котором ключи соответствуют входным переменным. В ответ возвращается JSON-объект с выходными переменными. \ No newline at end of file diff --git a/ru/datasphere/operations/deploy/node-create.md b/ru/datasphere/operations/deploy/node-create.md index 743ed522c68..188c15d5f6a 100644 --- a/ru/datasphere/operations/deploy/node-create.md +++ b/ru/datasphere/operations/deploy/node-create.md @@ -303,7 +303,7 @@ 1. Запустите ячейку. Результатом выполнения кода должна быть строка вида: ```json - {'generated_value': <число от 1 до 10>} + {'generated_value': <число_от_1_до_10>} ``` При этом в проекте будет автоматически создана контрольная точка. diff --git a/ru/datasphere/operations/deploy/node-customization.md b/ru/datasphere/operations/deploy/node-customization.md index f62f2bbdeba..f096da05c70 100644 --- a/ru/datasphere/operations/deploy/node-customization.md +++ b/ru/datasphere/operations/deploy/node-customization.md @@ -5,22 +5,22 @@ 1. [Создайте секрет](../data/secrets.md#create) с паролем для вашего реестра контейнеров. Если вы используете реестр {{ container-registry-full-name }}, [аутентифицируйтесь по авторизованному ключу](../../../container-registry/operations/authentication.md#sa-json) для [сервисного аккаунта](../../../iam/concepts/users/service-accounts.md), который имеет [необходимые роли](../../../container-registry/security/index.md) и указан в [настройках проекта](../projects/update.md). Чтобы сгенерировать авторизованный ключ, в CLI выполните команду: ``` - yc iam key create --service-account-id -o key.json + yc iam key create --service-account-id <идентификатор_сервисного_аккаунта> -o key.json ``` - Паролем для сервисного аккаунта `` будет содержимое файла `key.json`. + Паролем для сервисного аккаунта `<идентификатор_сервисного_аккаунта>` будет содержимое файла `key.json`. 1. [Загрузите](../../../container-registry/operations/docker-image/docker-image-push.md) образ в реестр контейнеров. Для этого запустите ячейку с кодом: ``` - #!:docker-publish : {{ registry }}/: + #!:docker-publish <имя_образа>:<тег_образа> {{ registry }}/<адрес_реестра>:<тег> ``` - * `` — имя образа в {{ ml-platform-name }}; - * `` — тег образа в {{ ml-platform-name }}; - * `` — адрес реестра {{ container-registry-name }}; - * `` — [тег](../../../container-registry/concepts/docker-image.md#version) образа. + * `<имя_образа>` — имя образа в {{ ml-platform-name }}; + * `<тег_образа>` — тег образа в {{ ml-platform-name }}; + * `<адрес_реестра>` — адрес реестра {{ container-registry-name }}; + * `<тег>` — [тег](../../../container-registry/concepts/docker-image.md#version) образа. В процессе загрузки укажите имя пользователя и выберите секрет с паролем. При авторизации в {{ container-registry-name }} в качестве имени пользователя введите тип токена — `json_key`, вместо пароля укажите секрет. -1. В форме создания [ноды](../../concepts/deploy/index.md#node) укажите путь к образу в формате `{{ registry }}/:`. \ No newline at end of file +1. В форме создания [ноды](../../concepts/deploy/index.md#node) укажите путь к образу в формате `{{ registry }}/<адрес_реестра>:`. \ No newline at end of file diff --git a/ru/datasphere/operations/user-images-cell.md b/ru/datasphere/operations/user-images-cell.md index c26e30d6fab..4fe9c40ec14 100644 --- a/ru/datasphere/operations/user-images-cell.md +++ b/ru/datasphere/operations/user-images-cell.md @@ -11,13 +11,13 @@ Чтобы запустить контейнер, напишите в ячейке ноутбука команду: ```bash -#!:docker-run <Имя образа> +#!:docker-run <имя_образа> ``` Если требуется увеличить вычислительные ресурсы, укажите префикс [конфигурации](../concepts/configurations.md), например: ```bash -#!g1.1:docker-run <Имя образа> +#!g1.1:docker-run <имя_образа> ``` Например, публичный образ предоставляет утилиты для Go. Чтобы выполнить команду `go version` в этом образе, запустите ячейку со следующим кодом: diff --git a/ru/dns/operations/resource-record-create.md b/ru/dns/operations/resource-record-create.md index f3303d69ece..481afae3fc5 100644 --- a/ru/dns/operations/resource-record-create.md +++ b/ru/dns/operations/resource-record-create.md @@ -132,4 +132,4 @@ description: "Следуя данной инструкции, вы сможет При создании ресурсных AAAA-записей сервис автоматически производит нормализацию адресов IPv6, заменяя пропуски между `:` нулями, например: `2001:db8::` → `2001:db8:0:0:0:0:0:0`. -Сервис поддерживает одну [TXT-запись](../concepts/resource-record.md#txt). Значение ресурсной TXT-записи не может содержать больше 255 знаков в одной строке и 1024 знака всего. Если запись содержит больше знаков, разделите её на несколько значений. +Сервис поддерживает одну [TXT-запись](../concepts/resource-record.md#txt). Значение ресурсной TXT-записи не может содержать больше 255 знаков в одной строке и 1024 знака всего. Если запись содержит больше знаков, разделите ее на несколько значений. diff --git a/ru/forms/blocks-ref/payment.md b/ru/forms/blocks-ref/payment.md index 23ae88e87cb..5fd81067eb2 100644 --- a/ru/forms/blocks-ref/payment.md +++ b/ru/forms/blocks-ref/payment.md @@ -29,6 +29,6 @@ Включите эту опцию, чтобы пользователь не мог изменить сумму платежа. -### Кошелёк получателя {#param-wallet-in} +### Кошелек получателя {#param-wallet-in} Укажите номер кошелька ЮMoney, на который вы будете принимать платежи. \ No newline at end of file diff --git a/ru/functions/operations/database-connection.md b/ru/functions/operations/database-connection.md index 109b676788b..5ad9b7476ee 100644 --- a/ru/functions/operations/database-connection.md +++ b/ru/functions/operations/database-connection.md @@ -41,9 +41,9 @@ ### {{ mpg-name }} -{% list tabs %} +{% list tabs group=programming_language %} -- Node.js +- Node.js {#node} **index.js** @@ -77,7 +77,7 @@ } ``` -- Python +- Python {#python} ```py import psycopg2 @@ -97,7 +97,7 @@ return record ``` -- Go +- Go {#go} ```golang package main @@ -163,9 +163,9 @@ ### {{ mch-name }} -{% list tabs %} +{% list tabs group=programming_language %} -- Node.js +- Node.js {#node} ```js module.exports.handler = async function (event, context) { @@ -212,7 +212,7 @@ }; ``` -- Python +- Python {#python} ```py import requests @@ -240,7 +240,7 @@ } ``` -- Go +- Go {#go} ```golang package main diff --git a/ru/functions/operations/function-sa.md b/ru/functions/operations/function-sa.md index b27879594f4..331f6001d9a 100644 --- a/ru/functions/operations/function-sa.md +++ b/ru/functions/operations/function-sa.md @@ -11,9 +11,9 @@ 1. Выберите язык программирования и создайте версию функции: - {% list tabs %} + {% list tabs group=programming_language %} - - Node.js + - Node.js {#node} 1. Подготовьте ZIP-архив с кодом функции: 1. Сохраните следующий код в файл с названием `index.js`, чтобы получить IAM-токен: * из контекста обработчика. @@ -62,7 +62,7 @@ * точку входа — `index.main`; * сервисный аккаунт, для которого нужно получить IAM-токен. - - Python + - Python {#python} 1. Подготовьте ZIP-архив с кодом функции: 1. Сохраните следующий код в файл с названием `index.py`, чтобы получить IAM-токен: * из контекста обработчика. diff --git a/ru/functions/operations/function/logs-write.md b/ru/functions/operations/function/logs-write.md index a0c73271d89..36a87292d3f 100644 --- a/ru/functions/operations/function/logs-write.md +++ b/ru/functions/operations/function/logs-write.md @@ -4,9 +4,9 @@ ## Примеры функций -{% list tabs %} +{% list tabs group=programming_language %} -- Node.js +- Node.js {#node} **package.json** ```json @@ -38,7 +38,7 @@ }; ``` -- Python +- Python {#python} **requirements.txt** ``` @@ -71,7 +71,7 @@ return "Hello, world!" ``` -- Go +- Go {#go} **index.go** ```go @@ -106,7 +106,7 @@ } ``` -- Java +- Java {#java} **pom.xml** ```xml diff --git a/ru/functions/tutorials/alice-skill.md b/ru/functions/tutorials/alice-skill.md index d22906aa283..83132f55bad 100644 --- a/ru/functions/tutorials/alice-skill.md +++ b/ru/functions/tutorials/alice-skill.md @@ -32,14 +32,14 @@ keywords: Для создания [версии](../../functions/concepts/function.md#version) функции вы можете воспользоваться одним из [форматов загрузки кода](../../functions/concepts/function.md#upload). Для примера код будет загружен в формате ZIP-архива. -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} 1. Скачайте с GitHub файл с примером: [parrot.py](https://github.com/yandex-cloud/examples/blob/master/serverless/functions/alice/python/parrot/parrot.py). 1. Создайте ZIP-архив `parrot-py.zip` с файлом `parrot.py`. -- Node.js +- Node.js {#node} 1. Скачайте с GitHub файл с примером: [index.js](https://github.com/yandex-cloud/examples/blob/master/serverless/functions/alice/nodejs/parrot/index.js). 1. Создайте ZIP-архив `parrot-js.zip` с файлом `index.js`. @@ -63,9 +63,9 @@ keywords: Выберите язык программирования и создайте [версию функции](../concepts/function.md#version). -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} 1. В [консоли управления]({{ link-console-main }}) откройте **{{ ui-key.yacloud.iam.folder.dashboard.label_serverless-functions }}** в каталоге, где вы хотите создать версию функции. 1. Выберите функцию, для которой необходимо создать версию. @@ -81,7 +81,7 @@ keywords: * **{{ ui-key.yacloud.serverless-functions.item.editor.field_entry }}**: `parrot.handler`. 1. Нажмите кнопку **{{ ui-key.yacloud.serverless-functions.item.editor.button_deploy-version }}**. -- Node.js +- Node.js {#node} 1. В [консоли управления]({{ link-console-main }}) откройте **{{ sf-name }}** в каталоге, где вы хотите создать версию функции. 1. Выберите функцию, для которой необходимо создать версию. diff --git a/ru/glossary/chat-bot.md b/ru/glossary/chat-bot.md new file mode 100644 index 00000000000..e6b785dbe9a --- /dev/null +++ b/ru/glossary/chat-bot.md @@ -0,0 +1,123 @@ +--- +title: "Чат-бот: примеры использования искусственного интеллекта" +description: "Чат-бот — это виртуальный помощник для решения задач, который может сэкономить время клиентов и сотрудников." +--- + +# Чат-бот с искусственным интеллектом + +Чат-бот или виртуальный консультант — это программа для общения с клиентами, которая помогает им решить задачи разной степени сложности и принести выгоду бизнесу. Например, проконсультировать по действующим тарифам, назначить собеседование, ответить на частые вопросы и решить другие рутинные задачи. Нередко программа имитирует разговор так, будто его ведет человек, а не робот. + +В основе самых современных виртуальных консультантов лежат технологии машинного обучения и искусственного интеллекта. Они распознают намерения пользователя и подбирают ответы, которые, вероятнее всего, хочет получить пользователь. В то же время боты непрерывно обучаются на новых данных, своем опыте и ошибках. Нередко они настроены так, что при возникновении у пользователя трудностей в чат приглашается сотрудник. + +Все это помогает автоматизировать процессы, сэкономить бюджет и время сотрудников, а также дать клиенту быстрый ответ. Например, сервис [HR Messenger](https://hrmessenger.com/) обрабатывает отклики от 160 кандидатов в минуту. На это понадобилось бы как минимум девять сотрудников. Облачная платформа {{ yandex-cloud }} позволяет чат-боту работать без сбоев, [экономя 70% бюджета](/cases/hrmessenger) на подбор персонала. + +## История развития чат-ботов {#history} + +Вопросы искусственного интеллекта обсуждались еще с прошлого века. Новый толчок им дала статья Алана Тьюринга «[Вычислительная техника и интеллект](http://www.etheroneph.com/files/can_the_machine_think.pdf)», опубликованная в 1950 году. Ученый предложил оценивать искусственный интеллект по тому, насколько трудно отличить его от человеческого. По мнению Тьюринга, если человек в переписке не сможет понять, что это машина, то это идеальный искусственный интеллект. + +В 1966 году появилась программа Джозефа Вейзенбаума [ЭЛИЗА](https://ru.wikipedia.org/wiki/Элиза_(программа)), которая имитировала разговор с психотерапевтом. Программа поддерживала диалог фразами «Пожалуйста, продолжайте», реагировала на ключевые слова и задавала вопросы, вроде «Расскажи мне больше о своей семье». Похожие методы легли в основу современных чат-ботов. + +В 2010-е годы широкую популярность приобрели мессенджеры и социальные сети, которые стали удобной площадкой для размещения виртуальных собеседников. Одними из первых компаний, использующих чат-боты, стали крупные банки. Сегодня ими пользуется в том числе и малый бизнес. + +2022 год стал одним из самых громких в истории развития искусственного интеллекта. Компания OpenAI представила чат-бот [ChatGPT](https://openai.com/chatgpt), который нашел применение во всех возможных сферах деятельности человека. Незадолго до этого также произошел громкий скандал, когда инженер по программному обеспечению компании Google Блейк Леймон заявил, что у нейросети LaMDA есть сознание. Многие сочли это возмутительным, и Блейк был отстранен от работы. + +## Как работает виртуальный ассистент с искусственным интеллектом {#how-work} + +Обычные чат-боты действуют достаточно прямолинейно: ищут в сообщении ключевые слова и выдают заранее подготовленные ответы либо задают уточняющие вопросы. В случае с искусственным интеллектом схема сложнее: + +1. Бот получает запрос и загружает контекст диалога из базы данных. + +1. Полученная информация позволяет определить намерение пользователя с помощью [NLU](https://ru.wikipedia.org/wiki/Понимание_естественного_языка) (Natural-language understanding, понимание естественного языка). + +1. Система ищет информацию, наиболее точно удовлетворяющую запросу. + +1. Если это запрограммировано, то выполняются заданные скрипты и вызываются внешние информационные системы. + +1. Генерируется ответ с помощью множества подстановок и функций, позволяющих правильно писать на естественном языке. + +1. Диалог отправляется в базу данных для самообучения и последующего использования. + +1. Пользователь получает ответ. + +## Типы чат-ботов {#types} + +Благодаря гибкости нейросетей и технологиям машинного обучения чат-ботам можно найти множество применений, например: + +* **Информационные:** могут отвечать на вопросы о погоде, новостях, расписании событий и другом. Призваны упростить взаимодействие пользователя с сайтом или мобильным приложением или сделать его более интерактивным. + +* **Торговые:** предоставляют информацию о ценах, скидках, помогают выбрать товар и проконсультировать по созданию заказа. Используются в электронной коммерции. + +* **Чат-боты службы поддержки:** круглосуточно предоставляют информацию по услугам компании и помогают решить несложные проблемы. Такие чат-боты настроены на часто задаваемые вопросы и могут решить до половины всех задач, с которыми обращаются клиенты. + +* **Рекрутинговые:** позволяют на раннем этапе оценить способности кандидатов, провести отбор, назначить интервью, разослать приглашения или сделать обзвоны. Полезны любым компаниям с большим штатом сотрудников. + +* **Медицинские:** помогают записаться на прием, получить медицинскую информацию, проверить результаты анализов и другое. Согласно [исследованиям 2019 года](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6704417/), 67% опрошенных обратились бы к такому боту, но многие также отказались доверить машине вопросы своего здоровья. + +* **Развлекательные:** могут рассказывать шутки, анекдоты, использоваться в качестве развивающих игрушек для детей. Например, кукла Hello Barbie, которая подключена к интернету и может общаться с детьми на простые темы. + +## Создание чат-бота {#create} + +Процесс создания бота можно поделить на несколько этапов: + +1. **Продумывание концепции и сбор информации.** + + Сначала нужно продумать общую идею: будет ли бот просто предоставлять информацию или сможет самостоятельно решать многие задачи пользователей. Предполагается, что перед созданием виртуального ассистента у вас уже есть такая информация, как целевая аудитория, ее интересы, часто задаваемые вопросы и т. д. + + Можно воспользоваться данными технической поддержки, отдела работы с клиентами и других отделов, чтобы выписать все возможные потребности пользователей. От этого напрямую зависит полезность бота: будут ли люди пользоваться его ответами или предпочтут общаться с оператором. + +1. **Составление структуры диалога.** + + Прежде чем приступать к разработке чат-бота, требуется продумать для него структуру диалога, позволяющую как можно точнее выяснить причину обращения и помочь клиенту без участия сотрудника. Пример структуры торгового чат-бота без искусственного интеллекта: + + * Стартовые вопросы — на этапе приветствия можно добавить кнопки, которые позволят клиенту выбрать примерную причину обращения. Например, вопросы по доставке, отмена заказа, возврат и обмен товара, технические проблемы и другое. + * Блоки с ключевыми словами — алгоритмы, которые извлекают из сообщения пользователя определенные слова и выдают заранее заготовленные ответы. + * Уточняющие вопросы, например, фамилия, номер заказа и другая информация для обращения в базу данных. + * Конец диалога — условия для завершения диалога с чат-ботом или переключения на сотрудника. Например, если пользователь благодарит и прощается, ключевых слов в сообщении нет или пользователь сам требует оператора. + +1. **Искусственный интеллект и машинное обучение.** + + Для более продвинутых ботов вы можете использовать искусственный интеллект, который позволяет поддерживать диалог с пользователем, не опираясь на ключевые слова. Такой виртуальный ассистент генерирует ответы с помощью нейросети или эвристических методов. + + Подобные боты также включают в себя технологии машинного обучения, которые позволяют им использовать огромные объемы данных, полученных в том числе из диалогов с пользователями. Алгоритмы анализируют данные, прогнозируют успешность своих ответов и со временем ставятся «умнее». + + Это незаменимо в юриспруденции, образовании и других областях, где требуется индивидуальный подход, а также для крупных компаний, предоставляющих широкий спектр услуг. + +1. **Способ разработки и технологии для интеграции.** + + Далее следует определить, где виртуальный ассистент будет работать. Можно разместить его на сайте компании, в мессенджере или в социальных сетях. Инструменты для разработки виртуальных помощников сегодня предоставляет почти каждая крупная площадка. Например, ВКонтакте, Telegram и другие. + + Сегодня вы можете создать бота, даже если у вас нет своих программистов. Популярность виртуальных помощников привела на рынок многочисленные сервисы для их создания. Также можно воспользоваться онлайн-конструкторами, которые не требуют от пользователя навыков программирования. Например, Flow XO, Fasttrack, Chatforma и другие. + +1. **Тестирование.** + + Чем сложнее бот, тем выше вероятность ошибок. К примеру, голосовые боты могут неправильно распознавать слова, а текстовые нуждаются в дополнительных настройках, чтобы их ответы никого не обидели и не посоветовали нечто вредное. + + В случае с голосовыми ботами тестировщик ищет в логах момент, когда все пошло не по плану, и решает, что с этим делать. Например, слово «доставлен» созвучно с «до ставен», поэтому для логики торгового бота уместно будет сделать их синонимами. + + Тем временем у текстовых ботов бывают проблемы с этичностью ответов, грамотностью, выдачей списков и таблиц, слишком длинных ответов и многим другим. Нужно проверить все сценарии взаимодействия с ботом до того, как клиент столкнется с неудобствами и напишет негативный отзыв о компании. + + Однако некоторые ошибки исправить не получится. Например, [галлюцинации искуственного интеллекта](https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)), когда бот пытается выдать выдуманную информацию за доказанный факт. Феномен не до конца изучен, и разработчики не могут избавиться от него полностью. + +## Будущее чат-ботов {#future} + +Популярность чат-ботов с каждым годом растет, и нет никаких предпосылок, что это изменится в скором будущем. Рассмотрим статистику по использованию чат-ботов на 2023 год: + +* 62% клиентов [согласились бы](https://www.tidio.com/blog/chatbot-statistics/) разговаривать с чат-ботом, а 38% предпочли бы дождаться оператора. +* 19% компаний уже используют чат-ботов, а 62% планируют их внедрить. +* 74% владельцев чат-ботов удовлетворены их работой, 22% высказались нейтрально и лишь 4% имели негативный опыт. +* На 67% в среднем [увеличились](https://thrivemyway.com/chatbot-statistics/) продажи у лидирующих компаний, которые внедрили чат-ботов. +* В среднем чат-боты генерируют 35–40% полезных откликов. + +По мнению экспертов, если 2-3 года назад рынок виртуальных помощников стоил около 2 млрд $, то в 2024 году он превзойдет отметку в 15 млрд $. Ожидается, что чат-боты также станут гораздо умнее. Например, они смогут перенаправлять клиента на другого бота, более компетентного в какой-то области, а искусственный интеллект и машинное обучение будут использоваться в бо́льших объемах. + +Многие опасаются, что боты могут вытеснить людей из этих профессий. До настоящих консультантов они пока не дотягивают, но за счет стремительного развития технологий все может быстро измениться. Ожидается, что первыми боты заменят сотрудников колл-центров, консультантов по кредитам и страховкам и т. д. + +## Создание чат-бота с помощью технологий {{ yandex-cloud }} {#chat-bot-yc} + +Инструменты {{ yandex-cloud }}, которые помогут вам создать своего чат-бота, воспользоваться готовым или дообучить его: + +* [Создание чат-бота для Slack](../ydb/tutorials/slack-bot-serverless.md) с помощью {{ ydb-full-name }}. +* [Создание навыка Алисы](../functions/tutorials/alice-skill.md) на основе {{ sf-full-name }}. +* [Создание Telegram-бота](../functions/tutorials/telegram-bot-serverless.md) с помощью serverless-технологий. +* [Использование {{ yagpt-full-name }} API](../yandexgpt/quickstart.md) для бизнеса. +* [Дообучение модели {{ yagpt-full-name }} API](../datasphere/tutorials/yagpt-tuning.md) для лучшего понимания специфики ваших задач. diff --git a/ru/glossary/index.md b/ru/glossary/index.md index 92ead4da180..95d5fa02ba5 100644 --- a/ru/glossary/index.md +++ b/ru/glossary/index.md @@ -15,6 +15,10 @@ * [{#T}](end-to-end-analytics.md) * [{#T}](business-analytics.md) +## Искусственный интеллект + +* [{#T}](chat-bot.md) + ## Облачные вычисления и сервера * [{#T}](vm.md) diff --git a/ru/glossary/toc.yaml b/ru/glossary/toc.yaml index 0e1d091dd06..91869f9ece4 100644 --- a/ru/glossary/toc.yaml +++ b/ru/glossary/toc.yaml @@ -21,6 +21,10 @@ items: href: end-to-end-analytics.md - name: Бизнес-аналитика href: business-analytics.md + - name: Искусственный интеллект + items: + - name: Чат-бот + href: chat-bot.md - name: Облачные вычисления и сервера items: - name: Виртуальная машина diff --git a/ru/iam/operations/iam-token/create-for-sa.md b/ru/iam/operations/iam-token/create-for-sa.md index f0a23abfdb4..4c2b6b7c459 100644 --- a/ru/iam/operations/iam-token/create-for-sa.md +++ b/ru/iam/operations/iam-token/create-for-sa.md @@ -51,9 +51,9 @@ yc iam create-token {% endnote %} -{% list tabs %} +{% list tabs group=programming_language %} -- Инструкция +- Инструкция {#instruction} Сгенерируйте части, из которых состоит JWT: * `header` — заголовки JWT в формате Base64Url. @@ -120,7 +120,7 @@ yc iam create-token Если вы генерируете токен с помощью [jwt.io](https://jwt.io), обратите внимание, что в значении ключа вместо `\n` должны быть подставлены переносы строки. -- Python +- Python {#python} Пример создания JWT с использованием [PyJWT](https://github.com/jpadilla/pyjwt/). @@ -155,7 +155,7 @@ yc iam create-token headers={'kid': key_id}) ``` -- Java +- Java {#java} Пример создания JWT с использованием [JJWT](https://github.com/jwtk/jjwt). @@ -200,7 +200,7 @@ yc iam create-token } ``` -- C# +- C# {#csharp} Пример создания JWT с использованием [jose-jwt](https://www.nuget.org/packages/jose-jwt/). @@ -294,7 +294,7 @@ yc iam create-token } ``` -- Go +- Go {#go} Пример создания JWT с использованием [golang-jwt](https://github.com/golang-jwt/jwt): @@ -346,7 +346,7 @@ yc iam create-token } ``` -- Node.js +- Node.js {#node} Пример создания JWT с использованием [node-jose](https://github.com/cisco/node-jose): @@ -376,7 +376,7 @@ yc iam create-token }); ``` -- PHP +- PHP {#php} Пример создания JWT с использованием [PHP JWT Framework](https://github.com/web-token/jwt-framework). @@ -430,7 +430,7 @@ yc iam create-token $token = $serializer->serialize($jws); ``` -- C++ +- C++ {#cpp} Пример создания JWT с использованием [jwt-cpp](https://github.com/Thalhammer/jwt-cpp). @@ -467,7 +467,7 @@ yc iam create-token } ``` -- Ruby +- Ruby {#ruby} Пример создания JWT с использованием [ruby-jwt](https://github.com/jwt/ruby-jwt). @@ -512,9 +512,9 @@ yc iam create-token * Ключ принадлежит сервисному аккаунту. * Подпись верна. -{% list tabs %} +{% list tabs group=programming_language %} -- API +- API {#api} Чтобы получить IAM-токен, воспользуйтесь методом REST API [create](../../api-ref/IamToken/create.md) для ресурса [IamToken](../../api-ref/IamToken/index.md) или вызовом gRPC API [IamTokenService/CreateForServiceAccount](../../api-ref/grpc/iam_token_service.md#CreateForServiceAccount). @@ -529,7 +529,7 @@ yc iam create-token Где `` — токен в формате JWT, полученный на предыдущем шаге. -- Go +- Go {#go} Пример обмена JWT на IAM-токен: diff --git a/ru/kms/operations/asymmetric-encryption.md b/ru/kms/operations/asymmetric-encryption.md index aedd883cc47..dc4d0c0291e 100644 --- a/ru/kms/operations/asymmetric-encryption.md +++ b/ru/kms/operations/asymmetric-encryption.md @@ -82,9 +82,9 @@ description: "Следуя данной инструкции, вы сможет {% include [asymmetric-encryption-message-size-note](../../_includes/kms/a-encryption-message-size-note.md) %} - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} В терминале выполните команду: @@ -107,7 +107,7 @@ description: "Следуя данной инструкции, вы сможет В результате выполнения команды зашифрованное сообщение сохранится в указанном файле в кодировке `base64`. - - Java + - Java {#java} ```java import org.bouncycastle.util.io.pem.PemObject; @@ -163,7 +163,7 @@ description: "Следуя данной инструкции, вы сможет {% include [encrypt-code-legend](../../_includes/kms/encrypt-code-legend.md) %} - - Go + - Go {#go} ```golang import ( @@ -215,7 +215,7 @@ description: "Следуя данной инструкции, вы сможет {% include [encrypt-code-legend](../../_includes/kms/encrypt-code-legend.md) %} - - Python + - Python {#python} ```python from cryptography.hazmat.primitives.asymmetric import rsa, padding diff --git a/ru/kms/operations/signature-verification-cosign.md b/ru/kms/operations/signature-verification-cosign.md index 564381ccdfa..6731d33f56f 100644 --- a/ru/kms/operations/signature-verification-cosign.md +++ b/ru/kms/operations/signature-verification-cosign.md @@ -21,15 +21,15 @@ description: "Следуя данной инструкции, вы сможет 1. Получите [IAM-токен](../../iam/concepts/authorization/iam-token.md) и сохраните его в переменную среды `$YC_IAM_TOKEN`: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash export YC_IAM_TOKEN=$(yc iam create-token) ``` - - PowerShell + - PowerShell {#powershell} ```powershell $env:YC_IAM_TOKEN = $(yc iam create-token) diff --git a/ru/kms/operations/signature-verification.md b/ru/kms/operations/signature-verification.md index 32e4184ada3..75ad494d91a 100644 --- a/ru/kms/operations/signature-verification.md +++ b/ru/kms/operations/signature-verification.md @@ -180,9 +180,9 @@ description: "Следуя данной инструкции, вы сможет 1. Получите хэш файла: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -200,7 +200,7 @@ description: "Следуя данной инструкции, вы сможет * `<путь_к_исходному_файлу>` — путь к файлу, хэш которого нужно получить. * `<путь_к_файлу_с_хэшем>` — путь к файлу, в который будет сохранен хэш. - - PowerShell + - PowerShell {#powershell} Выполните команду: diff --git a/ru/kms/tutorials/encrypt/aws-encryption-sdk.md b/ru/kms/tutorials/encrypt/aws-encryption-sdk.md index a4ff8774bad..bed73717703 100644 --- a/ru/kms/tutorials/encrypt/aws-encryption-sdk.md +++ b/ru/kms/tutorials/encrypt/aws-encryption-sdk.md @@ -8,9 +8,9 @@ Перед началом работы необходимо добавить зависимости. -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Добавьте зависимости с помощью [Apache Maven](https://maven.apache.org/): @@ -28,9 +28,9 @@ Создайте провайдер {{ yandex-cloud }} для AWS Encryption SDK и используйте методы класса [AwsCrypto](https://aws.github.io/aws-encryption-sdk-java/com/amazonaws/encryptionsdk/AwsCrypto.html) для шифрования и расшифрования данных. -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} ```java YcKmsMasterKeyProvider provider = new YcKmsMasterKeyProvider() diff --git a/ru/kms/tutorials/encrypt/google-tink.md b/ru/kms/tutorials/encrypt/google-tink.md index 4d2c036db2c..1ff737e416c 100644 --- a/ru/kms/tutorials/encrypt/google-tink.md +++ b/ru/kms/tutorials/encrypt/google-tink.md @@ -8,9 +8,9 @@ Перед началом работы необходимо добавить зависимости. -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Добавьте зависимости с помощью [Apache Maven](https://maven.apache.org/): @@ -22,7 +22,7 @@ ``` -- Go +- Go {#go} Выполните команду: @@ -43,9 +43,9 @@ * `ciphertext` – шифртекст. * `aad` – [AAD-контекст](../../concepts/symmetric-encryption.md#add-context). -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Создайте [Aead](https://google.github.io/tink/javadoc/tink/1.3.0/index.html?com/google/crypto/tink/Aead.html)-объект и используйте методы encrypt и decrypt для шифрования и расшифрования данных: @@ -66,7 +66,7 @@ byte[] plaintext = aead.decrypt(ciphertext, aad); ``` -- Go +- Go {#go} Создайте [aead](https://pkg.go.dev/github.com/google/tink/go/aead?tab=doc)-объект и используйте методы encrypt и decrypt для шифрования и расшифрования данных: diff --git a/ru/kms/tutorials/encrypt/sdk.md b/ru/kms/tutorials/encrypt/sdk.md index 31ea54a1709..4451603ab45 100644 --- a/ru/kms/tutorials/encrypt/sdk.md +++ b/ru/kms/tutorials/encrypt/sdk.md @@ -8,9 +8,9 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования Перед началом работы необходимо добавить зависимости. -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Добавьте зависимости с помощью [Apache Maven](https://maven.apache.org/): @@ -22,7 +22,7 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования ``` -- Go +- Go {#go} Установите SDK: @@ -41,9 +41,9 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования ### Аутентификация с сервисным аккаунтом, привязанным к виртуальной машине {{ yandex-cloud }} {#vm} -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Аутентифицируйтесь с сервисным аккаунтом, привязанным к [ВМ](../../../glossary/vm.md): @@ -51,7 +51,7 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования CredentialProvider credentialProvider = Auth.computeEngineBuilder().build(); ``` -- Go +- Go {#go} Аутентифицируйтесь с сервисным аккаунтом, привязанным к ВМ: @@ -65,9 +65,9 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования В `key.json` должен содержаться авторизованный ключ сервисного аккаунта. Как создать авторизованный ключ читайте в разделе [{#T}](../../../iam/operations/authorized-key/create.md). -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Аутентифицируйтесь с произвольным сервисным аккаунтом: @@ -76,7 +76,7 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования ``` -- Go +- Go {#go} Аутентифицируйтесь с произвольным сервисным аккаунтом: @@ -95,9 +95,9 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования Переменная `token` — это ваш [OAuth-токен](../../../iam/concepts/authorization/oauth-token.md). -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} Аутентифицируйтесь с аккаунтом на Яндексе: @@ -105,7 +105,7 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования CredentialProvider credentialProvider = Auth.oauthTokenBuilder().build(); ``` -- Go +- Go {#go} Аутентифицируйтесь с аккаунтом на Яндексе: @@ -126,9 +126,9 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования * `ciphertext` – шифртекст. * `aad` – [AAD-контекст](../../concepts/symmetric-encryption.md#add-context). -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} ```Java SymmetricCryptoServiceBlockingStub symmetricCryptoService = ServiceFactory.builder() @@ -160,7 +160,7 @@ SDK {{ yandex-cloud }} наиболее удобен для шифрования ``` -- Go +- Go {#go} ```Go sdk, err := ycsdk.Build(context, ycsdk.Config{ diff --git a/ru/managed-clickhouse/tutorials/insert.md b/ru/managed-clickhouse/tutorials/insert.md index d00bb6c37c8..3f79576c148 100644 --- a/ru/managed-clickhouse/tutorials/insert.md +++ b/ru/managed-clickhouse/tutorials/insert.md @@ -165,9 +165,9 @@ pip3 install protobuf varint pycapnp 1. Создайте файл с описанием схемы: - {% list tabs %} + {% list tabs group=data_format %} - - Cap'n Proto + - Cap'n Proto {#capn} `user.capnp` ``` @@ -181,7 +181,7 @@ pip3 install protobuf varint pycapnp Подробнее о формате файла см. в [документации Cap'n Proto](https://capnproto.org/language.html). - - Protobuf + - Protobuf {#protobuf} `user.proto` ``` @@ -227,9 +227,9 @@ pip3 install protobuf varint pycapnp 1. Создайте файлы с кодом Python: - {% list tabs %} + {% list tabs group=data_format %} - - Cap'n Proto + - Cap'n Proto {#capn} `capnproto-example.py` ```python @@ -295,7 +295,7 @@ pip3 install protobuf varint pycapnp 1. Записывает тестовый набор данных в объект класса User (`def add_user ...`) и добавляет этот объект к битовому потоку ввода-вывода `message`. 1. Вставляет данные из битового потока `message` в таблицу `db1.users`, опираясь на данные класса `User` схемы формата данных `schema-capnproto` в кластере. - - Protobuf + - Protobuf {#protobuf} `protobuf-example.py` ```python @@ -367,15 +367,15 @@ pip3 install protobuf varint pycapnp 1. Запустите подготовленные на [предыдущем этапе](#prepare-scripts) скрипты: - {% list tabs %} + {% list tabs group=data_format %} - - Cap'n Proto + - Cap'n Proto {#capn} ```bash python3 capnproto-example.py ``` - - Protobuf + - Protobuf {#protobuf} ```bash python3 protobuf-example.py @@ -385,9 +385,9 @@ pip3 install protobuf varint pycapnp 1. [Подключитесь к кластеру](../operations/connect.md) и проверьте, что данные были успешно вставлены, выполнив запрос `SELECT`: - {% list tabs %} + {% list tabs group=data_format %} - - Cap'n Proto + - Cap'n Proto {#capn} ```sql SELECT * FROM db1.users; @@ -399,7 +399,7 @@ pip3 install protobuf varint pycapnp └────┴──────┘ ``` - - Protobuf + - Protobuf {#protobuf} ```sql SELECT * FROM db1.users; diff --git a/ru/managed-kubernetes/operations/connect/create-static-conf.md b/ru/managed-kubernetes/operations/connect/create-static-conf.md index b6f356609d9..280872ba8c8 100644 --- a/ru/managed-kubernetes/operations/connect/create-static-conf.md +++ b/ru/managed-kubernetes/operations/connect/create-static-conf.md @@ -55,15 +55,15 @@ 1. Запишите уникальный идентификатор кластера {{ managed-k8s-name }} в переменную: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash CLUSTER_ID=catb3ppsdsh7******** ``` - - PowerShell + - PowerShell {#powershell} ```shell script $CLUSTER_ID = "catb3ppsdsh7********" @@ -75,9 +75,9 @@ Сохраните сертификат кластера {{ managed-k8s-name }} в файл `ca.pem`. С помощью этого сертификата подтверждается подлинность кластера {{ managed-k8s-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду, которая: * Получает информацию о кластере {{ managed-k8s-name }} в формате JSON. @@ -91,7 +91,7 @@ awk '{gsub(/\\n/,"\n")}1' > ca.pem ``` -- PowerShell +- PowerShell {#powershell} 1. Получите подробную информацию о кластере {{ managed-k8s-name }} в формате JSON и сохраните ее в переменную `$CLUSTER`: @@ -183,9 +183,9 @@ Токен необходим для аутентификации объекта `ServiceAccount` в кластере {{ managed-k8s-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду, которая: * Получает информацию о созданном [сервисном аккаунте](../../../iam/concepts/users/service-accounts.md) `admin-user` в формате JSON. @@ -201,7 +201,7 @@ base64 -d) ``` -- PowerShell +- PowerShell {#powershell} 1. Получите токен объекта `ServiceAccount`. Кавычки из содержимого уберутся автоматически: @@ -224,9 +224,9 @@ Получите [IP-адрес](../../../vpc/concepts/address.md) кластера {{ managed-k8s-name }} и добавьте его в переменную `MASTER_ENDPOINT` для дальнейшего использования. -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду, которая: * Получает в формате JSON информацию о кластере {{ managed-k8s-name }} по его уникальному идентификатору. @@ -250,7 +250,7 @@ jq -r .master.endpoints.internal_v4_endpoint) ``` -- PowerShell +- PowerShell {#powershell} Выполните команду для подключения к API кластера {{ managed-k8s-name }} из интернета (вне {{ yandex-cloud }}): @@ -270,9 +270,9 @@ 1. Добавьте сведения о кластере {{ managed-k8s-name }} в файл конфигурации. - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -283,7 +283,7 @@ --kubeconfig=test.kubeconfig ``` - - PowerShell + - PowerShell {#powershell} Выполните команду: @@ -298,9 +298,9 @@ 1. Добавьте информацию о токене для `admin-user` в файл конфигурации. - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -310,7 +310,7 @@ --kubeconfig=test.kubeconfig ``` - - PowerShell + - PowerShell {#powershell} Выполните команду: @@ -324,9 +324,9 @@ 1. Добавьте информацию о контексте в файл конфигурации. - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -337,7 +337,7 @@ --kubeconfig=test.kubeconfig ``` - - PowerShell + - PowerShell {#powershell} Выполните команду: @@ -352,9 +352,9 @@ 1. Используйте созданную конфигурацию для дальнейшей работы. - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} Выполните команду: @@ -363,7 +363,7 @@ --kubeconfig=test.kubeconfig ``` - - PowerShell + - PowerShell {#powershell} Выполните команду: diff --git a/ru/managed-kubernetes/tutorials/container-registry.md b/ru/managed-kubernetes/tutorials/container-registry.md index b90dbb4f4b8..703d10f0017 100644 --- a/ru/managed-kubernetes/tutorials/container-registry.md +++ b/ru/managed-kubernetes/tutorials/container-registry.md @@ -32,15 +32,15 @@ Чтобы создать сервисный аккаунт, от имени которого будут создаваться ресурсы, необходимые кластеру {{ managed-k8s-name }}. 1. Запишите в переменную идентификатор каталога из конфигурации вашего профиля CLI: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash FOLDER_ID=$(yc config get folder-id) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $FOLDER_ID = yc config get folder-id @@ -50,15 +50,15 @@ 1. Создайте сервисный аккаунт: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash yc iam service-account create --name k8s-res-sa-$FOLDER_ID ``` - - PowerShell + - PowerShell {#powershell} ```shell script yc iam service-account create --name k8s-res-sa-$FOLDER_ID @@ -68,15 +68,15 @@ 1. Запишите в переменную идентификатор сервисного аккаунта: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash RES_SA_ID=$(yc iam service-account get --name k8s-res-sa-${FOLDER_ID} --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $RES_SA_ID = (yc iam service-account get --name k8s-res-sa-$FOLDER_ID --format json | ConvertFrom-Json).id @@ -107,15 +107,15 @@ Чтобы создать сервисный аккаунт, от имени которого узлы {{ managed-k8s-name }} будут скачивать из реестра необходимые Docker-образы. 1. Запишите в переменную идентификатор каталога из конфигурации вашего профиля CLI: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash FOLDER_ID=$(yc config get folder-id) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $FOLDER_ID = yc config get folder-id @@ -125,15 +125,15 @@ 1. Создайте сервисный аккаунт: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash yc iam service-account create --name k8s-node-sa-$FOLDER_ID ``` - - PowerShell + - PowerShell {#powershell} ```shell script yc iam service-account create --name k8s-node-sa-$FOLDER_ID @@ -143,15 +143,15 @@ 1. Запишите в переменную идентификатор сервисного аккаунта: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash NODE_SA_ID=$(yc iam service-account get --name k8s-node-sa-${FOLDER_ID} --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $NODE_SA_ID = (yc iam service-account get --name k8s-node-sa-$FOLDER_ID --format json | ConvertFrom-Json).id @@ -206,15 +206,15 @@ yc container registry configure-docker 1. Соберите Docker-образ. 1. Получите идентификатор реестра, [созданного ранее](#registry-create), и запишите его в переменную: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash REGISTRY_ID=$(yc container registry get --name yc-auto-cr --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $REGISTRY_ID = (yc container registry get --name yc-auto-cr --format json | ConvertFrom-Json).id @@ -329,15 +329,15 @@ yc container registry configure-docker 1. Удалите ресурсы {{ container-registry-name }}. 1. Узнайте имя Docker-образа, загруженного в реестр: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash IMAGE_ID=$(yc container image list --format json | jq .[0].id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $IMAGE_ID = (yc container image list --format json | ConvertFrom-Json).id diff --git a/ru/managed-kubernetes/tutorials/filebeat-oss-monitoring.md b/ru/managed-kubernetes/tutorials/filebeat-oss-monitoring.md index 170f848ed61..ea367a13c3d 100644 --- a/ru/managed-kubernetes/tutorials/filebeat-oss-monitoring.md +++ b/ru/managed-kubernetes/tutorials/filebeat-oss-monitoring.md @@ -66,9 +66,9 @@ Убедитесь, что логи кластера {{ managed-k8s-name }} поступают в кластер {{ mos-name }}: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} Выполните команду: @@ -79,7 +79,7 @@ --request GET 'https://<имя_хоста_{{ OS }}_с_ролью_DATA>:{{ port-mos }}/_cat/indices?v' ``` -- {{ OS }} Dashboards +- {{ OS }} Dashboards {#opensearch} 1. Подключитесь к кластеру {{ mos-name }} с помощью [{{ OS }} Dashboards](../../managed-opensearch/operations/connect.md#dashboards). 1. Выберите общий тенант `Global`. diff --git a/ru/managed-kubernetes/tutorials/migration-to-an-availability-zone.md b/ru/managed-kubernetes/tutorials/migration-to-an-availability-zone.md index e15c6351f26..41af749e8d3 100644 --- a/ru/managed-kubernetes/tutorials/migration-to-an-availability-zone.md +++ b/ru/managed-kubernetes/tutorials/migration-to-an-availability-zone.md @@ -18,11 +18,11 @@ Миграция группы узлов зависит от вида рабочей нагрузки в подах: -* [Stateless-нагрузка](#stateless). Работа приложений в подах во время миграции зависит от распределения нагрузки между узлами кластера. Если поды находятся в мигрирующей группе узлов и группах, для которых не меняется зона доступности, приложения продолжают работать. Если поды находятся только в мигрирующей группе, поды и приложения в них придется остановить на короткий срок. +* [Stateless-нагрузка](#stateless) — работа приложений в подах во время миграции зависит от распределения нагрузки между узлами кластера. Если поды находятся в мигрирующей группе узлов и группах, для которых не меняется зона доступности, приложения продолжают работать. Если поды находятся только в мигрирующей группе, поды и приложения в них придется остановить на короткий срок. Примеры stateless-нагрузки: веб-сервер, [Ingress-контроллер](../../application-load-balancer/tools/k8s-ingress-controller/index.md) {{ alb-full-name }}, приложение REST API. -* [Stateful-нагрузка](#stateful) – независимо от распределения нагрузки между узлами кластера поды и приложения придется остановить на короткий срок. +* [Stateful-нагрузка](#stateful) — независимо от распределения нагрузки между узлами кластера поды и приложения придется остановить на короткий срок. Примеры stateful-нагрузки: базы данных, хранилища. diff --git a/ru/managed-kubernetes/tutorials/new-kubernetes-project.md b/ru/managed-kubernetes/tutorials/new-kubernetes-project.md index 8bd05b8adee..e9fd7a36661 100644 --- a/ru/managed-kubernetes/tutorials/new-kubernetes-project.md +++ b/ru/managed-kubernetes/tutorials/new-kubernetes-project.md @@ -79,15 +79,15 @@ Чтобы создать сервисный аккаунт, от имени которого будут создаваться ресурсы, необходимые кластеру {{ managed-k8s-name }}: 1. Запишите в переменную идентификатор каталога из конфигурации вашего профиля {{ yandex-cloud }} CLI: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash FOLDER_ID=$(yc config get folder-id) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $FOLDER_ID = yc config get folder-id @@ -97,15 +97,15 @@ 1. Создайте сервисный аккаунт: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash yc iam service-account create --name k8s-res-sa-$FOLDER_ID ``` - - PowerShell + - PowerShell {#powershell} ```shell script yc iam service-account create --name k8s-res-sa-$FOLDER_ID @@ -115,15 +115,15 @@ 1. Запишите в переменную идентификатор сервисного аккаунта: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash RES_SA_ID=$(yc iam service-account get --name k8s-res-sa-$FOLDER_ID --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $RES_SA_ID = (yc iam service-account get --name k8s-res-sa-$FOLDER_ID --format json | ConvertFrom-Json).id @@ -145,15 +145,15 @@ Чтобы создать сервисный аккаунт, от имени которого узлы будут скачивать из реестра необходимые Docker-образы. 1. Запишите в переменную идентификатор каталога из конфигурации вашего профиля {{ yandex-cloud }} CLI: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash FOLDER_ID=$(yc config get folder-id) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $FOLDER_ID = yc config get folder-id @@ -163,15 +163,15 @@ 1. Создайте сервисный аккаунт: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash yc iam service-account create --name k8s-node-sa-$FOLDER_ID ``` - - PowerShell + - PowerShell {#powershell} ```shell script yc iam service-account create --name k8s-node-sa-$FOLDER_ID @@ -181,15 +181,15 @@ 1. Запишите в переменную идентификатор сервисного аккаунта: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash NODE_SA_ID=$(yc iam service-account get --name k8s-node-sa-$FOLDER_ID --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $NODE_SA_ID = (yc iam service-account get --name k8s-node-sa-$FOLDER_ID --format json | ConvertFrom-Json).id @@ -210,15 +210,15 @@ 1. Запишите в переменную идентификатор каталога из конфигурации вашего профиля {{ yandex-cloud }} CLI: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash FOLDER_ID=$(yc config get folder-id) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $FOLDER_ID = yc config get folder-id @@ -228,15 +228,15 @@ 1. Создайте сервисный аккаунт: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash yc iam service-account create --name k8s-ic-sa-$FOLDER_ID ``` - - PowerShell + - PowerShell {#powershell} ```shell script yc iam service-account create --name k8s-ic-sa-$FOLDER_ID @@ -246,15 +246,15 @@ 1. Запишите в переменную идентификатор сервисного аккаунта: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash IC_SA_ID=$(yc iam service-account get --name k8s-ic-sa-$FOLDER_ID --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $RES_SA_ID = (yc iam service-account get --name k8s-ic-sa-$FOLDER_ID --format json | ConvertFrom-Json).id @@ -326,15 +326,15 @@ yc container registry configure-docker 1. Соберите Docker-образ. 1. Получите идентификатор реестра, [созданного ранее](#registry-create), и запишите его в переменную: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash REGISTRY_ID=$(yc container registry get --name yc-auto-cr --format json | jq .id -r) ``` - - PowerShell + - PowerShell {#powershell} ```shell script $REGISTRY_ID = (yc container registry get --name yc-auto-cr --format json | ConvertFrom-Json).id @@ -523,15 +523,15 @@ yc container registry configure-docker 1. Удалите ресурсы {{ container-registry-name }}. 1. Узнайте идентификатор Docker-образа, загруженного в реестр: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash IMAGE_ID=$(yc container image list --format json | jq .[0].id -r) ``` - - PowerShell + - PowerShell {#powershell} ```powershell $IMAGE_ID = (yc container image list --format json | ConvertFrom-Json).id diff --git a/ru/message-queue/operations/message-queue-send-message.md b/ru/message-queue/operations/message-queue-send-message.md index ae3dd164197..688f10353cd 100644 --- a/ru/message-queue/operations/message-queue-send-message.md +++ b/ru/message-queue/operations/message-queue-send-message.md @@ -12,9 +12,9 @@ description: "Следуя данной инструкции, вы сможет 1. Если у вас еще нет очереди сообщений {{ message-queue-name }}, [создайте](message-queue-new-queue.md) ее. 1. Выполните в терминале команду: - {% list tabs %} + {% list tabs group=programming_language %} - - AWS CLI + - AWS CLI {#aws_cli} ```bash aws sqs send-message \ @@ -38,7 +38,7 @@ description: "Следуя данной инструкции, вы сможет } ``` - - cURL + - cURL {#curl} ```bash curl -X POST \ diff --git a/ru/microsoft/byol.md b/ru/microsoft/byol.md index 4d6c95abe9d..ed337f8ce71 100644 --- a/ru/microsoft/byol.md +++ b/ru/microsoft/byol.md @@ -42,15 +42,15 @@ 1. Выполните запрос вида: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash curl -H "Authorization: Bearer `yc iam create-token`" -H "accept: application/json" -X POST https://compute.{{ api-host }}/compute/v1/images -d '{"folderId": "", "name": "<название образа>", "description": "<описание образа>", "os": {"type": "WINDOWS"}, "pooled": false, "uri": "<ссылка на образ в Object Storage>"}' ``` - - PowerShell + - PowerShell {#powershell} ```powershell function Create-YCImage { diff --git a/ru/microsoft/prepare-image.md b/ru/microsoft/prepare-image.md index 2b494b755e8..fe6e95a0299 100644 --- a/ru/microsoft/prepare-image.md +++ b/ru/microsoft/prepare-image.md @@ -40,21 +40,21 @@ С помощью [API {{ compute-name }}](../compute/api-ref/Image/create.md) вы можете импортировать образ в сервис: -{% list tabs %} +{% list tabs group=programming_language %} -- CLI +- CLI {#cli} ``` yc compute image create --name <название образа> --description <описание образа> --os-type windows --source-uri <ссылка на образ в Object Storage> ``` -- Bash +- Bash {#bash} ```bash curl -H "Authorization: Bearer `yc iam create-token`" -H "accept: application/json" -X POST https://compute.{{ api-host }}/compute/v1/images -d '{"folderId": "", "name": "<название образа>", "description": "<описание образа>", "os": {"type": "WINDOWS"}, "pooled": false, "uri": "<ссылка на образ в Object Storage>"}' ``` -- PowerShell +- PowerShell {#powershell} ```powershell function Create-YCImage { diff --git a/ru/query/concepts/glossary.md b/ru/query/concepts/glossary.md index d4272298123..6f2ef78c111 100644 --- a/ru/query/concepts/glossary.md +++ b/ru/query/concepts/glossary.md @@ -45,7 +45,7 @@ _Запрос_ — это выражение на языке [YQL](https://ydb.t _Схема данных_ — это перечень полей и типов данных источника, которые не обладают явной схемой, например, бакеты {{ objstorage-short-name }} или потоки {{ yds-short-name }}. В схеме необходимо описать все поля, которые будут использованы в запросе. Если запрос обращается к данным через [соединение](#connection), схема указывается в теле запроса. В случае использования [привязки](#binding) схема данных задается в ее свойствах. -При работе с {{ mch-name }} или {{ mpg-name }} схема автоматически извлекается из самих систем управления базами данных, поэтому для этих источников явно указать её нельзя. +При работе с {{ mch-name }} или {{ mpg-name }} схема автоматически извлекается из самих систем управления базами данных, поэтому для этих источников явно указать ее нельзя. ## Контрольная точка {#checkpoint} diff --git a/ru/query/concepts/match-recognize.md b/ru/query/concepts/match-recognize.md index 88197e87b3c..4f0e42d95da 100644 --- a/ru/query/concepts/match-recognize.md +++ b/ru/query/concepts/match-recognize.md @@ -2,7 +2,7 @@ **Паттерн данных** – это комбинация событий, условий и корреляций между этими событиями для отслеживания различных закономерностей и выявления событий. Поиск паттернов используются для анализа и мониторинга потока событий в реальном времени, что позволяет оперативно реагировать на изменения и принимать важные решения. В системах анализа данных паттерн данных формулирует правило, по которому система определяет, соответствует ли входящий поток событий определенным критериям, приводя к срабатыванию определенных действий или уведомлений. -Разберём практический пример обработки паттернов в потоке данных, создаваемым IoT-устройством с кнопками и событиями, вызываемыми при их активации. Нам нужно найти и обработать следующую последовательность нажатия кнопок: «кнопка 1», «кнопка 2», «кнопка 3». Данные передаются в виде JSON-строк, которые с помощью [привязок к данным](glossary.md#binding) распределяются по колонкам `ts` и `button` потока данных `input_stream`. +Разберем практический пример обработки паттернов в потоке данных, создаваемым IoT-устройством с кнопками и событиями, вызываемыми при их активации. Нам нужно найти и обработать следующую последовательность нажатия кнопок: «кнопка 1», «кнопка 2», «кнопка 3». Данные передаются в виде JSON-строк, которые с помощью [привязок к данным](glossary.md#binding) распределяются по колонкам `ts` и `button` потока данных `input_stream`. Структура передаваемых данных: ```json @@ -111,7 +111,7 @@ PATTERN () {% endnote %} -В `PATTERN` можно использовать [квантификаторы](https://ru.wikipedia.org/wiki/Регулярные_выражения#Квантификация_(поиск_последовательностей)). Они в регулярных выражениях определяют число повторений элемента или подпоследовательности в паттерне для нахождения совпадения. Мы будем использовать переменные `A`, `B`, `C` и `D` из блока `DEFINE` для описания квантификаторов. Приведём перечень поддерживаемых квантификаторов: +В `PATTERN` можно использовать [квантификаторы](https://ru.wikipedia.org/wiki/Регулярные_выражения#Квантификация_(поиск_последовательностей)). Они в регулярных выражениях определяют число повторений элемента или подпоследовательности в паттерне для нахождения совпадения. Мы будем использовать переменные `A`, `B`, `C` и `D` из блока `DEFINE` для описания квантификаторов. Приведем перечень поддерживаемых квантификаторов: |Квантификатор|Описание| |----|-----| @@ -203,7 +203,7 @@ DEFINE ##### **Пример 2** {#match-example2} -Когда к первой переменной паттерна применён квантификатор, допускающий несколько совпадений, в результат будет добавлено по одной строке на каждое совпадение этого элемента. Таким образом, число результирующих строк будет равно числу совпадений первого элемента паттерна. +Когда к первой переменной паттерна применен квантификатор, допускающий несколько совпадений, в результат будет добавлено по одной строке на каждое совпадение этого элемента. Таким образом, число результирующих строк будет равно числу совпадений первого элемента паттерна. ```sql MEASURES diff --git a/ru/search-api/operations/mobile.md b/ru/search-api/operations/mobile.md index 09e75348864..6b7bbda149c 100644 --- a/ru/search-api/operations/mobile.md +++ b/ru/search-api/operations/mobile.md @@ -4,15 +4,15 @@ Чтобы получить результаты мобильной выдачи, добавьте заголовок `user-agent` со спецификацией устройства и браузера. Например, для поискового запроса `query=youtube`: -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -H 'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1' 'https://yandex.ru/search/xml?query=youtube&user={USER}&key={KEY}&lr=2&l10n=en&page=0&groupby=attr%3Dd.mode%3Ddeep.groups-on-page%3D100.docs-in-group%3D1&filter=moderate&noredirect=1&nocache=da' ``` -- Python +- Python {#python} ```python import subprocess diff --git a/ru/security/security-bulletins/index.md b/ru/security/security-bulletins/index.md index b6b3bdf4411..4408293e443 100644 --- a/ru/security/security-bulletins/index.md +++ b/ru/security/security-bulletins/index.md @@ -2,6 +2,12 @@ На этой странице приводятся рекомендации специалистов {{ yandex-cloud }} по вопросам безопасности. +{% include [28.12.2023 — CVE-2023-44487 HTTP/2 Rapid Reset Attack](../../_includes/security/security-bulletins/cve-2023-44487.md) %} + +{% include [28.12.2023 — CVE-2023-23583 Reptar in Ice Lake IPU Out-of-Band](../../_includes/security/security-bulletins/cve-2023-23583.md) %} + +{% include [28.12.2023 — CVE-2023-46850 OpenVPN v.2.6.7 Security patch](../../_includes/security/security-bulletins/cve-2023-46850.md) %} + {% include [3.11.2023 — CVE-2023-5043 Nginx ingress controller fo Kubernetes vulnerabilities](../../_includes/security/security-bulletins/cve-2023-5043.md) %} {% include [26.10.2023 — CVE-2023-3484 GitLab Security Release: 16.1.2, 16.0.7, and 15.11.11](../../_includes/security/security-bulletins/cve-2023-3484-gitlab-security-release.md) %} diff --git a/ru/serverless-containers/operations/logs-write.md b/ru/serverless-containers/operations/logs-write.md index 9ad4d93c4d0..80688144ac7 100644 --- a/ru/serverless-containers/operations/logs-write.md +++ b/ru/serverless-containers/operations/logs-write.md @@ -4,9 +4,9 @@ ## Примеры приложений и Dockerfile -{% list tabs %} +{% list tabs group=programming_language %} -- Node.js +- Node.js {#node} **index.js** ``` @@ -42,7 +42,7 @@ CMD [ "node", "index.js" ] ``` -- Python +- Python {#python} **requirements.txt** ``` @@ -103,7 +103,7 @@ CMD [ "python", "index.py" ] ``` -- Go +- Go {#go} **index.go** ``` diff --git a/ru/serverless-containers/quickstart/container.md b/ru/serverless-containers/quickstart/container.md index 61d6e8c7b1f..7378964cf70 100644 --- a/ru/serverless-containers/quickstart/container.md +++ b/ru/serverless-containers/quickstart/container.md @@ -15,9 +15,9 @@ Docker-образ — исполняемый пакет, который соде ### Примеры приложений и Dockerfile {#examples} -{% list tabs %} +{% list tabs group=programming_language %} -- Node.js +- Node.js {#node} **index.js** @@ -51,7 +51,7 @@ Docker-образ — исполняемый пакет, который соде CMD [ "node", "index.js" ] ``` -- Python +- Python {#python} **index.py** @@ -88,7 +88,7 @@ Docker-образ — исполняемый пакет, который соде CMD [ "python", "index.py" ] ``` -- Go +- Go {#go} **index.go** diff --git a/ru/smartcaptcha/quickstart.md b/ru/smartcaptcha/quickstart.md index 110bd1531f4..6d514a1b1b4 100644 --- a/ru/smartcaptcha/quickstart.md +++ b/ru/smartcaptcha/quickstart.md @@ -103,9 +103,9 @@ description: "Следуя данной инструкции, вы сможет Пример функции проверки токена: -{% list tabs %} +{% list tabs group=programming_language %} -- Node.js +- Node.js {#node} ```js const https = require('https'), @@ -153,7 +153,7 @@ description: "Следуя данной инструкции, вы сможет }); ``` -- PHP +- PHP {#php} ```php define('SMARTCAPTCHA_SERVER_KEY', '<ключ_сервера>'); @@ -190,7 +190,7 @@ description: "Следуя данной инструкции, вы сможет } ``` -- Python +- Python {#python} ```py import requests diff --git a/ru/speechkit/formats.md b/ru/speechkit/formats.md index 7f842b022ab..728f72e7811 100644 --- a/ru/speechkit/formats.md +++ b/ru/speechkit/formats.md @@ -44,6 +44,6 @@ description: "{{ speechkit-name }} позволяет распознавать {% note warning %} -Формат MP3 не поддерживается API v2 распознавания в [потоковом](./stt/api/streaming-api.md) и [синхронном](./stt/api/request-api.md) режимах. +Формат MP3 не поддерживается в API v1 [синхронного](./stt/api/request-api.md) распознавания и API v2 [потокового](./stt/api/streaming-api.md) распознавания. {% endnote %} diff --git a/ru/speechkit/quickstart/stt-quickstart-v2.md b/ru/speechkit/quickstart/stt-quickstart-v2.md index eba6e0f289f..00cb003c67e 100644 --- a/ru/speechkit/quickstart/stt-quickstart-v2.md +++ b/ru/speechkit/quickstart/stt-quickstart-v2.md @@ -13,9 +13,9 @@ ## Распознавание речи {#speech-recognition} -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} {% include [async-recognition](../../_includes/speechkit/async-recognition.md) %} diff --git a/ru/speechkit/stt/analysis.md b/ru/speechkit/stt/analysis.md index c5c01663d28..ad266a07d58 100644 --- a/ru/speechkit/stt/analysis.md +++ b/ru/speechkit/stt/analysis.md @@ -23,9 +23,9 @@ | `insult` | Оскорбления (например, "дурак", "урод") | `ON_UTTERANCE`, `ON_FINAL` | | `profanity` | Мат | `ON_UTTERANCE`, `ON_FINAL` | -{% list tabs %} +{% list tabs group=programming_language %} -- Python +- Python {#python} ```python session_options = StreamingRequest( diff --git a/ru/speechkit/stt/api/request-api.md b/ru/speechkit/stt/api/request-api.md index 7e382ed7701..1c666ea8c19 100644 --- a/ru/speechkit/stt/api/request-api.md +++ b/ru/speechkit/stt/api/request-api.md @@ -43,4 +43,8 @@ folderId | **string**

[Идентификатор каталога](../../ } ``` -Подробнее о формате и кодах ответов см. на странице [{#T}](../../concepts/response.md). \ No newline at end of file +Подробнее о формате и кодах ответов см. на странице [{#T}](../../concepts/response.md). + +## Примеры использования {#examples} + +* [{#T}](request-examples.md). diff --git a/ru/speechkit/stt/api/request-examples.md b/ru/speechkit/stt/api/request-examples.md index 1d66f0a444e..5c62bdc5af7 100644 --- a/ru/speechkit/stt/api/request-examples.md +++ b/ru/speechkit/stt/api/request-examples.md @@ -13,9 +13,9 @@ ## Пример запроса {#request_examples} -{% list tabs %} +{% list tabs group=programming_language %} -- POST-запрос +- POST-запрос {#post} Отправьте [запрос](../request.md) на преобразование речи в текст: @@ -34,7 +34,7 @@ * `folderId` — [идентификатор каталога](../../../resource-manager/operations/folder/get-id.md). * `` — [IAM-токен](../../../iam/concepts/authorization/iam-token.md). -- cURL +- cURL {#curl} Отправьте [запрос](../request.md) на преобразование речи в текст: @@ -54,7 +54,7 @@ * `--data-binary` — имя аудиофайла для распознавания. * `topic` — [языковая модель](../models.md). -- Python 3 +- Python 3 {#python} Отправьте [запрос](../request.md) на преобразование речи в текст: @@ -93,7 +93,7 @@ * `topic` — [языковая модель](../models.md). * `lang` — [язык](../index.md#langs), для которого будет выполнено распознавание. -- PHP +- PHP {#php} Отправьте [запрос](../request.md) на преобразование речи в текст: diff --git a/ru/speechkit/stt/api/streaming-api.md b/ru/speechkit/stt/api/streaming-api.md index eb69f44b492..f733d296221 100644 --- a/ru/speechkit/stt/api/streaming-api.md +++ b/ru/speechkit/stt/api/streaming-api.md @@ -62,4 +62,8 @@ folderId | **string**

[Идентификатор каталога](../../ 3 | `INVALID_ARGUMENT` | Клиент некорректно указал параметры запроса. Детальная информация представлена в поле `details`. 9 | `RESOURCE_EXHAUSTED` | Клиент превысил одну из квот. 16 | `UNAUTHENTICATED` | Для выполнения операции необходима авторизация. Проверьте IAM-токен и идентификатор каталога, которые вы передали. -13 | `INTERNAL` | Внутренняя ошибка сервера. Ошибка означает, что операция не может быть выполнена из-за технического состояния сервера. Например, из-за нехватки вычислительных ресурсов. \ No newline at end of file +13 | `INTERNAL` | Внутренняя ошибка сервера. Ошибка означает, что операция не может быть выполнена из-за технического состояния сервера. Например, из-за нехватки вычислительных ресурсов. + +## Примеры использования {#examples} + +* [{#T}](streaming-examples.md). diff --git a/ru/speechkit/stt/api/streaming-examples-v3.md b/ru/speechkit/stt/api/streaming-examples-v3.md index b418a048b38..0d216ec3480 100644 --- a/ru/speechkit/stt/api/streaming-examples-v3.md +++ b/ru/speechkit/stt/api/streaming-examples-v3.md @@ -22,9 +22,9 @@ description: "Следуя данной инструкции, вы сможет 1. Получите [API-ключ](../../../iam/operations/api-key/create.md) или [IAM-токен](../../../iam/operations/api-key/create.md) для сервисного аккаунта. 1. Создайте клиентское приложение: - {% list tabs %} + {% list tabs group=programming_language %} - - Python 3 + - Python 3 {#python} 1. Установите пакет `grpcio-tools` с помощью менеджера пакетов [pip](https://pip.pypa.io/en/stable/): @@ -175,7 +175,7 @@ description: "Следуя данной инструкции, вы сможет type=status_code, alternatives=None ``` - - Java + - Java {#java} 1. Установите зависимости: diff --git a/ru/speechkit/stt/api/streaming-examples.md b/ru/speechkit/stt/api/streaming-examples.md index 45f433a9ce7..e0eec4f164e 100644 --- a/ru/speechkit/stt/api/streaming-examples.md +++ b/ru/speechkit/stt/api/streaming-examples.md @@ -26,9 +26,9 @@ 1. Создайте клиентское приложение: - {% list tabs %} + {% list tabs group=programming_language %} - - Python 3 + - Python 3 {#python} 1. Установите пакет `grpcio-tools` с помощью менеджера пакетов [pip](https://pip.pypa.io/en/stable/): @@ -166,7 +166,7 @@ Is final: True ``` - - Node.js + - Node.js {#node} 1. Перейдите в папку с репозиторием [{{ yandex-cloud }} API](https://github.com/yandex-cloud/cloudapi), создайте папку `src` и сгенерируйте в ней файл зависимостей `package.json`: diff --git a/ru/speechkit/stt/api/transcribation-api.md b/ru/speechkit/stt/api/transcribation-api.md index 22cb2bf520a..5ade1816324 100644 --- a/ru/speechkit/stt/api/transcribation-api.md +++ b/ru/speechkit/stt/api/transcribation-api.md @@ -174,4 +174,10 @@ operationId | Идентификатор операции, полученный Время последнего изменения ресурса. Указывается в формате [RFC3339 (Timestamps)](https://www.ietf.org/rfc/rfc3339.txt). |# -Подробнее о формате и кодах ответов см. на странице [{#T}](../../concepts/response.md). \ No newline at end of file +Подробнее о формате и кодах ответов см. на странице [{#T}](../../concepts/response.md). + +## Примеры использования {#examples} + +* [{#T}](transcribation-lpcm.md). +* [{#T}](transcribation-ogg.md). +* [{#T}](batch-transcribation.md). diff --git a/ru/speechkit/stt/api/transcribation-lpcm.md b/ru/speechkit/stt/api/transcribation-lpcm.md index 89f9e9f2544..f9f9a39e2a9 100644 --- a/ru/speechkit/stt/api/transcribation-lpcm.md +++ b/ru/speechkit/stt/api/transcribation-lpcm.md @@ -25,9 +25,9 @@ description: "Следуя данной инструкции, вы сможет ## Выполните распознавание с помощью API {#recognize-using-api} -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} {% include [async-recognition](../../../_includes/speechkit/async-recognition.md) %} diff --git a/ru/speechkit/stt/api/transcribation-ogg.md b/ru/speechkit/stt/api/transcribation-ogg.md index bf1726825b9..bd2330e9cd2 100644 --- a/ru/speechkit/stt/api/transcribation-ogg.md +++ b/ru/speechkit/stt/api/transcribation-ogg.md @@ -29,9 +29,9 @@ description: "Следуя данной инструкции, вы сможет {% endnote %} -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} 1. [Получите ссылку на аудиофайл](../../../storage/operations/objects/link-for-download.md) в {{ objstorage-name }}. 1. Создайте файл, например `body.json`, и добавьте в него код: @@ -124,7 +124,7 @@ description: "Следуя данной инструкции, вы сможет } ``` -- Python 3 +- Python 3 {#python} 1. Установите пакет `requests` с помощью менеджера пакетов [pip](https://pip.pypa.io/en/stable/): diff --git a/ru/speechkit/tts/api/tts-examples-v3.md b/ru/speechkit/tts/api/tts-examples-v3.md index f19cdc78bb6..d9a2ed72570 100644 --- a/ru/speechkit/tts/api/tts-examples-v3.md +++ b/ru/speechkit/tts/api/tts-examples-v3.md @@ -18,9 +18,9 @@ 1. Получите [API-ключ](../../../iam/operations/api-key/create.md) или [IAM-токен](../../../iam/operations/api-key/create.md) для сервисного аккаунта. 1. Создайте клиентское приложение: - {% list tabs %} + {% list tabs group=programming_language %} - - Python 3 + - Python 3 {#python} 1. Установите пакеты `grpcio-tools` и `pydub` с помощью менеджера пакетов [pip](https://pip.pypa.io/en/stable/): @@ -145,7 +145,7 @@ В результате в папке `cloudapi` будет создан файл `speech.wav` с синтезированной речью. - - Java + - Java {#java} 1. Установите зависимости: diff --git a/ru/speechkit/tts/api/tts-ogg.md b/ru/speechkit/tts/api/tts-ogg.md index 1ac5aa905ec..585543fc69a 100644 --- a/ru/speechkit/tts/api/tts-ogg.md +++ b/ru/speechkit/tts/api/tts-ogg.md @@ -10,9 +10,9 @@ Аутентификация происходит от имени аккаунта на Яндексе или федеративного аккаунта с помощью [IAM-токена](../../../iam/concepts/authorization/iam-token.md). Если вы используете сервисный аккаунт, передавать в запросе идентификатор каталога не нужно. Подробнее об аутентификации в API {{ speechkit-name }} см. [{#T}](../../concepts/auth.md). -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} Отправьте [запрос](../request.md) на преобразование текста в речь: @@ -41,7 +41,7 @@ Синтезированная речь будет записана в файл `speech.ogg` в папке, из которой вы отправляли запрос. -- C# +- C# {#csharp} Отправьте [запрос](../request.md) на преобразование текста в речь: @@ -94,7 +94,7 @@ Синтезированная речь будет записана в файл `speech.ogg` в папке, из которой вы отправляли запрос. -- Python 3 +- Python 3 {#python} 1. Создайте файл, например `test.py`, и добавьте в него следующий код: @@ -161,7 +161,7 @@ Синтезированная речь будет записана в файл `speech.ogg` в папке, из которой вы выполняли файл. -- PHP +- PHP {#php} Отправьте [запрос](../request.md) на преобразование текста в речь: diff --git a/ru/speechkit/tts/api/tts-ssml.md b/ru/speechkit/tts/api/tts-ssml.md index 8f22780af92..31185a32a99 100644 --- a/ru/speechkit/tts/api/tts-ssml.md +++ b/ru/speechkit/tts/api/tts-ssml.md @@ -12,9 +12,9 @@ Аутентификация происходит от имени аккаунта на Яндексе или федеративного аккаунта с помощью [IAM-токена](../../../iam/concepts/authorization/iam-token.md). Если вы используете сервисный аккаунт, передавать в запросе идентификатор каталога не нужно. Подробнее об аутентификации в API {{ speechkit-name }} см. [{#T}](../../concepts/auth.md). -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} 1. Создайте файл, например `text.xml`, и напишите в нем текст в формате SSML: diff --git a/ru/speechkit/tts/api/tts-wav.md b/ru/speechkit/tts/api/tts-wav.md index e9e1544cd1f..3c505fa6b27 100644 --- a/ru/speechkit/tts/api/tts-wav.md +++ b/ru/speechkit/tts/api/tts-wav.md @@ -13,9 +13,9 @@ 1. Синтезируйте файл в формате LPCM: - {% list tabs %} + {% list tabs group=programming_language %} - - cURL + - cURL {#curl} Отправьте [запрос](../request.md) на преобразование текста в речь: @@ -45,7 +45,7 @@ * `format` — [формат](../../formats.md) синтезированного аудиофайла. * `sampleRateHertz` — частота дискретизации аудиофайла в формате [LPCM](../../formats.md#LPCM). - - C# + - C# {#csharp} Отправьте [запрос](../request.md) на преобразование текста в речь: @@ -100,7 +100,7 @@ * `format` — [формат](../../formats.md) синтезированного аудиофайла. * `sampleRateHertz` — частота дискретизации аудиофайла в формате [LPCM](../../formats.md#LPCM). - - Python 3 + - Python 3 {#python} * Создайте файл, например `test.py`, и добавьте в него следующий код: @@ -170,7 +170,7 @@ * `--output` — имя файла для записи аудио. * `--text` — текст в [TTS-разметке](../markup/tts-markup.md), который нужно cинтезировать. - - PHP + - PHP {#php} Отправьте [запрос](../request.md) на преобразование текста в речь: diff --git a/ru/speechkit/tts/request.md b/ru/speechkit/tts/request.md index 9502b461507..84ebc9993a5 100644 --- a/ru/speechkit/tts/request.md +++ b/ru/speechkit/tts/request.md @@ -35,3 +35,9 @@ folderId | **string**

[Идентификатор каталога](../../ Если синтез прошел успешно, в ответе будет бинарное содержимое аудиофайла. Формат выходных данных зависит от значения параметра `format`. Подробнее о формате и кодах ответов см. на странице [{#T}](../concepts/response.md). + +## Примеры использования {#examples} + +* [{#T}](api/tts-wav.md). +* [{#T}](api/tts-ogg.md). +* [{#T}](api/tts-ssml.md). diff --git a/ru/speechsense/operations/data/upload-data.md b/ru/speechsense/operations/data/upload-data.md index fa216aae862..97138c3cda9 100644 --- a/ru/speechsense/operations/data/upload-data.md +++ b/ru/speechsense/operations/data/upload-data.md @@ -31,9 +31,9 @@ 1. Перейдите в папку с репозиторием {{ yandex-cloud }} API, создайте папку `upload_data`, сгенерируйте в ней код интерфейса клиента и перейдите в папку `upload_data`: - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash cd <путь_к_папке_cloudapi> && \ diff --git a/ru/storage/concepts/s3-select-language.md b/ru/storage/concepts/s3-select-language.md index 4b940c989be..68aa9cda7c1 100644 --- a/ru/storage/concepts/s3-select-language.md +++ b/ru/storage/concepts/s3-select-language.md @@ -255,9 +255,9 @@ SELECT s.CAST FROM S3Object s Примеры: -{% list tabs %} +{% list tabs group=data_format %} -- JSON +- JSON {#json} Образец данных: @@ -286,7 +286,7 @@ SELECT s.CAST FROM S3Object s {"count": 2, "min": 6, "max": 12, "sum": 18, "avg": 9.0} ``` -- CSV +- CSV {#csv} Образец данных: diff --git a/ru/storage/tutorials/billing-resource-detailing.md b/ru/storage/tutorials/billing-resource-detailing.md index eaccb27f636..acf083ddba1 100644 --- a/ru/storage/tutorials/billing-resource-detailing.md +++ b/ru/storage/tutorials/billing-resource-detailing.md @@ -62,9 +62,9 @@ ## Сформируйте отчет {#create-report} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} 1. Выполните запрос в {{ objstorage-name }} и сохраните результат выполнения в файл: diff --git a/ru/storage/tutorials/server-logs.md b/ru/storage/tutorials/server-logs.md index e179ff39e9b..bc8186d22b3 100644 --- a/ru/storage/tutorials/server-logs.md +++ b/ru/storage/tutorials/server-logs.md @@ -15,9 +15,9 @@ ## Получение статистики запросов {#request-stat} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} 1. Выполните запрос в {{ objstorage-name }} и сохраните результат выполнения в файл: diff --git a/ru/storage/tutorials/user-agent-statistics.md b/ru/storage/tutorials/user-agent-statistics.md index 2b271530872..22651068b0a 100644 --- a/ru/storage/tutorials/user-agent-statistics.md +++ b/ru/storage/tutorials/user-agent-statistics.md @@ -14,9 +14,9 @@ ## Получение статистики посещения {#session-stat} -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} 1. Выполните запрос в {{ objstorage-name }} и сохраните результат выполнения в файл: diff --git a/ru/translate/operations/better-quality.md b/ru/translate/operations/better-quality.md index 975c0c1ef59..07dc4472956 100644 --- a/ru/translate/operations/better-quality.md +++ b/ru/translate/operations/better-quality.md @@ -24,9 +24,9 @@ description: "Из статьи вы узнаете, как можно повы Чтобы избежать ошибки, укажите в поле `sourceLanguageCode` язык, с которого необходимо перевести текст: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```json { @@ -72,9 +72,9 @@ description: "Из статьи вы узнаете, как можно повы В поле `sourceLanguageCode` укажите язык, с которого необходимо перевести текст. Это поле обязательно при использовании глоссариев: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```json { @@ -156,9 +156,9 @@ description: "Из статьи вы узнаете, как можно повы Слова с опечатками могут быть переведены неправильно или транслитерированы. Например, слово hellas переводится как эллада. Это же слово, написанное с ошибкой — helas, будет переводиться как хелас. Чтобы проверить правильность написания слов, используйте параметр `speller`: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```json { diff --git a/ru/translate/operations/detect.md b/ru/translate/operations/detect.md index 1d02e6d1245..e245e24e291 100644 --- a/ru/translate/operations/detect.md +++ b/ru/translate/operations/detect.md @@ -22,9 +22,9 @@ Чтобы определить, на каком языке написан текст, передайте его в теле запроса [detectLanguage](../api-ref/Translation/detectLanguage): -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash export FOLDER_ID=<идентификатор_каталога> @@ -58,9 +58,9 @@ Чтобы избежать ошибки, вы можете указать языки в поле `languageCodeHints`, которым надо отдать приоритет при определении языка текста: -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```json { diff --git a/ru/translate/operations/list.md b/ru/translate/operations/list.md index c72a47b2189..49390226d99 100644 --- a/ru/translate/operations/list.md +++ b/ru/translate/operations/list.md @@ -17,9 +17,9 @@ description: "Из статьи вы узнаете, как получить с Получите список поддерживаемых языков с помощью метода [listLanguages](../api-ref/Translation/listLanguages): -{% list tabs %} +{% list tabs group=programming_language %} -- Bash +- Bash {#bash} ```bash export FOLDER_ID=<идентификатор_каталога> diff --git a/ru/vision/operations/ocr/text-detection-image.md b/ru/vision/operations/ocr/text-detection-image.md index 6ae78c5ffbf..2aae9163668 100644 --- a/ru/vision/operations/ocr/text-detection-image.md +++ b/ru/vision/operations/ocr/text-detection-image.md @@ -242,9 +242,9 @@ В примерах ниже показан код скрипта для распознавания текста с использованием Vision API. Аутентификация реализована для аккаунта на Яндексе с помощью [OAuth-токена](../../../iam/concepts/authorization/oauth-token.md) ([подробнее о способах аутентификации](../../api-ref/authentication.md)). -{% list tabs %} +{% list tabs group=programming_language %} -- Go +- Go {#go} Создайте файл скрипта, например `text_detection.go` и скопируйте в него следующий код: @@ -421,7 +421,7 @@ go run text_detection.go -folder-id $FOLDER_ID -oauth-token $TOKEN -image-path input.jpg ``` -- Python +- Python {#python} Создайте файл скрипта, например `text_detection.py` и скопируйте в него следующий код: diff --git a/ru/vision/operations/ocr/text-detection-pdf.md b/ru/vision/operations/ocr/text-detection-pdf.md index 025c83fab37..39f8b2ab73d 100644 --- a/ru/vision/operations/ocr/text-detection-pdf.md +++ b/ru/vision/operations/ocr/text-detection-pdf.md @@ -1015,9 +1015,9 @@ 1. Чтобы получить все распознанные на изображении слова, найдите все строки со свойством `text`, например с помощью [grep](https://www.gnu.org/software/grep/): - {% list tabs %} + {% list tabs group=programming_language %} - - Bash + - Bash {#bash} ```bash grep -o "\"text\":\s\".*\"" output.json @@ -1045,7 +1045,7 @@ "text": "SLOW" ``` - - PowerShell + - PowerShell {#powershell} ```powershell Select-String -Pattern '\"text\":\s\".*\"' -Path .\output.json diff --git a/ru/wiki/changelogs/2211.md b/ru/wiki/changelogs/2211.md index 1d9a252845e..64f9e446309 100644 --- a/ru/wiki/changelogs/2211.md +++ b/ru/wiki/changelogs/2211.md @@ -15,4 +15,4 @@ description: "Ознакомьтесь с историей изменений в Промо-страница будет доступна пользователям на странице [https://wiki.yandex.ru](https://wiki.yandex.ru/) при выполнении одного из условий: * пользователь не авторизован в {{ yandex-cloud }}; * у пользователя нет организации; -* пользователь ещё не открывал {{ wiki-name }}. \ No newline at end of file +* пользователь еще не открывал {{ wiki-name }}. \ No newline at end of file diff --git a/ru/yandexgpt/prompts/automation-ner.md b/ru/yandexgpt/prompts/automation-ner.md index c28029a03c7..793d39d7ee9 100644 --- a/ru/yandexgpt/prompts/automation-ner.md +++ b/ru/yandexgpt/prompts/automation-ner.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/automation-normalization.md b/ru/yandexgpt/prompts/automation-normalization.md index 49819818411..152bcf22e14 100644 --- a/ru/yandexgpt/prompts/automation-normalization.md +++ b/ru/yandexgpt/prompts/automation-normalization.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/content-fixing-errors.md b/ru/yandexgpt/prompts/content-fixing-errors.md index d345089c175..215cde0f303 100644 --- a/ru/yandexgpt/prompts/content-fixing-errors.md +++ b/ru/yandexgpt/prompts/content-fixing-errors.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -114,9 +114,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/content-text-localization.md b/ru/yandexgpt/prompts/content-text-localization.md index 58853c27534..69a9b599139 100644 --- a/ru/yandexgpt/prompts/content-text-localization.md +++ b/ru/yandexgpt/prompts/content-text-localization.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/content-write-text.md b/ru/yandexgpt/prompts/content-write-text.md index 6db02638a2a..db96f6216f7 100644 --- a/ru/yandexgpt/prompts/content-write-text.md +++ b/ru/yandexgpt/prompts/content-write-text.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/customer-service-classification-appeals.md b/ru/yandexgpt/prompts/customer-service-classification-appeals.md index fc57d552ba3..24dd17e20fc 100644 --- a/ru/yandexgpt/prompts/customer-service-classification-appeals.md +++ b/ru/yandexgpt/prompts/customer-service-classification-appeals.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/customer-service-generating-response.md b/ru/yandexgpt/prompts/customer-service-generating-response.md index a4b815f329e..586db30f2c7 100644 --- a/ru/yandexgpt/prompts/customer-service-generating-response.md +++ b/ru/yandexgpt/prompts/customer-service-generating-response.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/customer-service-rewrite-response.md b/ru/yandexgpt/prompts/customer-service-rewrite-response.md index 13165c3af4c..84908e491d2 100644 --- a/ru/yandexgpt/prompts/customer-service-rewrite-response.md +++ b/ru/yandexgpt/prompts/customer-service-rewrite-response.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/general-functions-create-table.md b/ru/yandexgpt/prompts/general-functions-create-table.md index caaca7d7e2e..53c78875c09 100644 --- a/ru/yandexgpt/prompts/general-functions-create-table.md +++ b/ru/yandexgpt/prompts/general-functions-create-table.md @@ -43,9 +43,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -131,9 +131,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/general-functions-summarization.md b/ru/yandexgpt/prompts/general-functions-summarization.md index 46f3f412b6a..4c0bde6abd3 100644 --- a/ru/yandexgpt/prompts/general-functions-summarization.md +++ b/ru/yandexgpt/prompts/general-functions-summarization.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/hr-create-plan.md b/ru/yandexgpt/prompts/hr-create-plan.md index 20fb050a505..6b0d06e8183 100644 --- a/ru/yandexgpt/prompts/hr-create-plan.md +++ b/ru/yandexgpt/prompts/hr-create-plan.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/hr-generating-questions.md b/ru/yandexgpt/prompts/hr-generating-questions.md index 5c0eb2fd531..d3962f2f455 100644 --- a/ru/yandexgpt/prompts/hr-generating-questions.md +++ b/ru/yandexgpt/prompts/hr-generating-questions.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/marketing-ad-generation.md b/ru/yandexgpt/prompts/marketing-ad-generation.md index 2fb4acb5377..8273b9421dd 100644 --- a/ru/yandexgpt/prompts/marketing-ad-generation.md +++ b/ru/yandexgpt/prompts/marketing-ad-generation.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/marketing-description-generation.md b/ru/yandexgpt/prompts/marketing-description-generation.md index 503eb9d9488..b5f3e1a9aff 100644 --- a/ru/yandexgpt/prompts/marketing-description-generation.md +++ b/ru/yandexgpt/prompts/marketing-description-generation.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/marketing-header-generation.md b/ru/yandexgpt/prompts/marketing-header-generation.md index 2450c11b195..66a7cc1a6fc 100644 --- a/ru/yandexgpt/prompts/marketing-header-generation.md +++ b/ru/yandexgpt/prompts/marketing-header-generation.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -116,9 +116,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/yandexgpt/prompts/marketing-text-customization.md b/ru/yandexgpt/prompts/marketing-text-customization.md index 4fe7231d0fc..fe9bf594ab4 100644 --- a/ru/yandexgpt/prompts/marketing-text-customization.md +++ b/ru/yandexgpt/prompts/marketing-text-customization.md @@ -37,9 +37,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST @@ -117,9 +117,9 @@ Где `<идентификатор_каталога>` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md) {{ yandex-cloud }}, у которого есть доступ к сервису {{ yagpt-name }}. -{% list tabs %} +{% list tabs group=programming_language %} -- cURL +- cURL {#curl} ```bash curl -k -v -X POST diff --git a/ru/ydb/docapi/tools/aws-sdk/create-item.md b/ru/ydb/docapi/tools/aws-sdk/create-item.md index 292ad65e738..c4aa3dd7ea8 100644 --- a/ru/ydb/docapi/tools/aws-sdk/create-item.md +++ b/ru/ydb/docapi/tools/aws-sdk/create-item.md @@ -5,9 +5,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-item.md Чтобы добавить новую запись в таблицу `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesItemOps01`: @@ -194,7 +194,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-item.md {} ``` -- Python +- Python {#python} 1. Создайте файл `SeriesItemOps01.py`, например с помощью редактора nano: @@ -258,7 +258,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-item.md 'RetryAttempts': 0}} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesItemOps01.php`, например с помощью редактора nano: @@ -341,7 +341,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-item.md Сериал успешно добавлен: 3 - Supernatural ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesItemOps01.js`, например с помощью редактора nano: @@ -409,7 +409,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-item.md Сериал успешно добавлен: {} ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesItemOps01.rb`, например с помощью редактора nano: diff --git a/ru/ydb/docapi/tools/aws-sdk/create-table.md b/ru/ydb/docapi/tools/aws-sdk/create-table.md index 7af995672a2..dd92a48f869 100644 --- a/ru/ydb/docapi/tools/aws-sdk/create-table.md +++ b/ru/ydb/docapi/tools/aws-sdk/create-table.md @@ -7,9 +7,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-table.md Чтобы создать таблицу с именем `Series`, ключом партицирования `series_id` и ключом сортировки `title`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesCreateTable`: @@ -194,7 +194,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-table.md Статус таблицы: ACTIVE ``` -- Python +- Python {#python} В коде ниже используется функция `print` из Python 3. Для использования этой функции в версиях Python 2.6 и старше добавьте в начало файла строку `from __future__ import print_function`. @@ -261,7 +261,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-table.md Статус таблицы: ACTIVE ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesCreateTable.php`, например с помощью редактора nano: @@ -343,7 +343,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-table.md Статус таблицы: ACTIVE ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesCreateTable.js`, например с помощью редактора nano: @@ -427,7 +427,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/create-table.md } ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesCreateTable.rb`, например с помощью редактора nano: diff --git a/ru/ydb/docapi/tools/aws-sdk/delete-item.md b/ru/ydb/docapi/tools/aws-sdk/delete-item.md index d23e133c994..7a9b705be1a 100644 --- a/ru/ydb/docapi/tools/aws-sdk/delete-item.md +++ b/ru/ydb/docapi/tools/aws-sdk/delete-item.md @@ -7,9 +7,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md Чтобы удалить с условием запись в таблице `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesItemOps06`: @@ -215,7 +215,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md Данные о сериале удалены. ``` -- Python +- Python {#python} 1. Создайте файл `SeriesItemOps06.py`, например с помощью редактора nano: @@ -315,7 +315,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md 'RetryAttempts': 0}} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesItemOps06.php`, например с помощью редактора nano: @@ -423,7 +423,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md Запись удалена. ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesItemOps06.js`, например с помощью редактора nano: @@ -477,7 +477,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md }) ``` - Удалить одиночную запись, указав её первичный ключ, можно с помощью команды `DeleteItemCommand`. При необходимости можно указать выражение `ConditionExpression`, чтобы предотвратить удаление элемента, если это условие не выполняется. + Удалить одиночную запись, указав ее первичный ключ, можно с помощью команды `DeleteItemCommand`. При необходимости можно указать выражение `ConditionExpression`, чтобы предотвратить удаление элемента, если это условие не выполняется. 1. Запустите программу: @@ -520,7 +520,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md Удаление выполнено: {} ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesItemOps06.rb`, например с помощью редактора nano: @@ -584,7 +584,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-item.md run_me if $PROGRAM_NAME == __FILE__ ``` - Удалить одиночную запись, указав её первичный ключ, можно с помощью метода `delete`. При необходимости можно указать выражение `ConditionExpression`, чтобы предотвратить удаление элемента, если это условие не выполняется. + Удалить одиночную запись, указав ее первичный ключ, можно с помощью метода `delete`. При необходимости можно указать выражение `ConditionExpression`, чтобы предотвратить удаление элемента, если это условие не выполняется. 1. Запустите программу: diff --git a/ru/ydb/docapi/tools/aws-sdk/delete-table.md b/ru/ydb/docapi/tools/aws-sdk/delete-table.md index 7e1633f9e74..c07830e41e6 100644 --- a/ru/ydb/docapi/tools/aws-sdk/delete-table.md +++ b/ru/ydb/docapi/tools/aws-sdk/delete-table.md @@ -7,9 +7,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-table.md Чтобы удалить таблицу `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesDeleteTable`: @@ -180,7 +180,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-table.md Таблица Series удалена. ``` -- Python +- Python {#python} 1. Создайте файл `SeriesDeleteTable.py`, например с помощью редактора nano: @@ -222,7 +222,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-table.md Таблица Series удалена ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesDeleteTable.php`, например с помощью редактора nano: @@ -283,7 +283,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-table.md Таблица удалена. ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesDeleteTable.js`, например с помощью редактора nano: @@ -359,7 +359,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/delete-table.md } ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesDeleteTable.rb`, например с помощью редактора nano: diff --git a/ru/ydb/docapi/tools/aws-sdk/index.md b/ru/ydb/docapi/tools/aws-sdk/index.md index 0007615ec66..d61f2143cac 100644 --- a/ru/ydb/docapi/tools/aws-sdk/index.md +++ b/ru/ydb/docapi/tools/aws-sdk/index.md @@ -43,15 +43,15 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/index.md Настройте окружение для вашего языка программирования: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} В примерах раздела для сборки приложений Java используется [Apache Maven](https://maven.apache.org/). Подробнее об AWS SDK для Java читайте в [документации AWS](https://aws.amazon.com/ru/sdk-for-java/). -- Python +- Python {#python} 1. [Установите](https://www.python.org/downloads/) Python версии 3.6 и выше. 1. Установите библиотеку Boto3: @@ -62,21 +62,21 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/index.md Подробнее об AWS SDK for Python (Boto) читайте в [документации AWS](https://aws.amazon.com/ru/sdk-for-python/). -- PHP +- PHP {#php} 1. Установите [PHP](https://www.php.net/). 1. Настройте [AWS SDK для PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_installation.html). Подробнее об AWS SDK for PHP читайте в [документации AWS](https://aws.amazon.com/ru/sdk-for-php/). -- Node.js +- Node.js {#node} 1. Установите [Node.js](https://nodejs.org/ru/). 1. Установите [AWS SDK for Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-started-nodejs.html). Подробнее об AWS SDK для Node.js читайте в [документации](https://aws.amazon.com/ru/sdk-for-node-js/). -- Ruby +- Ruby {#ruby} 1. Установите [Ruby](https://www.ruby-lang.org/ru/documentation/installation/). 1. Установите [AWS SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/developer-guide/setup-install.html). diff --git a/ru/ydb/docapi/tools/aws-sdk/load-data.md b/ru/ydb/docapi/tools/aws-sdk/load-data.md index 58281c56491..6ce05065bb6 100644 --- a/ru/ydb/docapi/tools/aws-sdk/load-data.md +++ b/ru/ydb/docapi/tools/aws-sdk/load-data.md @@ -23,9 +23,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/load-data.md Чтобы загрузить данные в таблицу `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesLoadData`: @@ -228,7 +228,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/load-data.md Добавлен сериал: 5 Twin Peaks ``` -- Python +- Python {#python} 1. Создайте файл `SeriesLoadData.py`, например с помощью редактора nano: @@ -285,7 +285,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/load-data.md Добавлен сериал: 5 Twin Peaks ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesLoadData.php`, например с помощью редактора nano: @@ -377,7 +377,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/load-data.md Добавлен сериал: 5 Twin Peaks ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesLoadData.js`, например с помощью редактора nano: @@ -446,7 +446,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/load-data.md Добавлен сериал: True Detective ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesLoadData.rb`, например с помощью редактора nano: diff --git a/ru/ydb/docapi/tools/aws-sdk/query-and-scan.md b/ru/ydb/docapi/tools/aws-sdk/query-and-scan.md index d809527fe0e..2f9c55ca512 100644 --- a/ru/ydb/docapi/tools/aws-sdk/query-and-scan.md +++ b/ru/ydb/docapi/tools/aws-sdk/query-and-scan.md @@ -18,9 +18,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md Чтобы извлечь данные методом `query` из таблицы `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesQuery01`: @@ -223,7 +223,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 3: True Detective ``` -- Python +- Python {#python} 1. Создайте файл `SeriesQuery01.py`, например с помощью редактора nano: @@ -279,7 +279,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 3 : True Detective ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesQuery01.php`, например с помощью редактора nano: @@ -372,7 +372,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 3: True Detective ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesQuery01.js`, например с помощью редактора nano: @@ -438,7 +438,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md - 3: True Detective ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesQuery01.rb`, например с помощью редактора nano: @@ -522,9 +522,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md Чтобы найти в таблице `Series` сериалы с ключом партицирования, равным 3, и названием на букву T: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesQuery02`: @@ -719,7 +719,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 3: True Detective ``` -- Python +- Python {#python} 1. Создайте файл `SeriesQuery02.py`, например с помощью редактора nano: @@ -776,7 +776,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 3 : True Detective ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesQuery02.php`, например с помощью редактора nano: @@ -863,7 +863,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 3: True Detective ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesQuery02.js`, например с помощью редактора nano: @@ -932,7 +932,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md - 3: True Detective ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesQuery02.rb`, например с помощью редактора nano: @@ -1014,9 +1014,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md Чтобы извлечь данные методом `scan` из таблицы `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesScan`: @@ -1206,7 +1206,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md { Item: {title=Silicon Valley, series_id=2, info={release_date=2014-04-06T00:00:00Z}} } ``` -- Python +- Python {#python} 1. Создайте файл `SeriesScan.py`, например с помощью редактора nano: @@ -1290,7 +1290,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md {'release_date': '2014-04-06'} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesScan.php`, например с помощью редактора nano: @@ -1386,7 +1386,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md 2: Silicon Valley ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesScan.js`, например с помощью редактора nano: @@ -1470,7 +1470,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/query-and-scan.md Сканирование успешно. ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesScan.rb`, например с помощью редактора nano: diff --git a/ru/ydb/docapi/tools/aws-sdk/read-item.md b/ru/ydb/docapi/tools/aws-sdk/read-item.md index f36d6269d74..f702ed1e90b 100644 --- a/ru/ydb/docapi/tools/aws-sdk/read-item.md +++ b/ru/ydb/docapi/tools/aws-sdk/read-item.md @@ -7,9 +7,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/read-item.md Чтобы прочитать запись из таблицы `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesItemOps02`: @@ -187,7 +187,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/read-item.md Получена запись: { Item: {title=Supernatural, series_id=3, info={release_date=2015-09-13, series_info=Supernatural is an American television series created by Eric Kripke}} } ``` -- Python +- Python {#python} 1. Создайте файл `SeriesItemOps02.py`, например с помощью редактора nano: @@ -246,7 +246,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/read-item.md 'created by Eric Kripke'}} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesItemOps02.php`, например с помощью редактора nano: @@ -341,7 +341,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/read-item.md } ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesItemOps02.js`, например с помощью редактора nano: @@ -409,7 +409,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/read-item.md } ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesItemOps02.rb`, например с помощью редактора nano: diff --git a/ru/ydb/docapi/tools/aws-sdk/update-item.md b/ru/ydb/docapi/tools/aws-sdk/update-item.md index 30fe4d57330..f0c4b583040 100644 --- a/ru/ydb/docapi/tools/aws-sdk/update-item.md +++ b/ru/ydb/docapi/tools/aws-sdk/update-item.md @@ -11,9 +11,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md Чтобы обновить запись о фильме в таблице `Series`: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesItemOps03`: @@ -209,7 +209,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Python +- Python {#python} 1. Создайте файл `SeriesItemOps03.py`, например с помощью редактора nano: @@ -286,7 +286,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md 'RetryAttempts': 0}} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesItemOps03.php`, например с помощью редактора nano: @@ -394,7 +394,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesItemOps03.js`, например с помощью редактора nano: @@ -472,7 +472,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesItemOps03.rb`, например с помощью редактора nano: @@ -576,9 +576,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md Чтобы увеличить атомарный счетчик `rating` для сериала: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesItemOps04`: @@ -768,7 +768,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Python +- Python {#python} 1. Создайте файл `SeriesItemOps04.py`, например с помощью редактора nano: @@ -841,7 +841,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md 'RetryAttempts': 0}} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesItemOps04.php`, например с помощью редактора nano: @@ -944,7 +944,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesItemOps04.js`, например с помощью редактора nano: @@ -1022,7 +1022,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesItemOps04.rb`, например с помощью редактора nano: @@ -1121,9 +1121,9 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md Чтобы обновить запись в таблице `Series` при выполнении условия: -{% list tabs %} +{% list tabs group=programming_language %} -- Java +- Java {#java} 1. Создайте проект `SeriesItemOps05`: @@ -1340,7 +1340,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Python +- Python {#python} 1. Создайте файл `SeriesItemOps05.py`, например с помощью редактора nano: @@ -1444,7 +1444,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md 'RetryAttempts': 0}} ``` -- PHP +- PHP {#php} 1. Создайте файл `SeriesItemOps05.php`, например с помощью редактора nano: @@ -1571,7 +1571,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Node.js +- Node.js {#node} 1. Создайте файл `SeriesItemOps05.js`, например с помощью редактора nano: @@ -1676,7 +1676,7 @@ sourcePath: overlay/quickstart/document-api/aws-sdk/update-item.md } ``` -- Ruby +- Ruby {#ruby} 1. Создайте файл `SeriesItemOps05.rb`, например с помощью редактора nano: diff --git a/ru/ydb/operations/connection.md b/ru/ydb/operations/connection.md index 00e9c380449..665e8098363 100644 --- a/ru/ydb/operations/connection.md +++ b/ru/ydb/operations/connection.md @@ -15,7 +15,7 @@ ## Получите реквизиты для подключения {#endpoint-and-path} -Получить реквизиты для подключения к БД можно в консоли управления {{ yandex-cloud }} или с помощью интерфейса командной строки {{ yandex-cloud }}. +Чтобы получить реквизиты для подключения к БД: {% list tabs %} @@ -62,6 +62,22 @@ >* эндпоинт — `{{ ydb.ep-dedicated }}`; >* путь — `{{ ydb.path-dedicated }}`. +- API + + Воспользуйтесь методом REST API [get](../api-ref/Database/get.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/Get](../api-ref/grpc/database_service.md#Get) и передайте в запросе идентификатор требуемой БД в параметре `databaseId`. + + Реквизиты для подключения к БД указаны в параметре `endpoint`. + + >Например, для БД в режиме Serverless: + >* эндпоинт — `{{ ydb.ep-serverless }}`; + >* путь — `{{ ydb.path-serverless }}`. + > + >Для БД в режиме Dedicated: + >* эндпоинт — `{{ ydb.ep-dedicated }}`; + >* путь — `{{ ydb.path-dedicated }}`. + + {% include [get-db-id](../../_includes/ydb/get-db-id.md) %} + {% endlist %} ## Настройте аутентификацию {#auth} diff --git a/ru/ydb/operations/crud.md b/ru/ydb/operations/crud.md index 95c315493ec..8003db38e54 100644 --- a/ru/ydb/operations/crud.md +++ b/ru/ydb/operations/crud.md @@ -128,7 +128,7 @@ VALUES ### INSERT {#insert} -Инструкция [INSERT](https://ydb.tech/ru/docs/yql/reference/syntax/insert_into) используется для вставки одной или нескольких строк. При попытке вставить строку в таблицу, с уже существующим значением первичного ключа {{ ydb-short-name }} вернёт ошибку с сообщением `Transaction rolled back due to constraint violation: insert_pk.`. +Инструкция [INSERT](https://ydb.tech/ru/docs/yql/reference/syntax/insert_into) используется для вставки одной или нескольких строк. При попытке вставить строку в таблицу, с уже существующим значением первичного ключа {{ ydb-short-name }} вернет ошибку с сообщением `Transaction rolled back due to constraint violation: insert_pk.`. {% note info %} diff --git a/ru/ydb/operations/manage-databases.md b/ru/ydb/operations/manage-databases.md index 7053c960b36..56347a29dc0 100644 --- a/ru/ydb/operations/manage-databases.md +++ b/ru/ydb/operations/manage-databases.md @@ -136,6 +136,15 @@ > } > ``` +- API + + Чтобы создать Serverless базу данных, воспользуйтесь методом REST API [create](../api-ref/Database/create.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/Create](../api-ref/grpc/database_service.md#Create) и передайте в запросе: + + * Идентификатор каталога, в котором должна быть размещена БД, в параметре `folderId`. + * Имя БД в параметре `name`. + * Пропускную способность БД в параметре `serverlessDatabase.throttlingRcuLimit`. + * Объем БД в параметре (в байтах) `serverlessDatabase.storageSizeLimit`. + {% endlist %} ### Изменить параметры Serverless базы данных {#update-db-serverless} @@ -240,6 +249,24 @@ > } > ``` +- API + + Чтобы изменить параметры Serverless базы данных, воспользуйтесь методом REST API [update](../api-ref/Database/update.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/Update](../api-ref/grpc/database_service.md#Update) и укажите в запросе идентификатор требуемой БД в параметре `databaseId`. + + {% include [get-db-id](../../_includes/ydb/get-db-id.md) %} + + Передайте в запросе: + + * Идентификатор каталога, в котором должна быть размещена БД, в параметре `folderId`. + * Имя БД в параметре `name`. + * Пропускную способность БД в параметре `serverlessDatabase.throttlingRcuLimit`. + * Объем БД в параметре (в байтах) `serverlessDatabase.storageSizeLimit`. + * Идентификатор вычислительного ресурса в параметре `resourcePresetId`. + * Идентификатор сети в параметре `networkId`. + * Тип носителя в параметре `storageConfig.storageOptions.storageTypeId`. + * Количество групп хранения в параметре `storageConfig.storageOptions.groupCount`. + * Количество экземпляров БД в параметре `scalePolicy.fixedScale.size`. + {% endlist %} ## Создать и изменить параметры базы данных с выделенными серверами (Dedicated) {#dedicated} @@ -423,6 +450,19 @@ > } > ``` +- API + + Чтобы создать Dedicated базу данных, воспользуйтесь методом REST API [create](../api-ref/Database/create.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/Create](../api-ref/grpc/database_service.md#Create) и передайте в запросе: + + * Идентификатор каталога, в котором должна быть размещена БД, в параметре `folderId`. + * Имя БД в параметре `name`. + * Разрешение на присвоение публичных IP-адресов узлам БД в параметре `dedicatedDatabase.assignPublicIps`. + * Идентификатор вычислительного ресурса в параметре `resourcePresetId`. + * Идентификатор сети в параметре `networkId`. + * Тип носителя в параметре `storageConfig.storageOptions.storageTypeId`. + * Количество групп хранения в параметре `storageConfig.storageOptions.groupCount`. + * Количество экземпляров БД в параметре `scalePolicy.fixedScale.size`. + {% endlist %} ### Изменить параметры Dedicated базы данных {#update-db-dedicated} @@ -500,6 +540,14 @@ yc ydb database get <имя_БД> ``` +- API + + Чтобы изменить параметры Dedicated базы данных, воспользуйтесь методом REST API [update](../api-ref/Database/update.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/Update](../api-ref/grpc/database_service.md#Update) и укажите в запросе идентификатор требуемой БД в параметре `databaseId`. + + {% include [get-db-id](../../_includes/ydb/get-db-id.md) %} + + Передайте в запросе набор параметров, который используется для [создания Dedicated БД](#create-db-dedicated), с измененными значениями. + {% endlist %} Если вы хотите перенести БД в другую зону доступности, обратитесь к [инструкции](migration-to-an-availability-zone.md). @@ -525,6 +573,10 @@ yc ydb database list ``` +- API + + Чтобы получить список баз данных в каталоге, воспользуйтесь методом REST API [list](../api-ref/Database/list.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/List](../api-ref/grpc/database_service.md#List) и передайте в запросе идентификатор каталога в параметре `folderId`. + {% endlist %} ## Удалить базу данных {#delete-db} @@ -589,4 +641,10 @@ yc ydb database list ``` +- API + + Чтобы удалить базу данных, воспользуйтесь методом REST API [delete](../api-ref/Database/delete.md) для ресурса [Database](../api-ref/Database/index.md) или вызовом gRPC API [DatabaseService/Delete](../api-ref/grpc/database_service.md#Delete) и укажите в запросе идентификатор удаляемой БД в параметре `databaseId`. + + {% include [get-db-id](../../_includes/ydb/get-db-id.md) %} + {% endlist %} diff --git a/ru/ydb/terraform/cdc.md b/ru/ydb/terraform/cdc.md index f7c9eec49bd..d66f60e358b 100644 --- a/ru/ydb/terraform/cdc.md +++ b/ru/ydb/terraform/cdc.md @@ -17,7 +17,7 @@ resource "yandex_ydb_table_changefeed" "ydb_changefeed" { ``` В создании потока изменений таблицы мы использовали следующие параметры: -* `table_id` — идентификатор таблицы, для которой создаётся поток изменений; +* `table_id` — идентификатор таблицы, для которой создается поток изменений; * `name` — название потока изменений; * `mode` — режим работы потока изменений. Все доступные режимы работы потока изменений описаны в [документации](https://ydb.tech/ru/docs/yql/reference/syntax/alter_table#changefeed-options). * `format` — формат потока изменений. Доступен только JSON формат. @@ -45,6 +45,6 @@ resource "yandex_ydb_table_changefeed" "ydb_changefeed" { | --- | --- | --- | | name | `string`
`required` | Имя читателя | | supported_codecs | `array[string]`
`optional` | Поддерживаемые кодировки данных | -| starting_message_timestamp_ms | `integer`
`optional` | Временная метка в формате UNIX timestamp, с которой читатель начнёт читать данные | +| starting_message_timestamp_ms | `integer`
`optional` | Временная метка в формате UNIX timestamp, с которой читатель начнет читать данные | Имя читателя используется в SDK или CLI для [чтения данных](https://ydb.tech/ru/docs/best_practices/cdc#read) из топика. \ No newline at end of file diff --git a/ru/ydb/terraform/credentials.md b/ru/ydb/terraform/credentials.md index 0094f7a3cee..4430246da63 100644 --- a/ru/ydb/terraform/credentials.md +++ b/ru/ydb/terraform/credentials.md @@ -50,15 +50,15 @@ * `folder-id` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md). Добавьте аутентификационные данные в переменные окружения: -{% list tabs %} -- Bash +{% list tabs group=programming_language %} +- Bash {#bash} ```bash export YC_TOKEN=$(yc iam create-token) export YC_CLOUD_ID=$(yc config get cloud-id) export YC_FOLDER_ID=$(yc config get folder-id) ``` -- PowerShell +- PowerShell {#powershell} ```powershell $Env:YC_TOKEN=$(yc iam create-token) $Env:YC_CLOUD_ID=$(yc config get cloud-id) diff --git a/ru/ydb/terraform/dedicated-database.md b/ru/ydb/terraform/dedicated-database.md index 5e4a22ebf67..744a1d58e5d 100644 --- a/ru/ydb/terraform/dedicated-database.md +++ b/ru/ydb/terraform/dedicated-database.md @@ -27,13 +27,13 @@ resource "yandex_ydb_database_dedicated" "my_database_2" { } ``` -Опишем группы настроек выделенной базы данных. Сначала задаются два параметра, определяющие название базы данных и её месторасположение в {{ yandex-cloud }}: +Опишем группы настроек выделенной базы данных. Сначала задаются два параметра, определяющие название базы данных и ее месторасположение в {{ yandex-cloud }}: * `name` — имя базы данных (строчные латинские буквы, цифры и дефисы. Первый символ – буква, последний символ - не дефис. Длина: от 3 до 63 симв.). Обязательный параметр; * `folder_id` – идентификатор директории (каталога) в {{ yandex-cloud }}, где будет создана база данных. Обязательный параметр. Далее можно определить количество виртуальных машин выделенных для работы базы данных и их конфигурацию: -* `resource_preset_id` – наименование шаблона конфигурации виртуальной машины. Доступны следующие шаблоны: `medium`, `medium-m64`, `medium-m96`, `large`, `xlarge`. Отличаются они платформой процессора, количеством vCPU, объёмом оперативной памяти. С подробным описанием конфигураций шаблонов виртуальных машин можно ознакомиться в этой [статье](../concepts/resources.md#resource-presets); -* `scale_policy.fixed_scale.size` – параметр задаёт количество виртуальных машин, которые будет использовать база данных. Минимальное рекомендуемое количество виртуальных машин – от двух штук (для продакшна). +* `resource_preset_id` – наименование шаблона конфигурации виртуальной машины. Доступны следующие шаблоны: `medium`, `medium-m64`, `medium-m96`, `large`, `xlarge`. Отличаются они платформой процессора, количеством vCPU, объемом оперативной памяти. С подробным описанием конфигураций шаблонов виртуальных машин можно ознакомиться в этой [статье](../concepts/resources.md#resource-presets); +* `scale_policy.fixed_scale.size` – параметр задает количество виртуальных машин, которые будет использовать база данных. Минимальное рекомендуемое количество виртуальных машин – от двух штук (для продакшна). Конфигурирование свойств хранения данных описывается блоком `storage_config`, в котором задаются следующие опции: * `group_count` – количество [групп хранения](https://ydb.tech/ru/docs/concepts/databases#storage-groups), определяющих суммарный объем хранилища. Одна группа хранения кратна 100 ГБ дискового пространства, задавать группам хранения можно только целочисленные значения; diff --git a/ru/ydb/terraform/intro.md b/ru/ydb/terraform/intro.md index 62006d1b95f..199a52bbb47 100644 --- a/ru/ydb/terraform/intro.md +++ b/ru/ydb/terraform/intro.md @@ -2,7 +2,7 @@ [Terraform](https://www.terraform.io) – это программное обеспечение с открытым исходным кодом от компании HashiCorp для управления облачной инфраструктурой по модели "инфраструктура как код" (Infrastructure as Code). Это значит, что желаемое состояние инфраструктуры описывается в конфигурационных файлах, а Terraform при помощи специальных вспомогательных программ (провайдеров) применяет эти изменения к инфраструктуре. Конфигурационные файлы пишутся на специальном [языке HCL](https://developer.hashicorp.com/terraform/language/syntax) (HashiCorp Configuration Language) и имеют расширение `tf`. HCL очень похож на JSON и оформляется в виде логических блоков в конфигурационных файлах. -С помощью Terraform можно создавать и изменять базы данных YDB, а также управлять её ресурсами: таблицами, индексами, потоками изменений таблиц. Важно понимать, что конфигурационный файл, который создаётся для управления YDB становится единой точкой управления состоянием базы и все изменения с базой должны производится через него, так как Terraform после каждого успешного применения изменений создает специальный state-файл – текстовое представление текущего состояния базы и при дальнейших изменениях ориентируется на него. +С помощью Terraform можно создавать и изменять базы данных YDB, а также управлять ее ресурсами: таблицами, индексами, потоками изменений таблиц. Важно понимать, что конфигурационный файл, который создаётся для управления YDB становится единой точкой управления состоянием базы и все изменения с базой должны производится через него, так как Terraform после каждого успешного применения изменений создает специальный state-файл – текстовое представление текущего состояния базы и при дальнейших изменениях ориентируется на него. Если внести изменения в состояние БД через конфигурационный файл, а потом еще что-то изменить через Консоль управления или через CLI, то Terraform ничего не узнает об этих изменениях, пока не будут применены команды terraform plan или terraform refresh. Эти команды заставят Terraform сверить текущее состояние ресурсов с тем, что сохранено в state-файле. Но это не означает, что Terraform автоматически примет новые изменения и обновит файл состояния, так как при следующем вызове команды terraform apply, Terraform попытается привести ресурсы к тому состоянию, которое описано в вашем конфигурационном файле, что может привести к перезаписи или удалению ваших внешних изменений. Поэтому очень важно во избежание конфликтов изменений состояния YDB работать через единую точку доступа – конфигурационный файл. diff --git a/ru/ydb/terraform/row-tables.md b/ru/ydb/terraform/row-tables.md index f6fa663cc6d..887031f6891 100644 --- a/ru/ydb/terraform/row-tables.md +++ b/ru/ydb/terraform/row-tables.md @@ -78,7 +78,7 @@ column { {% note warning %} -На данный момент нельзя удалить колонку при помощи Terraform, её можно только добавить. Для удаления колонки необходимо сначала удалить колонку из базы напрямую (например, при помощи YQL запроса), после чего удалить колонку из конфигурационного файла. +На данный момент нельзя удалить колонку при помощи Terraform, ее можно только добавить. Для удаления колонки необходимо сначала удалить колонку из базы напрямую (например, при помощи YQL запроса), после чего удалить колонку из конфигурационного файла. {% endnote %} diff --git a/ru/ydb/terraform/serverless-database.md b/ru/ydb/terraform/serverless-database.md index e1bb45028c7..f5782cdc847 100644 --- a/ru/ydb/terraform/serverless-database.md +++ b/ru/ydb/terraform/serverless-database.md @@ -5,7 +5,7 @@ description: "Следуя данной инструкции, вы сможет # Создание и изменение параметров бессерверной базы данных -Откройте созданный конфигурационный файл своего проекта (в нём уже должен быть [блок с инициализацией провайдера](./configure.md)) и добавьте в него следующий блок кода: +Откройте созданный конфигурационный файл своего проекта (в нем уже должен быть [блок с инициализацией провайдера](./configure.md)) и добавьте в него следующий блок кода: ```tf resource "yandex_ydb_database_serverless" "database1" { @@ -26,7 +26,7 @@ resource "yandex_ydb_database_serverless" "database1" { * Названия ресурса, указанного в кавычках - `"yandex_ydb_database_serverless"`; * Внутреннего идентификатора ресурса в рамках конфигурационного файла - `"database1"` (не название базы данных в облаке). -Идентификатор ресурса совместно с названием ресурса используются в качестве адреса для получения параметров создаваемого ресурса. Этот приём мы покажем дальше в документации, а сейчас опишем значения параметров ресурса `"yandex_ydb_database_serverless"`: +Идентификатор ресурса совместно с названием ресурса используются в качестве адреса для получения параметров создаваемого ресурса. Этот прием мы покажем дальше в документации, а сейчас опишем значения параметров ресурса `"yandex_ydb_database_serverless"`: * `name` — имя базы данных (строчные латинские буквы, цифры и дефисы. Первый символ – буква, последний символ - не дефис. Длина: от 3 до 63 симв.). Обязательный параметр. * `deletion_protection` — защита базы данных от удаления (не защищает от удаления содержимое базы). Значение по умолчанию `false`. * `enable_throttling_rcu_limit` — включить ограничение пропускной способности. Необязательный параметр. Значение по умолчанию `false`. @@ -40,4 +40,4 @@ resource "yandex_ydb_database_serverless" "database1" { Terraform создаст все требуемые ресурсы. Проверить изменения можно в [консоли управления](https://console.cloud.yandex.ru/) или с помощью команды Yandex Cloud CLI: `yc ydb database get <имя_БД>`. В терминал будут выведены сведения о созданной базе данных. -Если требуется изменить параметры созданной базы данных, нужно отредактировать конфигурационный файл и выполнить последовательность команд `terraform validate`, `terraform plan` и `terraform apply`. Например, изменить можно название базы данных (name), лимит объема данных (`storage_size_limit`) и так далее. Будьте осторожны, изменение идентификатора базы (в нашем случае `"database1"`) приведет к её пересозданию с потерей данных. \ No newline at end of file +Если требуется изменить параметры созданной базы данных, нужно отредактировать конфигурационный файл и выполнить последовательность команд `terraform validate`, `terraform plan` и `terraform apply`. Например, изменить можно название базы данных (name), лимит объема данных (`storage_size_limit`) и так далее. Будьте осторожны, изменение идентификатора базы (в нашем случае `"database1"`) приведет к ее пересозданию с потерей данных. \ No newline at end of file