본문 바로가기
  • 클라우드야 나랑 친해지자!
클라우드/GCP

Cloud Functions : 서버리스 애플리케이션

by 정민규 2021. 2. 9.
반응형

수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다

개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.

 

잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!


 

[ 이론 ]

 

* Cloud Functions 이란 무엇인가?

 

cloud.google.com/functions/docs/concepts/overview?hl=ko

 

Cloud Functions 개요  |  Cloud Functions 문서  |  Google Cloud

Google Cloud Functions란 무엇인가요? Google Cloud Functions는 클라우드 서비스를 빌드 및 연결하기 위한 서버리스 실행 환경입니다. Cloud Functions를 사용하면 클라우드 인프라와 서비스에서 발생하는 이벤

cloud.google.com

요약 )

  • 클라우드에서 코드를 실행하는 가장 가장 간편한 방법
  • 자동 확장, 우수한 가용성, 내결합성
  • 프로비저닝, 관리, 패치 또는 업데이트가 필요한 서버 없음
  • 코드를 실행하는 만큼만 지불
  • 클라우드 서비스 연결 및 확장

 

 

* 이벤트 및 트리거 설명

 

cloud.google.com/functions/docs/concepts/events-triggers?hl=ko

 

이벤트 및 트리거  |  Cloud Functions 문서  |  Google Cloud

이 페이지에서는 Google Cloud Functions와 관련된 이벤트 개념을 설명합니다. 또한 트리거를 만들고 이를 함수에 연결하여 이벤트 발생 시 실행되도록 하는 방법도 설명합니다. 이벤트 이벤트란 클라

cloud.google.com

 

요약 )

 

* 이벤트

이벤트란 클라우드 환경 내에서 발생하여 조치가 필요할 수 있는 모든 상황입니다.

이벤트는 데이터베이스의 데이터 변경, 저장소 시스템에 파일 추가, 새로운 가상 머신 인스턴스 생성 등일 수 있습니다. 가장 친숙한 일반적인 이벤트는 HTTP 요청이지만, Cloud Storage 또는 Cloud Pub/Sub와 같이 다른 곳에서도 제공될 수 있습니다.

 

 

* 트리거

Cloud Functions에 있어 트리거는 접착제와 같습니다.

트리거를 사용하여 주어진 기능으로 라우트되어야 하는 이벤트를 지정합니다.

트리거를 사용하여 이벤트에 대한 응답을 생성할 수 있습니다.

트리거란 특정 이벤트 또는 이벤트 집합에 관심이 있음을 나타내는 선언입니다.

함수와 트리거를 결합하면 이벤트를 포착하여 조치를 취할 수 있습니다.

 

 

 

 

[ 실습 ]

 

* 기본 설정

 

검색창에 Cloud Functions API 검색 > 'API 사용 설정됨' 상태 확인 > 화면 우측 상단에 Cloud Shell 클릭

 

 

 

 

 

* Hello, World! 예제 실습

 

웹사이트에 Hello, World! 문구를 출력해보자.

 

터미널에 아래 내용을 입력합니다.

: 파이썬 언어로 hello_world 함수를 생성하고 Hello, World! 를 출력하도록 하는 예제입니다. 

 

 

 

 

함수가 생성되면서 여러 정보가 출력되는데,

url : https://[데이터센터]-[프로젝트ID].cloudfunctinos.net/[함수이름]

url 을 클릭해보면 Hello, World! 가 출력된 새로운 웹사이트가 화면에 보이는 것을 확인할 수 있습니다.

 

 

 

 

Cloud Functions 메뉴에 들어가보면

hello_world 함수가 생성된 것을 확인할 수 있습니다.

 

 

 

 

 

* 함수생성 연습 1)

 

Google Cloud Functions test 가 출력되도록 test 함수를 만들어봤습니다.

 

 

 

url 링크 클릭!

 

 

위와 같은 화면을 볼 수 있음.

 

 

test 함수가 생성된 것을 확인할 수 있음.

 

 

 

* 함수생성 연습 2)

 

 

www.youtube.com/watch?v=mg7FweYjasE

 

 

위성을 촬영하는 유투브라이브를 업로드 해보도록 하겠습니다.

터미널로 돌아와서 새로운 디렉터리를 만들고 코드를 넣어보겠습니다.

 

$mkdir iss
$cd iss
$vi main.py

 

def ISS_real 함수를 만들고 네모박스 안의 내용을 넣습니다.

( 유투브동영상 > 공유 > 퍼가기 ) 누르면 아래 html 코드를 확인할 수 있습니다.

 

def ISS_real(request):
     return '<iframe width="560" height="315" src="www.youtube.com/embed/mg7FweYjasE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>\n'

 

 

 

ISS_real 함수를 http에 배포합니다.

 

$gcloud beta functions deploy ISS_real --runtime python39 --trigger-http     // ISS_real 함수 배포

 

 

 

url 링크로 접속하면 아래와 같이 HTTP에 유투브 동영상이 업로드된 것을 볼 수 있습니다.

 

 

 

 

Cloud Functions 에 ISS_real 함수가 생성된 것을 확인할 수 있습니다.

 

 

 

-> 이와같이 Python 코드를 적절하게 사용하여 함수를 구성하면 HTTP를 통해 배포할 수 있게 됩니다!

반응형

댓글