Serverless 온라인 사진 처리 응용 프로그램 신속 구축

저자: 의현
더 많은 클라우드 네이티브 기술 정보알리바바 클라우드 네이티브 기술권
먼저 본문에 나타난 몇 가지 비교적 중요한 개념을 소개한다.
함수 계산(Function Compute): 함수 계산은 이벤트 구동 서비스로 함수 계산을 통해 사용자는 서버 등의 운행 상황을 관리할 필요가 없고 코드를 작성하여 업로드하기만 하면 된다.함수 계산은 계산 자원을 준비하고 사용자 코드를 탄력적으로 신축하는 방식으로 운행하며 사용자는 실제 코드 운행에 소모된 자원에 따라 비용을 지불해야 한다.함수 계산 추가 정보
참고 자료 .
ImageMagick: ImageMagick은 비트맵 파일을 보고, 편집하고, 이미지 형식을 변환하는 데 사용되는 오픈 소스 소프트웨어 번들입니다.그것은 100가지 이상의 이미지 형식을 읽고 편집할 수 있다.위키백과 참조
단어
ImageMagick은 이미지 처리의 유리한 도구로 ImageMagick을 빌려 그림의 재단과 축소를 쉽게 실현할 수 있다.많은 언어들이 ImageMagick의 호출 라이브러리를 봉인하지만 이미지 처리 기능과 핵심 업무 기능을 같은 서비스에 두면 소프트웨어 구조에 적합하지 않다.다음과 같은 두 가지 이유가 있습니다.
한편, 이미지 처리는 외부의bin에 의존하고 이미 컴파일된 2급제는 이식성이 없어 포장 발표에 번거로움을 가져왔다.다른 한편, 이미지 처리는 계산 자원을 비교적 소모하는 경우가 많다. 대부분의 업무 시스템에 있어 이미지 처리는 핵심 업무가 아니라 가장자리 업무에 속하기 때문에 전체 서비스에 비교적 많은 계산 자원을 남겨 두는 것은 수지가 맞지 않는다.더 좋은 선택은 이미지 처리 업무를 마이크로 서비스의 형식으로 나누어 탄력적인 베이스 서비스에 배치하는 것이다.이러한 기술 요구 사항에 대해 Serverless는 매우 적합합니다.
본고는 함수 계산 플랫폼에 탄력적이고 사용 가능한 이미지 처리 서비스를 신속하게 배치하고 이를 바탕으로 쉽게 맞춤형화하는 방법을 중점적으로 소개한다.

빠른 시작


다음은 함수 계산의 응용 센터를 빌려 이미지 변환 서비스를 신속하게 배치할 것입니다.


  • 함수 계산Image Resizer 적용 세부 정보 페이지을 엽니다.만약에 함수 계산 서비스를 아직 개통하지 않았다면 먼저 서비스를 개통해야 할 수도 있습니다. 또한 함수 계산은 매달 무료 한도가 있기 때문에 테스트 서비스는 비용이 발생하지 않습니다.


  • Image Resizer 적용 세부 정보 페이지의 맨 밑으로 스크롤하고 "즉시 배치"단추를 누르십시오.


  • 응용 프로그램 이름: my-image-resizer를 입력하고 "배치"단추를 누르십시오.


  • Http Trigger Endpoint의 웹 주소를 복사합니다.


  • 브라우저에서 위의 주소를 열거나curl을 통해 호출합니다.주의: 도메인 이름이 연결되어 있지 않기 때문에, 응용 센터에서는 브라우저에서 그림을 직접 열지 않고 기본적으로 다운로드합니다.
    curl 'https://xxxxx.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/my-image-resizer-ResizeService-5A40B5A8B981/my-image-resizer-ResizeFunction-3E71C57C0094/' --output resized.jpg

    작업 원리


    이것은 Http Trigger와 결합된 단일 함수의 응용 프로그램입니다.Http Trigger는 HTTP GET 방법으로 대외 노출 서비스를 하고 클라이언트는 세 가지 요청 매개 변수를 전달한다. 그것이 바로 URL, width와 Height이다.그 중
  • url은 처리해야 할 원본 이미지 주소를 표시한다
  • width는 재단하거나 축소한 그림의 폭을 나타낸다
  • height는 재단된 그림의 폭을 나타낸다.이 파라미터가 부족할 때, 축소하는 방식으로 그림을 조정하는 것을 표시합니다.

  • 이 애플리케이션의 스키마는 다음과 같습니다.
    FC 함수가 HTTP 요청을 수락한 후 다음 세 단계를 수행합니다.
  • URL이 가리키는 그림을 다운로드
  • 이미지 매직으로 이미지 변환
  • http 프로토콜을 통해 클라이언트에게 그림을 되돌려줍니다
  • 위에서 우리는 함수 계산의 응용 센터를 통해 이미지 변환 서비스를 신속하게 출시했다.함수 계산은 호출 횟수에 따라 요금을 받기 때문에 상술한 서비스는 온라인을 유지해도 비용이 발생하지 않는다.또 함수 계산은 매달 무료 한도가 있기 때문에 일상 개발의 호출에도 비용이 들지 않는다.

    맞춤형 개발


    도구에 의존하다


    본 프로젝트는 MacOS에서 개발된 것으로 관련된 도구는 플랫폼과 무관하며 리눅스와 Windows 데스크톱 시스템에도 똑같이 적용될 것입니다.이 예를 시작하기 전에 다음 도구가 올바르게 설치되어 최신 버전으로 업데이트되고 올바르게 설정되었는지 확인하십시오.
  • Docker
  • Funcraft

  • Fun 도구는 로컬 환경을 시뮬레이션하기 위해 docker에 의존합니다.
    MacOS 사용자는 homebrew를 사용하여 설치할 수 있습니다.
    brew cask install docker
    brew tap vangie/formula
    brew install fun

    Windows 및 Linux 사용자 설치는 다음을 참조하십시오.
  • https://github.com/aliyun/fun/blob/master/docs/usage/installation.md

  • 설치가 끝난 후에 먼저 fun config 설정을 초기화하는 것을 기억하세요.
    만약 당신이 이미 funcraft를 설치했다면, funcraft의 버전이 3.1.3 이상이어야 합니다.
    $ fun --version
    3.1.3

    초기화

    git clone https://github.com/vangie/fc-image-resizer
    cd fc-image-resizer

    설치 의존성

    npm install

    로컬 실행

    $ fun local start
    using template: .fun/build/artifacts/template.yml
    HttpTrigger httpTrigger of ResizeService/ResizeFunction was registered
            url: http://localhost:8000/2016-08-15/proxy/ResizeService/ResizeFunction
            methods: [ 'GET' ]
            authType: ANONYMOUS
    
    
    function compute app listening on port 8000!

    그리고 브라우저나curl 디버깅 주소를 사용합니다http://localhost:8000/2016-08-15/proxy/ResizeService/ResizeFunction

    배치하다

    fun deploy

    더욱 좋은 개발 체험을 얻기 위해 설치Aliyun Serverless VSCode Extension를 권장합니다.

    참조 링크

  • Funcraft
  • Aliyun Serverless VSCode Extension


  • 알리바바 클라우드 네이티브 기술권 마이크로 서비스, Serverless, 용기, 서비스 메시 등 기술 분야에 주목하고 클라우드 네이티브 유행 기술 추세, 클라우드 네이티브 대규모 착지 실천에 초점을 맞추어 클라우드 네이티브 개발자를 가장 잘 아는 기술권을 만든다.

    좋은 웹페이지 즐겨찾기