lotuashvili/laravel-scout-elastic-aws

该软件包最新版本(4.2.0)没有提供许可证信息。

Elasticsearch 驱动器为 Laravel Scout(具有 AWS IAM 功能)

4.2.0 2019-05-26 21:36 UTC

README

Software License

此软件包为 Laravel Scout 提供了与 AWS Elasticsearch 和 IAM 一起工作的 Elasticsearch 驱动器。

内容

安装

您可以通过 composer 安装此软件包

composer require lotuashvili/laravel-scout-elastic-aws

您必须在您的 app.php 配置中添加 Scout 服务提供者和软件包服务提供者

// config/app.php
'providers' => [
    ...
    Laravel\Scout\ScoutServiceProvider::class,
    ...
    ScoutEngines\Elasticsearch\ElasticsearchProvider::class,
],

配置

此软件包假设您正在遵循良好的 AWS 安全准则,并且在 Laravel 的 .env 文件中不放置密码,而是遵循AWS SDK for PHP 版本 3 的凭据指南中的实践。要启用此功能,请在您的 .env 中设置以下变量。

ELASTICSEARCH_PROVIDER=aws

对于本地开发,例如在 vagrant 中,您可以使用正常的 Elasticsearch 客户端,要么省略此变量,要么按照以下方式设置它。

ELASTICSEARCH_PROVIDER=elastic

AWS 客户端需要的是区域。如果您还没有在 .env 中设置它,可以按照以下方式添加。

AWS_REGION=us-west-2

要使用 IAM 凭据,请将它们添加到 .env 中。

AWS_ACCESS_KEY=
AWS_ACCESS_SECRET=
AWS_ACCESS_TOKEN=

使用 Scout 进行测试

如果您的 CI 环境无法访问工作状态下的 Elasticsearch 实例,任何索引的模型都会导致它出错。为了解决这个问题,请将以下内容添加到您的 phpunit.xml 中。那里单引号包裹双引号的部分有点棘手。

<env name="SCOUT_DRIVER" value='"null"' />

Laravel 配置

在您发布了 Laravel Scout 软件包配置后

php artisan vendor:publish  --provider="ScoutEngines\Elasticsearch\ElasticsearchProvider"

您需要更新主 scout 配置

// config/scout.php
// Set your driver to elasticsearch
    'driver' => env('SCOUT_DRIVER', 'elasticsearch'),

...
    'elasticsearch' => [
        'index' => env('ELASTICSEARCH_INDEX', 'laravel'),
        'hosts' => [
            env('ELASTICSEARCH_HOST', 'https://'),
        ],
    ],
...

以及此软件包的配置

// config/laravel-scout-elastic.php
// set this if you don't want to include it in your .env
    'provider' => env('ELASTICSEARCH_PROVIDER', 'elasticsearch'),
...
    'region' => env('AWS_REGION', 'us-west-2'),
...

并启用 artisan 任务

// App/Console/Kernel.php
protected $commands = [
    ...
    \ScoutEngines\Elasticsearch\Commands\CreateIndex::class,
    ...
],

Elasticsearch 配置

如果 Scout 无法创建与您的 Elasticsearch 服务器联系或索引不存在,它将愉快地抛出错误。

创建索引可能有些神秘,因此如果索引不存在,您可以在部署堆栈中包含以下 artisan 命令来检查索引是否存在,如果不存在,则创建它。

php artisan scout:create-index

用法

现在您可以使用 Laravel Scout 如官方文档中所述

致谢

许可证

MIT 许可证 (MIT)