lleber / cloud-hook-advanced
cloud-hooks存储库的高级版本,专注于自动的、可预测的和安全的代码部署。
Requires
- ext-curl: *
- ext-gettext: *
- ext-json: *
- lleber/cloudhook-installer-plugin: dev-master
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-15 15:34:43 UTC
README
有关云钩特性的全面概述,请参阅以下规范源:https://github.com/acquia/cloud-hooks。
此项目增加了哪些价值?
此项目是在响应Acquia Cloud上管理企业级Drupal 8项目时遇到的一些痛点后开始的。
它包含一系列按特定顺序触发的钩子,有助于使代码部署更快、更可预测,并减少人为错误的风险。
它还因为缺乏Drush 9对ACAPI的支持而创建。
先决条件
此项目对应用程序和组织设置做出了一些假设。
Cloudflare支持层级
基于域的清除需要企业级Cloudflare账户。
模块
- Drush >= 9.2.1
- Cloudflare >= 8.x-1.0-alpha7
环境设置
在将这些钩子部署到Acquia应用程序之前,必须执行某些步骤来安装正确的Acquia和Cloudflare凭据。
设置ACAPI
要在环境中设置ACAPI,必须在目标Acquia服务器上安装凭据。
这可以通过以下方式实现:
- 使用Drush 8运行
ac-api-login命令。 - 在
~/.acquia/cloudapi.conf中上传凭据文件。
{"email":"account@example.com", "key":"get-the-key-from-the-acquia-dashboard"}
配置Cloudflare API
需要在Drupal数据库中的/admin/config/services/cloudflare处配置Cloudflare API密钥。
脚本
每个操作都分离到自己的脚本中。这些脚本通过精心命名的符号链接在各个环境中共享。
备份数据库
此脚本将自动检测当前环境中所有模式,并在退出前为每个创建用户备份。
此脚本利用Acquia Cloud REST API v1来阻止后续钩子执行,直到所有备份都完成。默认情况下,它仅在生产环境中运行。
Drupal缓存清除
此脚本清除本地Drupal缓存。通过在清除其他内容之前清除Drush缓存,它增加了一层安全性和一致性。这也据说可以解决acquia/blt#2867问题。
更新实体
此脚本简单地运行drush entity:updates。
更新数据库
此脚本简单地运行drush updatedb。
配置导入
此脚本针对sync源运行配置导入。如果当前环境存在配置拆分,则还会导入特定于环境的配置。
Varnish缓存清除
此脚本将自动检测当前环境中的所有域,并在退出前清除每个域的Varnish缓存。
它利用Acquia Cloud REST API v1执行清除请求,并将在所有缓存清除之前阻止后续钩子执行(以防止与上游缓存层的清除发生竞争条件)。
Cloudflare缓存清除
此脚本将自动检测当前环境中的所有域,并在退出前清除每个域的Cloudflare缓存。
它使用Cloudflare REST APIv4来执行清理请求,并且不会阻止后续钩子的执行,因为目前API不支持这一功能。