Bỏ qua để đến nội dung

Biến và dữ liệu trong một kịch bản

Một kịch bản có ba cơ chế để làm dữ liệu lưu chuyển. Chúng bổ sung cho nhau, và việc biết chọn cơ chế nào giúp bạn tránh được rất nhiều dây nối vô ích.

Đây là cơ chế chính: một chiếc hộp tạo ra một giá trị, giá trị đó đi trên liên kết, có thể được một bộ chọn nhào nặn lại, rồi tới đầu vào của chiếc hộp tiếp theo.

Cách này tường minh và dễ đọc: luồng dữ liệu chính là hình vẽ.

Hãy dùng nó cho mọi thứ mang tính cục bộ — kết quả của một lời gọi được lời gọi kế tiếp tiêu thụ.

Một không gian có tên, riêng cho lần chạy:

  • Đặt biến ghi một giá trị;
  • Lấy biến đọc lại nó;
  • một giá trị kiểu variable đọc nó ngay tại chỗ, trong bất kỳ trường nào;
  • {{nom}} đọc nó trong một mẫu (Transform template, Map);
  • đối tượng vars đọc nó trong một hành động mã;
  • Thêm vào danh sáchXóa khỏi danh sách có thể ghi thẳng vào biến nguồn.

Một biến của lần chạy sẽ phủ lên môi trường trong suốt thời gian thực thi: một yêu cầu dùng {{token}} sẽ lấy token do kịch bản đặt ra thay vì token của môi trường.

Hãy dùng nó cho những gì mang tính toàn cục với lần chạy: một token, một định danh tương quan, một bộ đếm — thay vì kéo một liên kết xuyên suốt cả đồ thị.

  • Chiếc hộp Input / Param khai báo một hoặc nhiều tham số có tên, mỗi tham số có kiểu riêng. Nó phát ra một đối tượng duy nhất { nom: valeur, … }.

    Các giá trị đến, theo thứ tự: từ lúc khởi chạy (giao diện hoặc MCP), từ dòng lệnh (--param nom=valeur), hoặc từ một lời hỏi tương tác nếu kịch bản chạy tới chiếc hộp mà chưa có giá trị nào.

  • Chiếc hộp Output / Return phơi ra một kết quả có tên cho bên gọi. Một kịch bản được gọi bởi một hành động Chạy kịch bản sẽ khiến các đầu ra của nó hiện ra trên cổng output:<nom> của bên gọi.

Đây là thứ cho phép tổ hợp: một kịch bản “đăng nhập” trả về một token, rồi được những kịch bản khác tái sử dụng.

Một hành động yêu cầu có một cổng env: đấu vào đó một môi trường (giá trị kiểu environment, hoặc tên môi trường) sẽ khiến lời gọi chạy trong môi trường đó.

Đây là cách cho cùng một kịch bản chạy lần lượt trên staging rồi production mà không phải nhân bản bất cứ thứ gì — hãy truyền môi trường như một tham số của kịch bản.

Việc giải quyết ở chế độ headless

Section titled “Việc giải quyết ở chế độ headless”

Mọi giá trị có kiểu đều được giải quyết theo cùng một cách trong giao diện và khi không có cửa sổ: danh sách tùy chỉnh, kiểu liệt kê, bản xem trước của môi trường. Một kịch bản chạy được trong giao diện thì cũng chạy được trong CI.

Một tên môi trường nhập nhằng (hai môi trường trùng tên) sẽ gây ra một lỗi rõ ràng: khi đó hãy truyền định danh.

Chuyển đổi tham số trên dòng lệnh

Section titled “Chuyển đổi tham số trên dòng lệnh”

--param nhận vào văn bản; Restorm chuyển đổi nó theo kiểu đã khai báo của tham số:

Kiểu đã khai báoBạn truyền vào gì
Số--param Seuil=42
Boolean--param Actif=true (1, yes, on đều được chấp nhận)
Phép tính ngàyMột ngày, hoặc một dấu thời gian epoch
Danh sáchJSON: --param Ids='[1,2,3]'
Kiểu liệt kêGiá trị, được kiểm tra đối chiếu với tập cho phép
Danh sách tùy chỉnhNhãn, được chuyển thành giá trị (RougeFF0000)
Môi trườngMột tên hoặc một định danh môi trường
Còn lạiChuỗi thô

Một phép chuyển đổi không thực hiện được sẽ làm lần khởi chạy thất bại kèm một thông báo rõ ràng, thay vì chạy với một giá trị sai.