博客 / 詳情

返回

開發者集合!【必看教程】阿里雲ESA Pages大賽部署全流程

一、前置條件

  1. 開通阿里雲ESA邊緣安全加速產品,並開通“函數和Pages”服務。
  2. 擁有一個可用的Github賬號,並將本地項目上傳至Github倉庫。具體步驟可參考:本地項目如何上傳至GitHub倉庫。

二、創建構建配置文件esa.jsonc

您需要在Github倉庫的根目錄創建esa.jsonc文件(或在ESA控制枱創建Pages項目時填寫構建參數),以便讓ESA瞭解您倉庫的構建邏輯。這裏以esa.jsonc文件為例進行參數説明:

:::
若您不瞭解構建含義,可嘗試直接使用以下esa.jsonc配置文件。

{
  "name": "vite-react-template",
  "entry": "./src/index.js",
  "installCommand": "npm install",
  "buildCommand": "npm run build",
  "assets": {
    "directory": "./dist",
    "notFoundStrategy": "singlePageApplication"
  }
}

:::

參數 説明
name 指定部署的目標項目。如果該項目已存在,部署將在其下進行;如果不存在,系統將使用此名稱自動為您創建一個新項目。
entry 邊緣函數的入口執行文件路徑,例如: ./src/index.ts
installCommand 配置自定義安裝指令,例如:npm install。該配置會覆蓋控制枱的安裝命令配置,如果設置成空字符串,安裝步驟將被跳過。支持的包管理器包括:npm、pnpm、yarn、cnpm。
buildCommand 配置自定義構建命令,例如:npm run build。該配置會覆蓋控制枱的構建命令配置,如果設置成空字符串,構建步驟將被跳過。
assets 靜態資源託管功能允許開發者在ESA函數和Pages上運行前端網站。您可以配置資產目錄,每個Pages只能配置一組靜態資源,assets 提供了以下選項:
directory:構建產物中將被靜態託管的目錄,例如:./public./dist 、 ./build等。

notFoundStrategy :當請求的路徑未匹配到任何靜態資源時,執行的策略。

singlePageApplication:返回靜態託管目錄的index.html文件及 200 OK狀態碼。適用於單頁應用時。

404Page:返回靜態託管目錄的404.html文件及 404 Not Found 狀態碼。

説明
若您同時配置了函數腳本與assets.notFoundStrategy選項,那麼導航請求將不會觸發該函數腳本的執行。導航請求:指瀏覽器在用户直接訪問頁面時(例如在地址欄輸入URL或點擊鏈接)自動發出的請求,其特徵是包含了Sec-Fetch-Mode: navigate請求頭。

詳細見配置説明文檔:Pages構建和路由指南

三、通過導入Github倉庫創建Pages

  1. 登錄ESA控制枱,在左側導航欄選擇邊緣計算 > 函數和Pages
  2. 在邊緣函數頁面,單擊創建
  3. 選擇導入Github倉庫頁籤,單擊添加Github賬户

    image

  4. 登錄Github賬號後,在授權頁面默認選擇All repositories,單擊Install & Authorize完成倉庫授權。image
  5. 選擇需要構建的對應倉庫名,單擊下一步

    image

  6. 填寫構建信息(若您的倉庫已經創建有esa.jsonc文件,則忽略此處),單擊開始部署

    image

    配置類型 功能 説明
    基礎配置 生產分支 默認為main分支。ESA將按照所選分支自動觸發構建並自動部署到生產環境。
    非生產分支構建 開啓後,將對非生產分支(比如非main分支)的新提交生成構建版本,但不會自動部署。
    安裝命令 若需先安裝依賴,填寫命令,例如 npm install。支持npmyarncnpmpnpm
    構建命令 若需先構建,填寫命令,例如npm run build。支持npmyarncnpmpnpm
    高級配置 根目錄 構建命令將在此目錄下執行,默認/。若是monorepo,請填寫要構建的子項目路徑(例如 /frontend或 /packages/web)。
    靜態資源目錄 構建產物中將被靜態託管的目錄,例如:./public./dist 或 ./build。您可以在esa.jsonc文件的assets.directory字段中指定靜態資源目錄。該配置的優先級高於構建信息中的配置,會覆蓋您在此處的配置。
    函數文件路徑 函數的入口文件路徑,即實際執行的文件。例如:./src/index.ts。您可以在esa.jsonc文件的entry字段中指定函數文件路徑。該配置的優先級高於構建信息中的配置,會覆蓋您在此處的配置。
    Node.js版本 構建使用的 Node.js 版本。修改該配置後,需要重新觸發構建才能生效。您可以在package.json文件的engines.node字段中指定Node.js主版本。該配置的優先級高於構建信息中的配置,會覆蓋您在此處的配置。
    環境變量 設置構建過程中可使用的環境變量,可以通過全局對象process.env獲取。
  7. 等待系統構建完成後,將為您生成一個er.aliyun-esa.net後綴的公共域名,可直接訪問預覽效果。

image

📌 第四步:提交作品到大賽(2 分鐘)

1. 回到大賽頁面

🔗 https://tianchi.aliyun.com/competition/entrance/532441

2. 左側TAB點擊 “提交結果” 進行作品提交

image.png

3. 本地創建一個txt文本文件,填寫好以下信息:

  • 部署 URL:粘貼 ESA 分配的網址(如 https://XXXXX.er.aliyun-esa.net),如果有個人域名也可以直接綁定,綁定個人域名操作相見官方操作文檔。
  • GitHub 倉庫地址:粘貼你的 GitHub 項目鏈接(如 https://github.com/xxx/my-esa-ai-page
  • 作品介紹:可以介紹作品名稱、簡介,例如 “個人作品集”;還可以分別從創意卓越、實用價值、技術探索三個方向説明你的作品亮點。

image.png

4. 點擊 提交

✅ 提交成功!你已正式參賽,並滿足“有效作品”要求!


🎁 賽事額外🎁 

image.png
image.png


user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.