後期更改配置有兩種方法,一是使用Docker Swarm Config,這個在部署章節有說明。二就是使用線上的配置中心,這裡介紹阿里的ACM。
註冊阿里雲並開通ACM https://acm.console.aliyun.com
建立一個子帳號,並獲取AccessKeyID和AccessKeySecret,這個自行參考阿里的幫助文件。
我們在預設空間下建立一個配置Data ID:hyperf.env,高階選項Group為USER_CENTER(這只是分個組,在配置多的時候好區分多個配置),配置格式為JSON
{
"app_name":"app_name_from_ali",
"redis.default.port": 6377
}
這裡只作一個演示,這裡的配置會替換掉.env檔案的配置。
在專案裡新建config/autoload/aliyun_acm.php
<?php
return [
// 是否開啟配置中心的接入流程,為 true 時會自動啟動一個 ConfigFetcherProcess 程式用於更新配置
'enable' => true,
// 配置更新間隔(秒)
'interval' => 5,
// 阿里雲 ACM 端點地址,取決於您的可用區
'endpoint' => env('ALIYUN_ACM_ENDPOINT', 'acm.aliyun.com'),
// 當前應用需要接入的 Namespace
'namespace' => env('ALIYUN_ACM_NAMESPACE', ''),
// 您的配置對應的 Data ID
'data_id' => env('ALIYUN_ACM_DATA_ID', 'hyperf.env'),
// 您的配置對應的 Group
'group' => env('ALIYUN_ACM_GROUP', 'USER_CENTER'),
// 您的阿里雲賬號的 Access Key
'access_key' => env('ALIYUN_ACM_AK', ''),
// 您的阿里雲賬號的 Secret Key
'secret_key' => env('ALIYUN_ACM_SK', ''),
];
然後在.env檔案增加相應的配置
ALIYUN_ACM_NAMESPACE=bc9e501a-f870-49c2-a710-d822f29ae356 #名稱空間的ID
ALIYUN_ACM_DATA_ID=hyperf.env
ALIYUN_ACM_GROUP=USER_CENTER
ALIYUN_ACM_AK=your ak
ALIYUN_ACM_SK=your sk
重啟hyperf,此時,只需要在配置中心更改配置,通過 Config 物件get獲得的配置資訊相應的就會更改。
部落格:《PHP 微服務練兵》系列教程
本作品採用《CC 協議》,轉載必須註明作者和本文連結