Hyperf 接入阿里 ACM 配置中心

Donjan發表於2019-12-03

後期更改配置有兩種方法,一是使用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 協議》,轉載必須註明作者和本文連結

相關文章