Azure Functions Pack을 사용해 보았습니다.
You can grab it on npm now: npm i -g azure-functions-pack@nextDocs here: htps // t. 코 / 포 Fhvfm 루 8 Will move to master later this week— How Chris Functions (@crandycodes) 2017년 10월 17일
npm 패키지를 다수 사용하고 있는 Function이라고 기동시에 그러한 파일을 읽어들이기 때문에, 기동에 시간이 걸린다. 이 도구를 사용하면 하나의 JS 파일로 팩할 수 있으므로 시작 시간을 단축 할 수있는 것 같습니다. Http 트리거 등으로 퍼포먼스를 좋게 하고 싶은 경우 어쩐지 사용할 수 있을 것 같다.
준비
npm 패키지 설치
$ npm install -g azure-functions-core-tools
$ npm install -g azure-functions-pack
샘플 코드
Github에 두었습니다.
$ git clone [email protected]:satoryu/azure-funcpack-sample.git
Blob 트리거로 CSV 파일을 구문 분석하는 간단한 기능입니다.
CSV를 처리하기 위해 csv에 의존합니다.
운동에 현지에서 움직이면 이런 느낌. Blob에 업로드한 CSV 파일을 그대로 표시시키고 있을 뿐.
[10/17/17 4:41:23 PM] Found the following functions:
[10/17/17 4:41:23 PM] Host.Functions.ImportCSVfile
[10/17/17 4:41:23 PM]
[10/17/17 4:41:23 PM] Job host started
[10/17/17 4:41:26 PM] Host lock lease acquired by instance ID '000000000000000000000000FB88AAF3'.
[10/17/17 4:43:58 PM] Function started (Id=d2379990-ae49-4e79-92f2-a0068ae1ac25)
[10/17/17 4:43:58 PM] Executing 'Functions.ImportCSVfile' (Reason='New blob detected: uploaded/sample.csv', Id=d2379990-ae49-4e79-92f2-a0068ae1ac25)
[10/17/17 4:43:58 PM] [ [ 'Name', ' Address' ],
[10/17/17 4:43:58 PM] [ 'Taro Rakuten', ' [email protected]' ],
[10/17/17 4:43:58 PM] [ 'Hanako Rakuten', ' [email protected]' ] ]
[10/17/17 4:43:58 PM] Function completed (Success, Id=d2379990-ae49-4e79-92f2-a0068ae1ac25, Duration=357ms)
[10/17/17 4:43:58 PM] Executed 'Functions.ImportCSVfile' (Succeeded, Id=d2379990-ae49-4e79-92f2-a0068ae1ac25)
배포
배포 방법에는 두 가지가 있습니다.
$ npm install -g azure-functions-core-tools
$ npm install -g azure-functions-pack
$ git clone [email protected]:satoryu/azure-funcpack-sample.git
[10/17/17 4:41:23 PM] Found the following functions:
[10/17/17 4:41:23 PM] Host.Functions.ImportCSVfile
[10/17/17 4:41:23 PM]
[10/17/17 4:41:23 PM] Job host started
[10/17/17 4:41:26 PM] Host lock lease acquired by instance ID '000000000000000000000000FB88AAF3'.
[10/17/17 4:43:58 PM] Function started (Id=d2379990-ae49-4e79-92f2-a0068ae1ac25)
[10/17/17 4:43:58 PM] Executing 'Functions.ImportCSVfile' (Reason='New blob detected: uploaded/sample.csv', Id=d2379990-ae49-4e79-92f2-a0068ae1ac25)
[10/17/17 4:43:58 PM] [ [ 'Name', ' Address' ],
[10/17/17 4:43:58 PM] [ 'Taro Rakuten', ' [email protected]' ],
[10/17/17 4:43:58 PM] [ 'Hanako Rakuten', ' [email protected]' ] ]
[10/17/17 4:43:58 PM] Function completed (Success, Id=d2379990-ae49-4e79-92f2-a0068ae1ac25, Duration=357ms)
[10/17/17 4:43:58 PM] Executed 'Functions.ImportCSVfile' (Succeeded, Id=d2379990-ae49-4e79-92f2-a0068ae1ac25)
배포 방법에는 두 가지가 있습니다.
1. pack 후 배포
funcpack pack
부속 명령으로 Function을 pack 해보십시오. Function 디렉토리가 아닌 Function 앱의 루트로 실행합니다. 예를 들어, 위의 샘플 코드의 경우, git clone 한 리포지토리의 맨 위에 실행한다.$ funcpack pack ./
info: Generating project files/metadata
info: Webpacking project
info: Complete!
이것으로 끝.
실행 후
.funcpack
디렉토리가 작성되었으므로, 그 안에 들어가 func
명령으로 배치한다.$ funcpack pack ./
$ cd .funcpack/
$ func azure functionapp publish ${your_function_app_name}
2. git에서 배포
git로 배포하는 경우 환경 변수를 설정하여 배포 중에
funcpack pack
를 실행합니다.환경 변수
git로 배포하는 경우 App Settings에서 아래
SCM_USE_FUNCPACK
환경 변수에 값을 1로 설정해야합니다.막상, 배포!
다음과 같이
npm install
를 실행 한 후 funcpack pack
가 실행 중입니다.$ git push azure master
Counting objects: 25, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (25/25), 17.38 KiB | 2.90 MiB/s, done.
Total 25 (delta 2), reused 0 (delta 0)
remote: Updating branch 'master'.
remote: Updating submodules.
remote: Preparing deployment for commit id 'e4e41e7d29'.
remote: Generating deployment script.
remote: Running deployment command...
remote: Handling function App deployment.
remote: Using funcpack to optimize cold start
remote: Copying repository files to local storage
remote: 10 File(s) copied
remote: Restoring npm packages in "D:\local\Temp\8d51582848aa8df"
remote: .....
remote: [email protected] D:\local\Temp\8d51582848aa8df\ImportCSVfile
remote: npm WARN [email protected] No repository field.
remote: `-- [email protected]
remote: +-- [email protected]
remote: +-- [email protected]
remote: +-- [email protected]
remote: | `-- [email protected]
remote: `-- [email protected]
remote:
remote: info: Generating project files/metadata
remote: info: Webpacking project
remote: info: Complete!
remote: KuduSync.NET from: 'D:\local\Temp\8d51582848aa8df' to: 'D:\home\site\wwwroot'
remote: Copying file: '.gitignore'
remote: Copying file: 'host.json'
remote: Copying file: '.funcpack\index.js'
remote: Copying file: '.funcpack\original.index.js'
remote: Copying file: 'ImportCSVfile\function.json'
remote: Copying file: 'ImportCSVfile\index.js'
remote: Copying file: 'ImportCSVfile\package-lock.json'
remote: Copying file: 'ImportCSVfile\package.json'
remote: Copying file: 'ImportCSVfile\readme.md'
remote: Copying file: 'ImportCSVfile\sample.dat'
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Syncing 2 function triggers with payload size 288 bytes successful.
remote: Deployment successful.
덤
Azure Function 로고는 이모티콘으로 표현할 수 있다고 합니다.
< ⚡ >
그럼 재미있는 Function 생활을!
See you!
참고
< ⚡ >
Reference
이 문제에 관하여(Azure Functions Pack을 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sato_ryu/items/213639a961c8495cd51f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)