Serverless 解惑——函數計算如何訪問 MySQL 數據庫

函數計算(Function Compute)函數計算 是事件驅動的全託管計算服務。使用函數計算,您無需採購與管理服務器等基礎設施,只需編寫並上傳代碼。函數計算爲您準備好計算資源,彈性地可靠地運行任務,並提供日誌查詢、性能監控和報警等功能。藉助函數計算,您可以快速構建任何類型的應用和服務,並且只需爲任務實際消耗的資源付費。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1UBeH0wo-1578540243069)(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%E8%AE%BF%E9%97%AE%20MySQL%20%E6%95%B0%E6%8D%AE%E5%BA%93&author=%E5%B0%8F%E9%BB%98&src=article)]
訪問 MySQL 數據庫是指在函數計算中通過編寫代碼調用數據庫驅動庫通過 TCP 協議實現對數據庫進行的插入、查詢等操作。通常函數計算中運行的不同函數實例之間是不共享狀態的,對於結構化的數據可以通過數據庫的形式進行持久化以實現狀態共享。由於用戶函數運行在函數計算的 VPC 中,而用戶的數據庫運行在用戶所屬的 VPC 中,所以在函數計算平臺訪問數據庫會涉及到跨 VPC 訪問的場景,下面我們先來介紹一下其工作機制。

工作機制

運行函數時,訪問 IP 是不固定的,因此您無法通過設置白名單的方式訪問 MySQL。基於最小權限原則,不建議在生產環境中將所有 IP(0.0.0.0/0)設置到數據庫白名單中。函數計算已經支持專有網絡 VPC 功能,您可以爲函數所在的服務開啓 VPC 訪問的功能,安全地訪問 VPC 中的資源。

您可以將 MySQL 放置於安全的 專有網絡VPC 中,並配置函數計算訪問 VPC 中的資源,函數計算就可以通過 VPC 安全地訪問您的雲數據庫。

函數計算訪問 MySQL 工作流程如下圖所示:
1

  1. 函數計算訪問用戶 VPC 原理如下:
    用戶的 VPC 是用戶私有的網絡,需要用戶授權賦予 彈性網卡 ENI 訪問 VPC 的能力,並將此 ENI 插入到 FC 中執行用戶函數的機器上,從而使函數可以訪問用戶 VPC 內資源。函數計算配置VPC功能,可參考 詳情.

如果用戶的 VPC 資源不在函數計算當前可用區,可以通過在用戶 VPC 環境中創建一個與函數計算相同可用區的 VSwitch ,並在函數計算的服務的 VPC 配置中設置此 VSwitchID。由於同一專有網絡內不同交換機之間內網互通,因此函數計算可以通過該 VSwitch 訪問在其他可用區的用戶 VPC 內資源。

  1. MySQL 實例創建成功後,您需要設置白名單,進入相應實例,左側點擊數據安全性,選擇白名單設置,將專有網絡中 default 設置爲配置的 VPC 實例內網 IP 段或者配置 FC 配置的交換機內網 IP 段。

  2. 訪問 MySQL 數據庫 host 爲實例的內網地址,可以登錄阿里雲控制檯查看:

    2

配置

公共配置

創建專有網絡VPC

  1. 登錄 VPC控制檯
  2. 參閱 VPC 搭建專有網絡 創建VPC和交換機。

創建安全組

安全組控制檯 新建安全組,點擊 創建安全組,設置安全組名稱,網絡類型選擇 專有網絡,並選擇剛纔創建的專有網絡。

創建 MySQL 實例

  1. RDS 控制檯 新建RDS實例,點擊創建實例
  2. 基本配置選擇您需要的配置,沒有特殊要求選擇默認配置即可。
  3. 網絡類型選擇專有網絡,並選擇您已經創建的 VPC 和交換機。
  4. 選擇您需要的存儲空間和購買量,立即購買。即成功創建了 RDS 實例。
  5. 實例創建成功後,您需要設置白名單,進入相應實例,左側點擊 數據安全性,選擇白名單設置,將專有網絡中 default 設置爲配置的 VPC 實例內網 IP 段或者配置 FC 配置的交換機內網 IP 段。
  6. 白名單設置成功後,點擊左側數據庫管理,點擊創建數據庫,設置數據庫名稱。
  7. 新建賬號訪問數據庫。點擊左側賬號管理,填寫數據庫賬號授權數據庫登錄密碼。您可以通過此賬號登錄數據庫。
  8. 實例詳情頁,點擊右上角登錄數據庫,使用剛纔創建的賬號登錄數據庫。(如果沒有 DMS 訪問權限,控制檯會彈出授權頁面,根據提示授權即可)。
  9. 登錄到 DMS 系統後,左上角選擇數據庫,就可以進行創建表、插入數據等操作了。

至此,您已經成功創建了 VPC、安全組、RDS。

函數計算配置 VPC

注意:函數計算服務所在區域與公共配置中創建的資源所在區域一致。

  1. 函數計算控制檯 創建服務。
  2. 【專有網絡配置】選項中,選擇您在步驟一中創建的 VPC 網絡,交換機、安全組。
  3. 【權限配置】選項中,選擇【新建角色】,點擊【點擊授權】,在角色快速創建頁面,點擊【同意授權】。
  4. 點擊確定,新建服務完畢。

安裝模塊

在函數代碼中您需要使用訪問 MySQL 的第三方模塊,您需要將第三方模塊下載到入口所在目錄,將第三方模塊和入口函數放到同一個文件夾下再一同打包上傳至函數計算。第三方模塊打包請參考文章 爲函數安裝第三方依賴

參考示例工程

總結

通過本文介紹可以快速實現函數計算訪問 Mysql 數據庫。

使用函數計算帶來的優勢:

  1. 無需採購和管理服務器等基礎設施,只需專注業務邏輯的開發,可以大幅縮短項目交付時間和人力成本;
  2. 提供日誌查詢、性能監控、報警等功能快速排查故障;
  3. 免運維,毫秒級別彈性伸縮,快速實現底層擴容以應對峯值壓力,性能優異;
  4. 成本極具競爭力;

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

發佈了247 篇原創文章 · 獲贊 39 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章