title | description | position | category |
---|---|---|---|
Yaml VS Cli |
Сравнение режима Yaml и режима Cli инструментов Serverless Devs |
4 |
Обзор |
Основные инструменты Serverless Devs предоставляют два способа их использования.
Основное различие между двумя режимами заключается в следующем:
s.yaml
/s.yml
в текущей директории или файла описания ресурсов, указанный параметром -t
/--template
;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, не могут быть прочитаны, многие параметры необходимо заполнить самостоятельно. Существует два способа заполнения:
Присвойте соответствующие параметры YAML с помощью параметров -p
/--prop
, поддерживаемых s cli
. Например, s backend-starter deploy
в приведенном выше примере можно переписать следующим образом:
s cli devsapp/demo -p "{\"service\":{\"name\":\"serviceName\"},\"function\":{\"name\":\"functionName\"},\"region\":\"cn-hangzhou\"}"
С помощью некоторых параметров, поддерживаемых самим демонстрационным компонентом, например, с помощью 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 )