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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Serverless 解惑——函数计算如何安装字体

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


前言

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

函數計算(Function Compute): 函數計算是一個事件驅動的服務,通過函數計算,用戶無需管理服務器等運行情況,只需編寫代碼并上傳。函數計算準備計算資源,并以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息 參考。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-euh2oIjJ-1585814158598)(https://data-analysis.cn-shanghai.log.aliyuncs.com/logstores/article-logs/track_ua.gif?APIVersion=0.6.0&title=Serverless%20%E8%A7%A3%E6%83%91%E2%80%94%E2%80%94%E5%87%BD%E6%95%B0%E8%AE%A1%E7%AE%97%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E5%AD%97%E4%BD%93&author=%E5%AD%99%E9%A3%9E%E5%AE%87&src=)]
Fun: Fun 是一個用于支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日志服務等資源。它通過一個資源配置文件(template.yml),協助您進行開發、構建、部署操作。Fun 的更多文檔 參考。

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

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

你需要做什么?

  • 在代碼(CodeUri)目錄新建一個 fonts 目錄
  • 將字體復制到 fonts 目錄
  • 使用 fun deploy 進行部署
  • 工具安裝

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

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

    $ fun --version 3.7.0

    示例

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

    $ tree -L -a 1├── index.js ├── package.json └── template.yml

    index.js 中代碼:

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

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

    template.yml:

    ROSTemplateFormatVersion: '2015-09-01' Transform: 'Aliyun::Serverless-2018-04-03' Resources:fonts-service: # 服務名Type: 'Aliyun::Serverless::Service'Properties:Description: fonts examplefonts-function: # 函數名Type: 'Aliyun::Serverless::Function'Properties:Handler: index.handlerRuntime: nodejs8CodeUri: ./InstanceConcurrency: 10Events:http-test:Type: HTTPProperties:AuthType: ANONYMOUSMethods:- GET- POST- PUTtmp_domain: # 臨時域名Type: 'Aliyun::Serverless::CustomDomain'Properties:DomainName: AutoProtocol: HTTPRouteConfig:Routes:/:ServiceName: fonts-serviceFunctionName: fonts-function

    template.yml 中定義了名為?fonts-service 的服務,此服務下定義一個名為?fonts-function 的 http trigger 函數。tmp_domain 中配置自定義域名中路徑(/)與函數(fonts-service/fonts-function)的映射關系。

    1. 下載字體

    你可以通過這里下載自定義字體 Hack,然后將復制字體到 fonts 目錄。
    此時 demo 目錄結構如下:

    $ tree -L 2 -a├── fonts(+) │ ├── Hack-Bold.ttf │ ├── Hack-BoldItalic.ttf │ ├── Hack-Italic.ttf │ └── Hack-Regular.ttf ├── index.js ├── package.json └── template.yml

    2. 安裝依賴

    $ 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),環境變量以及大依賴場景的情況。如果大家在使用 Fun 的過程中遇到了一些問題,可以在 github 上提 issue,或者加入我們的釘釘群 11721331 進行反饋。

    “阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的技術圈。”

    總結

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

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