(튜토리얼) NASA 태양 플레어 데이터 자동화 워크플로우 🛰️(⭐⭐)

생성일
이름
(튜토리얼) NASA 태양 플레어 데이터 자동화 워크플로우 🛰️(⭐⭐)
Created by
  • data_popcorn
https://docs.n8n.io/try-it-out/longer-introduction/ 내용을 토대로 제작되었습니다.

워크플로우 다운로드

1. 워크플로우 개요

이 n8n 워크플로우는 NASA의 DONKI(Dataset Of Notifications, Knowledge, Information) 시스템에서 태양 플레어(Solar Flare) 데이터를 주기적으로 가져와 특정 조건에 따라 필터링하고, 결과를 PostBin을 통해 저장하는 자동화 프로세스입니다.

주요 기능:

NASA DONKI API를 활용하여 지난 7일간의 태양 플레어 데이터를 가져옵니다.
특정 조건(ClassType이 "C" 포함 여부)에 따라 데이터를 필터링합니다.
필터링된 데이터를 PostBin 서비스에 저장합니다.

해결하는 문제:

태양 활동을 모니터링하는 과정에서 매번 데이터를 수동으로 가져오는 번거로움을 줄이고, 특정 조건을 만족하는 데이터만 자동으로 필터링하여 저장합니다.

사용자 혜택:

NASA 데이터를 손쉽게 수집하고 관리 가능
특정 조건을 충족하는 데이터만 필터링하여 정리
자동화된 프로세스를 통해 실시간 모니터링 가능

2. 사전 작업 ✅

이 워크플로우를 실행하기 위해서는 다음 준비가 필요합니다.
NASA API Key 발급:
NASA API 포털에서 API 키를 생성하고, n8n에서 자격 증명 추가
PostBin 계정 및 Bin 생성:
PostBin을 활용하여 데이터를 저장하므로 계정 생성 및 Bin ID 확인 필요

3. 주요 기능 및 역할 ⚙️

이 워크플로우는 여러 개의 노드로 구성되며, 각 노드의 역할은 다음과 같습니다.

1️⃣ Schedule Trigger

매주 월요일 오전 9시에 워크플로우를 자동 실행합니다.

2️⃣ NASA 데이터 수집 (NASA 노드)

DONKI API에서 지난 7일간의 태양 플레어 데이터를 가져옵니다.
요청 매개변수: startDate (오늘 날짜 기준 7일 전)
API 자격 증명: NASA API Key 필요
우측 상단에 설정() 옵션을 누르고 Timezone을 Asia/Seoul로 변경합니다.

NASA 노드 추가 및 자격 증명 설정

1.
트리거 노드 이후 + 버튼을 눌러 노드 추가 후 NASA를 검색 & 선택. DONKI 태양광 플레어 받기를 선택합니다. 이 작업은 최근의 태양 플레어에 대한 보고서를 반환합니다. 연산을 선택하면 n8n이 노드를 캔버스에 추가하고 엽니다.
2.
NASA API에 액세스하려면 자격 증명을 설정해야 합니다:
a.
NASA API에 대한 자격 증명 드롭다운을 선택합니다.
b.
[새로 만들기]를 선택합니다. n8n 자격 증명 보기가 열립니다.
c.
NASA API로 이동하여 API 키 생성에 양식을 작성합니다. NASA는 키를 생성하여 표시합니다. (이런 형식입니다. VG7azJnxdf6sPXgdKuPGplbGjZD3RSY9nAoWfNPf )
d.
키를 복사하여 n8n의 API 키에 붙여 넣습니다.
e.
저장을 선택합니다.
f.
자격 증명 화면을 닫습니다. n8n이 노드로 돌아갑니다. 새 자격 증명은 NASA API용 자격 증명에서 자동으로 선택해야 합니다.
3.
기본적으로 DONKI Solar Flare는 지난 30일 동안의 데이터를 제공합니다. 마지막 주로만 제한하려면 추가 필드를 사용합니다:
a.
추가 필드를 선택합니다.
b.
시작 날짜를 선택합니다.
c.
일주일 전부터 보고서를 받으려면 식을 사용할 수 있습니다: 시작 날짜 옆에서  탭을 선택한 다음 확장 버튼을 선택하여 전체 식 편집기를 엽니다.
d.
 필드에 다음 식을 입력합니다:
{{$today.minus({days: 7}).toFormat('yyyy-MM-dd')}}
💡
n8n은 럭슨을 사용하여 날짜와 시간을 처리하며 편의상 두 가지 변수를 제공합니다: $now 그리고. $today. 자세한 내용은 식 럭슨을 참조하세요.
4.
식 편집 모드를 닫으면 NASA 노드로 돌아갑니다.
5.
이제 노드가 작동 중인지 확인하고 예상 날짜를 반환할 수 있습니다: 테스트 단계를 선택하여 노드를 수동으로 실행합니다. n8n은 NASA API를 호출하고 지난 7일 동안의 태양 플레어에 대한 세부 정보를 OUPTURE 섹션에 표시합니다.
6.
NASA 노드를 닫아 워크플로 캔버스로 돌아갑니다.

If 노드로 로직 추가

3️⃣ 데이터 필터링 (If 노드)

가져온 태양 플레어 데이터 중 classType 값이 "C"를 포함하는 경우를 필터링합니다.
필터링된 데이터만 후속 처리로 전달합니다.
n8n은 워크플로우에서 복잡한 로직을 지원합니다. 이 튜토리얼에서는 If 노드를 사용하여 NASA 데이터에서 각각 보고서를 생성하는 두 개의 분기를 생성합니다. 
태양 플레어에는 다섯 가지 분류가 있습니다. 하위 분류가 있는 보고서를 한 출력으로 보내고 상위 분류가 있는 보고서를 다른 출력으로 보내는 논리를 만들 수 있습니다.
If 노드 추가:
1.
NASA 노드에서 노드 추가 커넥터를 선택합니다.
2.
If. n8n 검색은 검색과 일치하는 노드 목록을 보여줍니다.
3.
캔버스에 노드를 추가하려면 If를 선택합니다.
n8n이 노드를 엽니다.
4.
의 값을 확인해야 합니다. classType NASA 데이터의 속성. 이렇게 하려면:
a.
드래그 클래스값 1을 입력합니다.
이전 섹션에서 NASA 노드를 실행했는지 확인합니다.
이전 섹션의 단계에 따라 NASA 노드를 실행하지 않았다면 이 단계에서 작업할 데이터가 표시되지 않습니다.
b.
비교 작업을 포함으로 변경합니다.
c.
값 2에 X를 입력합니다.
이는 태양 플레어의 가장 높은 분류입니다.
다음 단계에서는 X 등급 태양광 플레어에 대한 보고서와 모든 소형 태양광 플레어에 대한 보고서 두 개를 작성합니다.
d.
이제 노드가 작동 중인지 확인하고 예상 날짜를 반환할 수 있습니다: 테스트 단계를 선택하여 노드를 수동으로 실행합니다. n8n은 조건에 대해 데이터를 테스트하고 출력 패널에서 참 또는 거짓과 일치하는 결과를 표시합니다.
💡
이 튜토리얼에서는 실시간 날짜로 작업하고 있습니다. 워크플로를 실행할 때 X 클래스 태양 플레어가 없는 것을 발견하면  2의 X를 A, B, C 또는 M으로 교체해 보세요.

3️⃣ 데이터 필터링 (If 노드)

가져온 태양 플레어 데이터 중 classType 값이 "C"를 포함하는 경우를 필터링합니다.
필터링된 데이터만 후속 처리로 전달합니다.

워크플로에서 데이터 출력

워크플로의 마지막 단계는 태양 플레어에 대한 두 보고서를 보내는 것입니다. 이 예에서는 포스트빈으로 데이터를 전송합니다. 포스트빈은 데이터를 받아 임시 웹 페이지에 표시하는 서비스입니다.
1.
If 노드에서 true로 표시된 노드 연결기 추가를 선택합니다.
2.
PostBin을 검색합니다. n8n은 검색과 일치하는 노드 목록을 보여줍니다.
3.
PostBin을 선택합니다.
4.
요청 보내기를 선택합니다. n8n은 노드를 캔버스에 추가하고 엽니다.
5.
포스트빈으로 이동하여 빈 만들기를 선택합니다.
워크플로를 테스트할 때 탭으로 돌아갈 수 있도록 탭을 열어 둡니다.
6.
쓰레기통 ID를 복사합니다. 다음과 비슷해 보입니다. 1651063625300-2016451240051
7.
n8n에서 포스트빈 ID를 빈 ID에 붙여 넣습니다.
8.
이제 Postbin으로 보낼 데이터를 구성합니다.
빈 콘텐츠 옆에서 식 을 선택한 다음 확장 버튼을 선택하여 전체 식 편집기를 엽니다.
9.
현재 노드 > 입력 데이터 > JSON > classType을 선택합니다. n8n은 식을 식 편집기에 추가하고 샘플 출력을 표시합니다.
10.
표현식은 다음과 같습니다: {{$json["classType"]}}.
전체 표현식이 되도록 메시지를 추가합니다:
There was a solar flare of class {{$json["classType"]}}
11.
식을 편집기를 닫아 노드로 돌아갑니다.
12.
포스트빈 노드를 닫아 캔버스로 돌아갑니다.
13.
다른 포스트빈 노드를 추가하여 If 노드의 잘못된 출력 경로를 처리합니다:
a.
포스트빈 노드 위로 마우스를 올린 다음 노드 컨텍스트 메뉴 > 중복 노드를 선택하여 첫 번째 포스트빈 노드를 복제합니다.
b.
거짓 커넥터를 If 노드에서 새 포스트빈 노드의 왼쪽으로 드래그합니다.

5️⃣ 추가적인 데이터 요청 처리 (PostBin2, PostBin3 노드)

저장된 데이터의 requestId를 기반으로 추가적인 처리 가능

워크플로 테스트

1.
이제 전체 워크플로를 테스트할 수 있습니다. 테스트 워크플로를 선택합니다. n8n은 진행 중인 각 단계를 표시하는 워크플로를 실행합니다.
2.
포스티빈으로 돌아갑니다. 페이지를 새로 고쳐 출력을 확인합니다.
3.
이 워크플로를 사용하려면(즉, 일주일에 한 번 자동으로 실행하려면) 활성화 토글을 선택하여 활성화해야 합니다.
💡
(제한 시간) 포스트빈의 쓰레기통은 생성 후 30분 동안 존재합니다. 이 제한 시간을 초과하는 경우 새 빈을 만들고 포스트빈 노드의 ID를 업데이트해야 할 수도 있습니다.

4. 동작 방식 (단계별 설명) 🔄

1️⃣ Schedule Trigger → 매주 월요일 오전 9시에 워크플로우 실행
2️⃣
NASA 노드 → DONKI API에서 태양 플레어 데이터를 가져옴
3️⃣
If 노드 → classType이 "C"를 포함하는 경우만 필터링
4️⃣
PostBin/PostBin1 노드 → 필터링된 데이터를 PostBin에 저장
5️⃣
PostBin2/PostBin3 노드 → 저장된 데이터 요청 ID를 기반으로 추가적인 처리 수행 가능

5. 예상 결과물 및 출력 📊

출력 예시:

PostBin에 저장된 데이터:
There was a solar flare of class C3.2
특정 조건을 충족하는 태양 플레어 데이터만 저장됩니다.
사용자는 PostBin을 통해 저장된 데이터를 확인할 수 있습니다.
이 워크플로우를 실행하면 NASA DONKI API에서 실시간 태양 플레어 데이터를 가져와 자동으로 필터링하고 저장할 수 있습니다. 🚀