실습 자료
액션을 만들고 트리거를 통해 액션을 실행시키는 방식을 알아봅니다
액션은
독자적인 특정 액션을 실행시킬 수 있지만 트리거에 파라미터를 넣어 액션을 호출할 시 다른
방식으로도 실행이 가능합니다
액션을 단독으로 실행시킬 때와 트리거에 파라미터를 넣어 액션을 실행시킬 때 , 결과 값이 어떻게 달라
지는지에 집중해서 확인해보고 , 외부와 통신할 수 있는 URL 주소를 통해서도 트리거를 작동시키는 것
까지 함께 살펴봅니다 . 마지막으로는 액션에 코드가 아닌 여러 코드파일로 이루어진 압축파일을 이용하
여 네이버 클라 우드 플랫폼 내의 다른 상품과 연동하여 사용하는 방법에 대해서도 실습해봅니다
1
Action 은 Private Subnet 서버에서 실행할 수 있습니다
Private subnet 사용. (KR-2 Private subnet만 된다. KR-1 Private subnet은 안된다.)
KR-2에 Private subnet을 만들자.
10.0.8.0/23
2
Route Table 설정에 외부 통신은 NATGW 사용
VPC - NAT Subnet 로 생성. 10.0.3.0/24
VPC - NAT Gateway 로 생성.
1
패키지 생성
Compute > Cloud Functions 탭 > Action > 패키지 생성 클릭
hello
2
액션 생성
Cloud Functions 탭 > Action > Action 생
패키지 : hello 선택
타입 : 일반 액션
이름 : helloNCP
런타임 : others 선택 > nodejs:8
타입 : 코드
코드 :
function main(params) {
return {payload: 'Hello, ' + params.name + ' from ' + params.place + '?'};
}
디폴트 파라미터
{"name":"stranger","place":"somewhere"}
VPC : vpc 선택
Subnet : lab1 vpc 내 private subnet 선택
옵션 설정 : Default 값 유지
# 옵션은 참고
하단의 생성 버튼 클릭
3
# 트리거 생성 - API Gateway 사용시
Trigger 항목에 추가 클릭
연결 방법 : 신규 생성 선택
타입 : API Gateway 선택 후 하단의 다음 버튼 클릭
4
타입 : Webhook
Product : 생성 > lab hello > 저장
API : 생성 > labhello > 저장
Resource: 생성 > labhello > 저장
Stage : 생성 > labhello > 저장
API Key 인증 : off 로 유지
인증 : none
생성
저장하고 액션 연결하기 버튼 클릭 후 저장 버튼 클릭
5
# 액션 단일 동작
Cloud Functions 탭 > Action > hello 패키지 > helloNCP 액션 선택
실행
결과만 보기를 True 로 변경
실행
Hello, stranger from somewhere? 가 출력되는지 확인
1
Cloud function > Action > helloNCP 클릭
API Gateway 클릭 후 하단의 Trigger 탭으로 이동하여 외부 호출 URL 확인
2
서버에서 외부 연결 호출 URL 로 POST 요청을 전송
명령어 :
curl -X POST <URL 주소> -H "Content-Type:application/json" -d
'{"name":"NCP","place":"Seoul"}'
curl -X POST https://sjky89vfm3.apigw.ntruss.com/labhello/labhello/labhello -H "Content-Type:application/json" -d '{"name":"NCP","place":"Seoul"}'
{"activationId":"5ae2004011b34f1ba2004011b39f1b6e"}
3
HelloNCP 액션 > 모니터링 탭에서 ActionId 선택 후 자세히 보기 클릭 > 결과로
{"payload":" NCP from Seoul?"} 가 노출되었는지 확인
Storage > Object storage 로 이동
버킷 생성
seo-07-21-1
생성
버킷 생성 후 버킷 우측 메뉴에서 이벤트 관리 클릭
생성
이벤트 이름 :
object-event
객체 생성 전체 선택
대상 : cloud function 선택 > 트리거 생성 클릭
트리거 이름 :
object-trigger
아래에 신규 액션 생성
7
패키지 : hello 선택
일반액션
이름
objectstorage-event
런타임 - others - nodejs 16
타입 : code
function main(params) {
return {payload: "Hello, file is. uploaded!"};
}
VPC : lab1 vpc
Subnet : private subnet
생성
8
이전에 작업하던 페이지로 이동 작업하던 브라우저 탭의 왼쪽 탭으로 이동
'연결 액션 설정' 새로고침
연결 액션에서 방금 만든 ‘objectstorage event’ 선택
생성
오브젝트 스토리지 이벤트 페이 지에서 방금 만든 ‘object trigger’ 선택
재귀 호출 주의 선택 > 생성
9
Services > object storage > 이벤트 설정한 버킷으로 이동
파일 올리기 - 로컬 PC 에 있는 파일 업로드
파일을 업로드한 후 Services > Cloud Functions > Action
objectstorage--eventevent 액션 클릭
모니터링 탭으로 이동
실행된 Action ID 확인
다음
https://brunch.co.kr/@topasvga/4778