日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小困惑,关于 Serverless 函数计算的字体安装

發布時間:2024/8/23 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小困惑,关于 Serverless 函数计算的字体安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源 | Serverless

作者?|?孫飛宇

頭圖 | 下載于視覺中國

前言

首先介紹下在本文出現的幾個比較重要的概念:

函數計算(Function Compute):函數計算是一個事件驅動的服務,通過函數計算,用戶無需管理服務器等運行情況,只需編寫代碼并上傳。函數計算準備計算資源,并以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息?參考

Fun:Fun 是一個用于支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日志服務等資源。它通過一個資源配置文件(template.yml),協助您進行開發、構建、部署操作。Fun 的更多文檔?參考

備注: 本文介紹的技巧需要 Fun 版本大于等于 3.6.7。

函數計算運行環境中內置一些常用字體,但仍不滿足部分用戶的需求。如果應用中需要使用其它字體,需要走很多彎路。本文將介紹如何通過??Fun?工具將自定義字體部署到函數計算,并正確的在應用中被引用。

1. 你需要做什么

  • 在代碼(CodeUri)目錄新建一個 fonts 目錄;

  • 將字體復制到 fonts 目錄;

  • 使用 fun deploy 進行部署。

2. 工具安裝

建議直接從這里下載二進制可執行程序,解壓后即可直接使用。?下載地址

執行 fun --version 檢查 Fun 是否安裝成功。

1$?fun?--version 23.6.7

3. 示例

demo 涉及的代碼,托管在??github?上。項目目錄結構如下:

1$?tree?-L?-a?1 2 3├──?index.js 4├──?package.json 5└──?template.yml

index.js 中代碼:

1'use?strict'; 2 3var?fontList?=?require('font-list') 4 5module.exports.handler?=?async?function?(request,?response,?context)?{ 6????response.setStatusCode(200); 7????response.setHeader('content-type',?'application/json'); 8????response.send(JSON.stringify(await?fontList.getFonts(),?null,?4)); 9};

index.js 中借助 node 包??font-list?列出系統上可用的字體。

template.yml:

1ROSTemplateFormatVersion:?'2015-09-01'2Transform:?'Aliyun::Serverless-2018-04-03'3Resources:4??fonts-service:?#?服務名5????Type:?'Aliyun::Serverless::Service'6????Properties:7??????Description:?fonts?example8????fonts-function:?#?函數名9??????Type:?'Aliyun::Serverless::Function' 10??????Properties: 11????????Handler:?index.handler 12????????Runtime:?nodejs8 13????????CodeUri:?./ 14????????InstanceConcurrency:?10 15??????Events: 16????????http-test: 17??????????Type:?HTTP 18??????????Properties: 19????????????AuthType:?ANONYMOUS 20????????????Methods: 21??????????????-?GET 22??????????????-?POST 23??????????????-?PUT 24 25??tmp_domain:?#?臨時域名 26????Type:?'Aliyun::Serverless::CustomDomain' 27????Properties: 28??????DomainName:?Auto 29??????Protocol:?HTTP 30??????RouteConfig: 31????????Routes: 32??????????/: 33????????????ServiceName:?fonts-service 34????????????FunctionName:?fonts-functiontemplate.yml 中定義了名為 fonts-service 的服務,此服務下定義一個名為 fonts-function 的 http trigger 函數。tmp_domain 中配置自定義域名中路徑(/)與函數(fonts-service/fonts-function)的映射關系。

1)下載字體

你可以通過??這里?下載自定義字體 Hack,然后復制字體到 fonts 目錄。

此時 demo 目錄結構如下:

1$?tree?-L?2?-a23├──?fonts(+)4│???├──?Hack-Bold.ttf5│???├──?Hack-BoldItalic.ttf6│???├──?Hack-Italic.ttf7│???└──?Hack-Regular.ttf8├──?index.js9├──?package.json 10└──?template.yml2)安裝依賴 1$?npm?install 3)部署到函數計算

可以通過 fun deploy 直接發布到遠端。

4)預覽線上效果

fun deploy 部署過程中,會為此函數生成有時效性的臨時域名:

打開瀏覽器,輸入臨時域名并回車:

可以看到字體 Hack 已生效!!!

原理介紹

  • fun deploy 時,如果檢測到 CodeUri 下面有 fonts 目錄,則為用戶在 CodeUri 目錄生成一個 .fonts.conf 配置文件。在該配置中,相比于原來的 /etc/fonts/fonts.conf 配置,添加了 /code/fonts 作為字體目錄。

  • 自動在 template.yml 中添加環境變量,FONTCONFIG_FILE = /code/.fonts.conf,這樣在函數運行時就可以正確的讀取到自定義字體目錄。

如果依賴過大,超過函數計算的限制(50M)則:

  • 將 fonts 目錄添加到 .nas.yml;

  • 將 fonts 對 nas 的映射目錄追加到 .fonts.conf 配置。

fun deploy 對大依賴的支持可參考??《開發函數計算的正確姿勢——輕松解決大依賴部署》

小結

只需要在代碼(CodeUri)目錄新建一個 fonts 目錄,然后復制所有字體到該目錄即可。Fun 會自動幫你處理配置文件(.fonts.conf),環境變量以及大依賴場景的情況。

更多閱讀推薦

  • 亂中有變,云原生從“大爆發”說起

  • 疫情中的2021,云原生會走向哪里

  • 分布式架構的王者?Kubernetes憑什么

  • Mendix入局中國低代碼,開發者們你準備好了嗎

  • 信息如何實現病毒式傳播?一文看懂Gossip協議

  • 看穿容器的外表,Linux容器實現原理演示

更多閱讀推薦

  • 都在說云原生,它的技術圖譜你真的了解嗎?

  • SRE 是如何保障穩定性的

  • 如何寫出讓 CPU 跑得更快的代碼?

  • Serverless 在 SaaS 領域的最佳實踐

  • 云原生人物志|Pulsar翟佳:社區的信任最重要

  • 一目了然的 Docker 環境配置指南

總結

以上是生活随笔為你收集整理的小困惑,关于 Serverless 函数计算的字体安装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。