全部產品
Search
文件中心

Function Compute:自訂運行時支援ARMS Python探針擴充

更新時間:Sep 29, 2025

本文主要介紹使用自訂運行時為Python函數手動安裝探針。

背景資訊

Function Compute無縫對接ARMS應用監控平台後,您可以通過ARMS應用監控平台對目標函數進行監控追蹤,擷取相關資訊,為Python函數安裝探針後,ARMS即可開始監控Python應用,您可以查看應用拓撲、調用鏈路、SQL分析等一系列監控資料。更多資訊,請參見什麼是應用即時監控服務ARMS?

使用限制

函數Python版本需與Web函數自訂運行時的Python版本保持一致。

步驟一:製作探針層

1. 擷取Python探針包

1.1. 下載探針包

// VPC網路下載指定版本探針
wget http://arms-apm-${regionID}.oss-${regionID}-internal.aliyuncs.com/aliyun-python-agent/${version}/aliyun-python-agent.tar.gz
// VPC網路下載最新版本探針
wget http://arms-apm-${regionID}.oss-${regionID}-internal.aliyuncs.com/aliyun-python-agent/aliyun-python-agent.tar.gz
// 公網下載指定版本探針
wget http://arms-apm-${regionID}.oss-${regionID}.aliyuncs.com/aliyun-python-agent/${version}/aliyun-python-agent.tar.gz
// 公網下載最新版本探針
wget http://arms-apm-${regionID}.oss-${regionID}.aliyuncs.com/aliyun-python-agent/aliyun-python-agent.tar.gz
  1. 請將${regionID}替換成實際所在的地區,請參考:開服地區

  2. 請將${version}替換成實際期望的版本號碼,請參考:探針(Python Agent)版本說明

公網下載指定版本探針的樣本值如下:

wget http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/aliyun-python-agent/1.5.0/aliyun-python-agent.tar.gz

1.2. 解壓探針包,並執行pip install

## 解壓
tar -zxvf aliyun-python-agent.tar.gz

## 構建包
pip3 install target/*.whl -t aliyun-instrument

## 修改./aliyun-instrument/bin目錄下aliyun-instrument檔案,將首行#!/usr/bin/python3替換為以下內容。
#!/var/fc/lang/python3.10/bin/python3

2. 線上建立層

  1. 登入Function Compute控制台,在左側導覽列,選擇函數管理 > 層管理

  2. 在頂部功能表列,選擇地區,然後在層管理頁面,單擊建立層

  3. 建立層頁面,通過檔案夾上傳層上傳構建的層。

    image

說明

上傳aliyun-instrument檔案時,需要確保aliyun-instrument為頂級目錄,避免壓縮和解壓時aliyun-instrument包含aliyun-instrument,否則配置環境變數會受到影響。

步驟二:在函數中使用自訂層

1. 在函數進階配置中添加自訂層

  1. 登入Function Compute控制台,在左側導覽列,選擇函數管理 > 函數列表

  2. 在頂部功能表列,選擇地區,然後在函數列表頁面,單擊目標函數。

  3. 在函數詳情頁面,選擇配置頁簽,單擊進階配置右側的編輯,在進階配置面板,選擇+添加層 > 添加自訂層,選擇自訂層層版本,最後單擊部署

image

2. 添加環境變數

變數

ARMS_APP_NAME

FC:{函數名稱}

ARMS_LICENSE_KEY

擷取LicenseKey

ARMS_REGION_ID

{region}

LD_LIBRARY_PATH

/code:/code/lib:/usr/local/lib:/opt/lib:/opt/php8.1/lib:/opt/php8.0/lib:/opt/php7.2/lib

PATH

/code/python/bin:/var/fc/lang/python3.10/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ruby/bin:/opt/bin:/code:/code/bin

PYTHONPATH

/opt:/opt/python:/code

PYTHONUSERBASE

/code/python

3. 修改啟動命令

在函數詳情頁面,選擇配置頁簽,單擊基礎配置右側的編輯,修改啟動命令的值,如下所示。

aliyun-instrument python3 app.py

如果應用使用uvicorn啟動,需要替換為以下指令接入探針。

例如:

uvicorn -w 4 -b 0.0.0.0:8000 app:app

修改為:

aliyun-instrument gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 app:app

aliyun-instrument指令負責ARMS Python探針初始化配置及無侵入埋點。如果有使用gevent協程,則需要設定環境變數GEVENT_ENABLE=true。例如程式中有使用:

from gevent import monkey
monkey.patch_all()

需要設定環境變數如下:

GEVENT_ENABLE=true

結果驗證

成功執行函數後,約一分鐘後,若Python應用出現在ARMS控制台應用監控 > 應用列表頁面中且有資料上報,則說明接入成功。

image