abdullahfaqeir / laravel-dynamic-servers-vultr
Vultr提供者,用于Spatie的Laravel Dynamic Servers包
1.0.0
2023-03-22 14:39 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- sammyjo20/saloon: ^2.0
- sammyjo20/saloon-laravel: ^2.0
- spatie/laravel-dynamic-servers: ^1.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-09 04:47:22 UTC
README
此包提供Spatie的Laravel Dynamic Servers包的服务器提供者,链接到Laravel Dynamic Servers。
安装
您可以通过composer安装此包
composer require abdullahfaqeir/laravel-dynamic-servers-vultr
之后,请确保发布此包附带的事件服务提供者
php artisan dynamic-servers-vultr:install
用法
在config/dynamic-servers.php中注册Vulter提供者
return [ 'providers' => [ 'vultr' => [ 'class' => AbdullahFaqeir\LaravelDynamicServersVultr\Vultr\VultrServerProvider::class, 'maximum_servers_in_account' => 15, 'options' => [ 'token' => env('VULTR_TOKEN'), 'region' => env('VULTR_REGION'), ], ], ], ];
在app/Providers/DynamicServersProvider.php中,使用Vultr提供者注册一个新的服务器类型
public function register() { .... $vultrServer = ServerType::new('small') ->provider('vultr') ->configuration(function (Server $server) { return [ 'label' => Str::slug($server->name), "region" => $server->option('region'), 'plan' => 'vc2-1c-1gb', "vpc_uuid" => '62420e18-5628-4f6c-9ee4-aca48a5a7c17', 'os_id' => 1743, 'enable_ipv6' => true, 'backups' => 'disabled', 'tags' => [ 'tag1', 'tag2' ] ]; }); DynamicServers::registerServerType($vultrServer); }
事件
在基础包的CreateServerJob
执行后,将调度一个新的作业VerifyServerStartedJob
,并每隔20秒检查一次,以确保提供者最终将实例标记为运行。
一旦确保它运行,就不再尝试再次获取服务器元数据。
考虑到Vultr只有在实例完全创建后才会返回实例的IP地址,我们需要再次获取实例元数据。
为此,我们将使用基础包的事件ServerRunningEvent
。
此包将在您的项目中发布一个App\Providers\VultrEventServiceProvider
。
默认情况下,有一个单独的监听器配置,它将在基础包确保它运行后再次获取实例的元数据。
protected $listen = [ ServerRunningEvent::class => [ UpdateServerMeta::class, ], ];
您可以根据需要自定义监听器、禁用它或用您自己的替换它。
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。