您可以使用EASCMD工具建立EAS服務,建立服務前需要佈建服務相關資訊的JSON檔案。本文為您介紹JSON檔案內的參數說明資訊。
如何使用EASCMD工具,詳情請參見下載並認證用戶端。
參數說明
JSON檔案參數說明如下表所示。
參數 | 是否必選 | 描述 |
name | 是 | 服務名稱,必須在同一地區內唯一。 |
token | 否 | 表示訪問鑒權的Token字串。如果未指定,則系統自動產生。 |
model_path | 是 | model_path和processor_path分別為模型和Processor的輸入資料來源地址,均支援以下格式的地址:
|
oss_endpoint | 否 | OSS的Endpoint,例如oss-cn-beijing.aliyuncs.com。其他取值請參見OSS地區和訪問網域名稱。 說明 預設無需指定該參數,會使用當前地區的內網OSS地址,來進行模型檔案或Processor檔案的下載。當跨地區訪問OSS時,需要指定該參數。例如:當您在杭州地區部署服務時,model_path中填寫了北京地區的OSS地址,則需要使用該參數來指定北京地區的OSS公網訪問地址。 |
model_entry | 否 | 表示模型的入口檔案,可以包含任意檔案。如果未指定,則使用model_path中的檔案名稱。主檔案路徑會傳遞給Processor中的initialize()函數。 |
model_config | 否 | 表示模型的配置,支援任意文本。該參數值會傳遞給Processor中Initialize()函數的第二個參數。 |
processor | 否 |
|
processor_path | 否 | Processor相關的檔案包路徑,可以參見model_path參數的描述資訊。 |
processor_entry | 否 | Processor的主檔案。例如libprocessor.so或app.py,其中包含了預測所需的 當processor_type為cpp或python時,必須指定該參數。 |
processor_mainclass | 否 | Processor的主檔案,JAR包中的mainclass。例如com.aliyun.TestProcessor。 當processor_type為java時,必須指定該參數。 |
processor_type | 否 | processor實現的語言,取值如下:
|
warm_up_data_path | 否 | 用於模型預熱的請求檔案路徑。更多關於模型預熱功能的介紹,詳情請參見模型服務預熱。 |
runtime.enable_crash_block | 否 | 當服務執行個體因Processor代碼異常發生Crash後,服務執行個體是否會自動重啟。取值如下:
|
cloud | 否 | 使用公用資源群組部署服務時,請務必使用cloud.computing.instance_type欄位來指定執行個體使用的機型。
具體參數配置詳情,請參見公用資源群組使用說明。 |
autoscaler | 否 | 表示模型服務自動水平擴縮容的配置資訊。具體參數配置,詳情請參見水平自動擴縮容功能。 |
containers | 否 | 表示使用自訂鏡像部署服務時的容器資訊。具體參數配置,詳情請參見服務部署:自訂鏡像。 |
storage | 否 | 表示服務儲存掛載等相關資訊。 |
metadata | 是 | 表示服務的Meta資訊。具體參數配置,詳情請參見表1.metadata參數說明。 |
features | 否 | 表示服務的特殊功能配置。具體參數配置,詳情請參見表2.features參數說明。 |
networking | 否 | 表示服務的調用配置。具體參數配置,詳情請參見表3.networking參數說明。 |
使用樣本
上述參數在JSON檔案中的配置樣本如下:
{
"name": "test_eascmd",
"token": "****M5Mjk0NDZhM2EwYzUzOGE0OGMx****",
"processor": "tensorflow_cpu_1.12",
"model_path": "oss://examplebucket/exampledir/",
"oss_endpoint": "oss-cn-beijing.aliyuncs.com",
"model_entry": "",
"model_config": "",
"processor": "",
"processor_path": "",
"processor_entry": "",
"processor_mainclass": "",
"processor_type": "",
"warm_up_data_path": "",
"runtime": {
"enable_crash_block": false
},
"cloud": {
"computing": {
"instance_type": "ecs.gn6i-c24g1.6xlarge"
}
},
"autoscaler": {
"min": 2,
"max": 5,
"strategies": {
"qps": 10
}
},
"storage": [
{
"mount_path": "/data_oss",
"oss": {
"endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
"path": "oss://bucket/path/"
}
}
],
"metadata": {
"resource": "eas-r-9lkbl2jvdm0puv****",
"instance": 1,
"workspace_id": 1405**,
"gpu": 0,
"cpu": 1,
"memory": 2000,
"gpu_memory": 10,
"gpu_core_percentage": 10,
"qos": "",
"cuda": "11.2",
"enable_grpc": false,
"enable_webservice": false,
"rpc": {
"batching": false,
"keepalive": 5000,
"io_threads": 4,
"max_batch_size": 16,
"max_batch_timeout": 50,
"max_queue_size": 64,
"worker_threads": 5,
"rate_limit": 0,
"enable_sigterm": false
},
"rolling_strategy": {
"max_surge": 1,
"max_unavailable": 1
},
"eas.termination_grace_period": 30,
"scheduling": {
"spread": {
"policy": "host"
}
},
"resource_rebalancing": false
},
"features": {
"eas.aliyun.com/extra-ephemeral-storage": "100Gi"
},
"networking": {
"disable_internet_endpoint": false
},
"containers": [
{
"image": "registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz",
"prepare": {
"pythonRequirements": [
"numpy==1.16.4",
"absl-py==0.11.0"
]
},
"command": "python app.py",
"port": 8000
}
]
}