پرش به محتویات

قواعد

هر فایل تابع هنگام شروع ربات و اجرای validate بررسی می‌شود. اگر یک فایل نادرست باشد، هیچ‌چیز اجرا نمی‌شود؛ بنابراین اشتباه‌ها پیش از فعال شدن منو پیدا می‌شوند.

کدام فایل‌ها خوانده می‌شوند

  • فقط فایل‌های با پسوند .yaml یا .yml خوانده می‌شوند. بقیه نادیده گرفته می‌شوند.
  • زیردایرکتوری‌های function_directory نیز خوانده می‌شوند.
  • هر فایل باید دقیقاً یک تابع را توصیف کند.

نام‌گذاری

  • name الزامی است و باید با ^[A-Za-z0-9._-]+$ مطابقت داشته باشد: حروف، ارقام، .، - و _. فاصله مجاز نیست.
  • نام‌ها بدون توجه به بزرگی حروف یکتا هستند. Deploy و deploy حتی اگر در فایل‌های متفاوت باشند با هم تداخل دارند.
  • نام‌های رزروشده ممنوع‌اند. نمی‌توانید تابعی را command یا script بنامید؛ این نام‌ها متعلق به توابع توکار هستند.

فرمان

  • run الزامی است. فرمان را همراه جایگزین‌ها در محل مقادیر بنویسید.
  • نحو جایگزین هنگام اعتبارسنجی پیکربندی بررسی می‌شود؛ بنابراین {{ ناقص زود گزارش می‌شود.

پارامترها

  • هر پارامتر به name نیاز دارد که از همان قاعدهٔ نویسه‌های نام تابع پیروی کند.
  • type باید string، int یا bool باشد. حذف آن یعنی string. مقادیر و پیش‌فرض‌های تعریف‌شده با int یا bool بررسی می‌شوند.
  • نام پارامتر نمی‌تواند یکی از تنظیمات دکمه باشد: name، type، icon، id، function، confirm، timeout، workdir، env، columns یا items. نام‌های command، path و args مجاز هستند.
  • هر مقدار نوشته‌شده روی دکمه باید با پارامتری که تابع آن دکمه تعریف کرده مطابقت داشته باشد.

فیلد run تابع فقط می‌تواند از جایگزین‌های پارامترهای تعریف‌شده استفاده کند. جایگزین تعریف‌نشده خطاست.

غلط‌های تایپی خطا هستند

کلیدهای ناشناخته رد می‌شوند. غلطی مانند requird: به‌جای required: به‌جای نادیده گرفته شدن، اعتبارسنجی را متوقف می‌کند.

این فایل بارگذاری نمی‌شود

functions/broken.yaml
name: broken
run: "echo {{.args}}"
params:
  - name: args
    requird: true  # not allowed: unknown key

مقادیر الزامی و پیش‌فرض

  • پارامتر الزامی بدون مقدار اعتبارسنجی را با پیامی مانند required parameter "args" for function "greet" is missing ناموفق می‌کند.
  • مقدار موجود اما خالی، ارائه‌نشده به‌شمار می‌آید.
  • پارامتر اختیاری از default خود استفاده می‌کند. اگر default نداشته باشد، خالی می‌شود و بخش‌های اختیاری فرمان به این روش حذف می‌شوند.

الزامی و اختیاری در یک فایل

functions/tail-log.yaml
name: tail-log
run: "tail -n {{.args}} {{.path}}"
params:
  - name: path
    required: true
    description: مسیر فایل گزارش
  - name: args
    default: "200"
    description: تعداد خط‌ها

دکمه‌ای که فقط path را تنظیم کند، فرمان tail -n 200 /var/log/app.log را اجرا می‌کند.

مرتبط