Alibaba Cloud의 Function Compute로 웹사이트 만들기

웹사이트라고 해도 단지 HTML을 돌려줄 뿐의 녀석입니다. 거의 제목 사기.

Function Compute란?



Function Compute의 개요입니다. 먼저 공식 문서을 살펴 보겠습니다.

Alibaba Cloud Function Compute는 이벤트 중심의 완전 관리형 컴퓨팅 서비스입니다. Function Compute를 사용하면 서버 및 기타 인프라 관리를 걱정하지 않고 코드를 작성하고 업로드할 수 있습니다.

흠. 알기 쉽게 구체적인 예를 섞어 설명합니다.

예를 들면 OSS에 파일을 업로드했을 때에 그 업로드 이벤트를 검지해 무언가 처리를 실시한다(Slack 통지라든지)입니다. 소위 서버리스 환경을 실현합니다.

여기서는 HTTP GET 요청을 트리거하고 응답을 반환합니다.

매월 100만회의 리퀘스트는 무료(참고: 공식 문서 )이므로 개인이용이라면 부담없이 사용할 수 있습니다. 고맙습니다.

서비스 및 함수 및 트리거



FC에는 서비스와 함수의 두 가지 개념이 있습니다. 엄청 간단하게 설명하면 함수가 이벤트에 대응하는 처리로, 서비스는 함수의 넣어입니다.

그리고 트리거는 어떤 조건에서 함수를 실행할지에 대한 설정입니다.

현재 Java, Node.js, Python을 지원하지만 HTTP 이벤트에 대해서는 아직 node.js 만 지원합니다.

준비



Resource Access Management에서 사용자를 만들고 Function Compute 권한을 부여하십시오.

Function Compute 사용하기



공식 튜토리얼HTTP 트리거 문서 참조.

먼저 Function Compute CLI 도구fcliGitHub Releases에서 다운로드합니다.

그런 다음 로컬 적절한 위치에 HTTP 트리거에서 수행되는 처리 함수를 작성합니다. 여기에서는 ~/src/function_compute/my_website/http.js 라고 합니다.
$ mkdir ~/src/function_compute/my_website
$ cd ~/src/function_compute/my_website
$ vim http.js

다음은 http.js입니다.
// http.js
const getRawBody = require('raw-body')
module.exports.handler = function(request, response, context) {
  getRawBody(request, function(err, data){
    const respBody = new Buffer("<html><h1>hello FunctionCompute</h1></html>")
    response.setStatusCode(200)
    response.setHeader('content-type', 'text/html')
    response.send(respBody)
  })
};
getRawBody()에서 응답을 정의합니다.

서비스 및 함수 만들기



이제 서비스와 함수를 새로 만듭니다. 서비스 이름은 my_website이고 함수 이름은 http입니다.
>>> mks my_website
>>> cd my_website
>>> mkf http -t nodejs6 -h http.handler
mksmake service이고 mkfmake function입니다.

※ 커맨드 실행중에 40x나 50x가 돌아온 경우는 여기 문제해결을 참조해 주십시오.

코드 편집은 GUI에서도 가능하지만 명령줄을 사용하는 것이 좋습니다. (가끔 화면이 미묘한 거동을 하기 때문에)

트리거 생성



이쪽도 fcli 로 커맨드 라인으로부터 작성하고 싶었습니다만, 트리거 작성용의 mkt 가 아직 http 에 대응하고 있지 않는 (2018/7/5) 때문에 콘솔 화면으로부터 만듭니다.

↓옵션의 설명문에는 서포트하고 있다고 써 있다
>>> mkt --help
      --etag string              trigger etag for update
      --help
  -r, --invocation-role string   invocation role, timer type trigger optional
  -s, --source-arn string        event source arn, timer type trigger optional
  -c, --trigger-config string    trigger config file
  -t, --type string              trigger type, support oss, log, timer, http, cdn_events now (default "oss")

>>> mkt http -t http -c httpTrigger.yml
Error: unsupported trigger type, expect oss, log, timer, http, cdn_events, actual http

거짓말 http가있는 얀케

구현되지 않은 것 같습니다.

추가:
v0.20에서 구현된 것 같아, 제대로 사용할 수 있었습니다.

이제 콘솔에서 트리거를 만듭니다.


이제 OK를 누르면 트리거가 생성됩니다.


브라우저에서 확인



함수 페이지의 코드 탭에 있는 URL을 복사합니다.


복사한 URL에 액세스하면 제대로 보였습니다. 완성.


요약



공식 문서가 최강. 그러나 새로운 것인지 조금 아직 버그하고 있다.

FunctionCompute와 TableStore로 서버리스 API 만들기

좋은 웹페이지 즐겨찾기