1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/serverless-devs-Serverless-Devs

Клонировать/Скачать
yaml_and_cli.md 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 16:44 c46f8bb
title description position category
Yaml VS Cli
Сравнение режима Yaml и режима Cli инструментов Serverless Devs
4
Обзор

Сравнение режима Yaml и режима Cli

Основные инструменты Serverless Devs предоставляют два способа их использования.

  • Режим Yaml: режим, который требует наличие файлов описания ресурсов для работы
  • Режим Cli: может быть выполнен напрямую в любой директории без использования файлов описания ресурсов

Основное различие между двумя режимами заключается в следующем:

  1. Если вы хотите использовать режим Yaml, вам необходимо наличие файла s.yaml/s.yml в текущей директории или файла описания ресурсов, указанный параметром -t/--template;
  2. Если вы хотите использовать режим Cli, это должно быть выполнено в формате s cli component name method parameter, и при этом не требуется наличие файла Yaml.

Как очень простой пример, если у вас есть файл описания ресурсов приложения s.yaml следующего содержания:

name: myApp
edition: 1.0.0
access: "myaccess"

services:
  website-starter:
    component: devsapp/website
    props:
      bucket: testbucket
  backend-starter:
    component: devsapp/demo
    props:
      service:
        name: serviceName
      function:
        name: functionName
      region: cn-hangzhou

В этом случае вы можете выполнить команду s deploy для развертывания приложения myApp. Если вы выполните команду s backend-starter deploy, вы сможете развернуть проект/сервис backend-starter в приложении myApp.

В процессе развертывания, необходимые параметры могут быть прочитаны из файла Yaml.Однако в некоторых случаях использование файла YAML по стандарту Serverless Devs неудобно (например, для синхронизации ресурсов онлайн с локальными или для преобразования YAML Funcraft в YAML Serverless Devs), вы можете выбрать чистую командную строку, то есть режим s cli.

В режиме s cli, поскольку файлы описания ресурсов, такие как YAML, не могут быть прочитаны, многие параметры необходимо заполнить самостоятельно. Существует два способа заполнения:

  1. Присвойте соответствующие параметры YAML с помощью параметров -p/--prop, поддерживаемых s cli. Например, s backend-starter deploy в приведенном выше примере можно переписать следующим образом:

    s cli devsapp/demo -p "{\"service\":{\"name\":\"serviceName\"},\"function\":{\"name\":\"functionName\"},\"region\":\"cn-hangzhou\"}"
  2. С помощью некоторых параметров, поддерживаемых самим демонстрационным компонентом, например, с помощью s cli devsapp/demo -h, можно получить справочную информацию, часть которой приведена ниже:

      --region [region] [C-Required] Укажите регион FC, значение: cn-hangzhou/cn-beijing/cn-hangzhou/cn-shanghai/cn-qingdao/cn-zhangjiakou/cn-huhehaote/cn-shenzhen/cn-chengdu/cn-hongkong/ap-southeast-1/ap-southeast-2/ap-southeast-3/ap-southeast-5/ap-northeast-1/eu-central-1/eu-west-1/us-west-1/us-east-1/ap-south-1
      --service-name [serviceName] [C-Required] Укажите имя сервиса FC
      --function-name [functionName] [Необязательно] Укажите имя функции FC
    ```    В этом случае вышеуказанные функции можно реализовать с помощью следующих команд:
    ```shell script
    s cli devsapp/demo --region cn-hangzhou --service-name serviceName --function-name functionName

Сравнение функций| Режим | Как использовать | Преимущества | Недостатки | Подходящие сценарии |

| --- | --- | --- | --- | --- | | Режим Yaml | В директории приложения с Yaml-файлом, соответствующим спецификации Serverless Devs и описывающим ресурсы/поведение, выполните команду, соответствующую компоненту, чтобы использовать его напрямую, например s deploy, s servicename build и т. д. | Да, одноклик-развертывание полного приложения (например, определенное приложение указывает на несколько сервисов, которые можно развернуть одним кликом через эту команду); в то же время, с помощью документа описания ресурсов/поведения, приложение можно описать лучше, проще и яснее. | Необходимо изучить спецификацию Yaml, и иногда это может быть более сложным при комбинации с некоторыми автоматизированными процессами. | Операции, такие как развертывание, эксплуатация и обслуживание, особенно пакетные операции, более подходят. | | Чистый режим CLI | Вызывается подкомандой cli в любой директории, то же самое применимо ко всем компонентам, например s cli deploy -p "{/"function/": /"function-name/"}", s cli fc-api listFunctions --service-name my-service | Относительно проще и быстрее использовать инструмент, и он легко комбинируется с автоматизированными процессами, снижая сложность изучения спецификации Yaml. | Для некоторых сложных проектов необходимо указать слишком много параметров в командной строке, и вероятность ошибок будет выше. || Более подходят для управления проектами и самостоятельного использования |## Идеи дизайна

❓ Почему существуют и режим Yaml, и режим CLI? 💬 Потому что в долгосрочной практике мы обнаружили, что описывать ресурсы через Yaml проще и удобнее. Например, K8S и т.д. также описываются через Yaml; однако в некоторых случаях файлы Yaml также могут стать бременем. Например, если вы хотите просмотреть список функций под определенным сервисом и список сервисов под определенной регионом, создание дополнительного Yaml-файла для такой простой задачи будет слишком громоздким. Поэтому в проекте Serverless Devs сохраняются два метода использования.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/serverless-devs-Serverless-Devs.git
git@api.gitlife.ru:oschina-mirror/serverless-devs-Serverless-Devs.git
oschina-mirror
serverless-devs-Serverless-Devs
serverless-devs-Serverless-Devs
master