Node-RED 흐름을 팀에서 공유할 때 유의해야 할 사항

3052 단어 node-red
Node-RED의 흐름의 공유로 빠지기 쉬운 것이, 곳곳의 노드에 URL이나 고유 ID등의 「매직 넘버」, 「매직 스트링」이 흩어져 버려, 어디를 고치면 좋은지 모르게 된다고 하는 일이 있습니다

Node-RED의 흐름을 비즈니스 내에서 활용하면 프로그래밍 기술이 현장에서도 그 흐름 프로그래밍 중에 시각적으로 수행되는 작업을 확인할 수 있다는 이점이 있다고 생각합니다.
Node.js를 모르는 사람, 오히려 프로그래밍을 모르는 사람이라도, 노드 안의 설정치를 조금 바꾸어 보는 조작은 할 수 있을 것입니다.

init 플로우 작성




이 흐름은 몇 분 주기이며 http POST를 수행하는 흐름입니다.
POST 하는 body를 변경하거나, 안에서 id를 바꾸거나 해, 그 때에 http request등의 내용이 바뀝니다.
복수의 플로우에 변경 개소가 걸려 버리면, 변경에 누락이 나 버리는 일이 있습니다.
가능한 한 사람이 괴롭히는 곳은 적게해야합니다.

시작시 흐름을 실행



「각종 설정, 초기화 플로우」로 나타내고 있는 플로우는 배치나 node-red가 기동한 타이밍으로 한 번만 기동하게 되어 있습니다.
inject 노드의 설정을 아래와 같이 설정합시다.



설정할 노드를 하나로 결합



팀에서 공유할 때는 [config] 노드만 설정을 변경하도록 안내합니다.



이렇게 flow 변수(또는 global 변수)에 설정값을 대입하고 있습니다.

function 노드를 사용할 때는

function 노드
var hoge = {};
hoge['authorization'] = 'dummyheaders';

flow.set("hoge",headers);

이렇게 하면 flow.headers 에 값을 할당할 수 있습니다. (flow를 global로 하면 global context에 저장할 수 있습니다.)
가능한 한 자주 괴롭히는 노드는 적게 하고 싶기 때문에, 한 곳에 정리하도록 유의합시다.

설정값 사용법



change 노드에서 flow context의 값을 msg 객체에 할당하거나 function 노드에서 가져옵니다.



두 번째 예와 같이 $flowContext(string) 의 Jsonata 함수도 준비되어 있으므로 좀 더 정교한 쓰기도 할 수 있다고 생각합니다.

function으로 취득할 때는 flow.get("device") 와 같이 지정해 flow context를 취득할 수 있습니다.

요약



팀에서 개발이 아닌 Node-RED 흐름을 활용할 때 조심하는 것을 썼습니다.
여러가지 노드를 적절히 만지게 하면 절대 휴먼 에러가 나오므로, 가능한 한 손을 넣는 개소는 적게 되도록 합시다.

좋은 웹페이지 즐겨찾기