Hyperf 接入阿里云ACM应用配置管理中心


参考: 

阿里云文档:https://help.aliyun.com/document_detail/85466.html?spm=a2c4g.11186623.6.550.43cb42d4Af4Tu0

CSDN博客:https://blog.csdn.net/donjan/article/details/103258621

hyperf文档:https://hyperf.wiki/2.1/#/zh-cn/config-center

----------------------------------------

开通应用配置管理

  1. 打开ACM产品主页。
  2. 在页面右上角单击登录。
  3. 登录页面上输入您的阿里云账号和密码,并单击登录。 登录成功后,您将跳转至ACM产品主页。
  4. 在产品主页上单击立即开通,然后在云产品开通页页面上勾选应用配置管理服务协议,并单击立即开通

然后创建配置

选择一个地区。然后开始创建配置

  endpoint :其实表示的是一个内网地址。如果你在本地或者虚拟机上面。是完全ping不通的。会报timeout 超时。

  

这一步的时候。可能刚进去的人会不存在红框里面的数据,或者在提交的时候报没有权限操作。除了是真的没权限之外。还有一个可能是没有选所属地域。

不管你选了还是没选。重新在地域重新选一遍。再选回你想要的就可以了。就是那些华南1深圳或者华东华北那些。在左上角阿里云logo旁边的工作台的旁边

 配置内容就是你要的配置。可以配置json模式

比如 { "app_name":"app_name_from_ali", "redis.default.port": 6377 }

  到这里配置项就基本完了

-----------------下面是代码-----------------------

  • 在 config/autoload 文件夹内增加一个 aliyun_acm.php 的配置文件,配置内容如下
<?php
return [
    // 是否开启配置中心的接入流程,为 true 时会自动启动一个 ConfigFetcherProcess 进程用于更新配置
    'enable' => true,
    // 是否使用独立进程来拉取config,如果否则将在worker内以协程方式拉取
    'use_standalone_process' => 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', ''),
    // 您的配置对应的 Group
    'group' => env('ALIYUN_ACM_GROUP', 'DEFAULT_GROUP'),
    // 您的阿里云账号的 Access Key
    'access_key' => env('ALIYUN_ACM_AK', ''),
    // 您的阿里云账号的 Secret Key
    'secret_key' => env('ALIYUN_ACM_SK', ''),
];
ALIYUN_ACM_ENDPOINT 这个东西。其实在hyperf里面就是会curl访问的一个地址,后面拼接了8080端口。配置好了之后在控制台输出中心就能看到,也能看到他返回的数据

如果你返回的是timeout。就表示你是在本地或者虚拟机。他这个地址是内网地址。必须在线上操作。
如果你非要在本地。就改成acm.aliyun.com。这个是公网的调试地址。同时!!!!重点!!!。选好对应的地域!!!!。然后再重新配置一遍。不然后面走不下去。

配置好了之后,控制台重启。能看到传回来的信息

 这里就表示成功了。