함수 계산의 정확한 자세 개발 - 웹 캡처 서비스

전언


먼저 본문에 나타난 몇 가지 비교적 중요한 개념을 소개한다.
함수 계산(Function Compute): 함수 계산은 이벤트 구동 서비스로 함수 계산을 통해 사용자는 서버 등의 운행 상황을 관리할 필요가 없고 코드를 작성하여 업로드하기만 하면 된다.함수 계산은 계산 자원을 준비하고 사용자 코드를 탄력적으로 신축하는 방식으로 운행하며 사용자는 실제 코드 운행에 소모된 자원에 따라 비용을 지불해야 한다.함수 계산 더 많은 정보 참조.
Fun: Fun은 Serverless 응용 배치를 지원하는 도구로 함수 계산, API 인터페이스, 로그 서비스 등 자원을 간편하게 관리할 수 있습니다.이것은 자원 설정 파일 (template.yml) 을 통해 개발, 구축, 배치 작업을 돕습니다.Fun에 대한 추가 문서 참조.
fun install: fun install 은fun 도구의 하위 명령으로 pip와 apt 의존을 설치하는 데 사용되며 명령행 인터페이스와fun.yml 설명 파일의 두 가지 형식입니다.
비고: 본고에서 소개한 기교는 Fun버전이 2.9.3보다 커야 한다.

도구에 의존하다


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

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

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

  • 설치가 끝난 후에 먼저 fun config 설정을 초기화하는 것을 기억하세요.

    초기화


    fun init 명령을 사용하면 이 템플릿 항목을 로컬로 빠르게 초기화할 수 있습니다.
    $ fun init vangie/puppeteer-example
    ? Please input oss bucket to upload chrome shell? chrome-headless
    ? Please select a region? cn-hangzhou
    ? Please input oss accessKeyId for upload? xxxxxxxxxxxKbBS
    ? Please input oss accessKeySecret for upload? xxxxxxxxxxxx5ZgM

    위에서 힌트를 줄 거예요.
  • OSS의 BUCKET를 입력하십시오. OSS Bucket은 전 세계에서 유일합니다. 위의 크롬-headless가 이미 점용되었습니다. 새로운 이름이나 이미 만들어진 것으로 바꾸십시오(이미 만들어진 것은 region이 일치하는지 확인하십시오).
  • 그리고 OSS의 Region을 선택하십시오. 배포 함수와 Region이 일치하도록 유지하십시오
  • OSS 쓰기 권한이 있는 키를 입력합니다.

  • 설치 의존성

    $ fun install
    skip pulling image aliyunfc/runtime-nodejs8:build-1.2.0...
    Task => [UNNAMED]
         => apt-get update (if need)
         => apt-get install -y -d -o=dir::cache=/code/.fun/tmp libnss3
         => bash -c 'for f in $(ls /code/.fun/tmp/archives/*.deb); do dpkg -x $f /code/.fun/root; done;'
         => bash -c 'rm -rf /code/.fun/tmp/archives'
    Task => [UNNAMED]
         => bash -c  'curl -L https://github.com/muxiangqiu/puppeteer-fc-starter-kit/raw/master/chrome/headless_shell.tar.gz --output headless_shell.tar.gz'
    ...

    fun install에서 fun을 실행합니다.yml 파일의 작업:
  • puppeteer를 설치하여 의존합니다.so 파일;
  • puppeteer가 의존하는 chrome headless 바이너리 파일을 OSS에 업로드하기;
  • npm 설치 의존.

  • 배치하다

    $ fun deploy
    using region: cn-shanghai
    using accountId: ***********4733
    using accessKeyId: ***********KbBS
    using timeout: 60
    
    Waiting for service puppeteer to be deployed...
            Waiting for function html2png to be deployed...
             Waiting for packaging function html2png code...
             package function html2png code done
            function html2png deploy success
    service puppeteer deploy success

    실행

    $ fcli function invoke -s puppeteer -f html2png
    The screenshot has been uploaded to http://chrome-headless.oss-cn-shanghai.aliyuncs.com/screenshot.png

    위의 반환 링크를 열면 전체 화면을 스크롤하는 긴 그림이 캡처되어 있고 고려된 화면 아래에 부분만 캡처됩니다.
    웹 주소를 바꾸려면 아래 명령 형식을 사용할 수 있습니다
    fcli function invoke -s puppeteer -f html2png --event-str 'http://www.alibaba.com'

    디버깅


    로컬 디버깅 코드가 필요하면 아래 명령을 사용할 수 있습니다
    fun local invoke html2png <<

    참고

  • 3분 동안 함수 계산에서puppeteer
  • 를 어떻게 사용하는지 습득하기
    본문 저자: 의현
    원문을 읽다
    본고는 운서 지역사회의 오리지널 내용으로 허락 없이 전재할 수 없다.

    좋은 웹페이지 즐겨찾기