securitydiscovery / laravel-fly-machines
该包已被放弃,不再维护。未建议替代包。
为Laravel提供Fly.io机器API客户端。
v1.0.1
2023-03-08 12:07 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^8.0|^9.0|^10.0
- illuminate/http: ^9.0|^10.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
This package is auto-updated.
Last update: 2024-02-09 05:51:14 UTC
README
这是一个非常简单且轻量级的Fly.io机器API客户端。
安装
您可以通过composer安装此包
composer require securitydiscovery/laravel-fly-machines
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="fly-machines-config"
这是发布配置文件的内容
// config for SecurityDiscovery/LaravelFlyMachines return [ 'proto' => env('FLY_API_PROTO', 'http'), // The endpoint to the Fly machines API. 'endpoint' => env('FLY_API_HOSTNAME', '127.0.0.1:4280'), // The token to authenticate to the API. 'token' => env('FLY_API_TOKEN'), ];
使用方法
use SecurityDiscovery\LaravelFlyMachines\Facades\LaravelFlyMachines as FlyMachines;
列出Fly.io应用的机器
FlyMachines::machines('my-fly-app')->list()
启动机器
FlyMachines::machines('my-fly-app')->launch(machine: $config)
更新机器
FlyMachines::machines('my-fly-app')->update(machineId: "machineId", machine: $config, nonce: "nonce")
获取机器
FlyMachines::machines('my-fly-app')->get(machineId: "machineId")
停止机器
FlyMachines::machines('my-fly-app')->stop(machineId: "machineId")
启动机器
FlyMachines::machines('my-fly-app')->start(machineId: "machineId")
向机器发送信号
FlyMachines::machines('my-fly-app')->signal(machineId: "machineId", signal: 9)
杀死机器(使用信号9(SIGKILL),与上述调用相同)。
FlyMachines::machines('my-fly-app')->kill(machineId: "machineId")
重启机器。
FlyMachines::machines('my-fly-app')->restart(machineId: "machineId", forceStop: true, timeout: 10, signal: 9)
寻找机器的租约。
FlyMachines::machines('my-fly-app')->findLease(machineId: "machineId")
获取机器的租约。
FlyMachines::machines('my-fly-app')->acquireLease(machineId: "machineId", ttl: 30)
释放机器的租约。
FlyMachines::machines('my-fly-app')->releaseLease(machineId: "machineId", nonce: "nonce")
等待机器。
FlyMachines::machines('my-fly-app')->releaseLease(machineId: "machineId", instanceId: "instanceId", state: "started", timeout: 30)
销毁机器。
FlyMachines::machines('my-fly-app')->destroy(machineId: "machineId", kill: true)
启动Fly.io机器
use SecurityDiscovery\LaravelFlyMachines\Facades\LaravelFlyMachines as FlyMachines; use SecurityDiscovery\LaravelFlyMachines\Helpers\Machine; $machineConfig = Machine(); $machine = FlyMachines::machines('my-fly-app') ->launch( Machine::builder() ->image(image: 'registry-1.docker.io/flyio/postgres:14.4') ->toArray() );
不使用辅助工具启动Fly.io机器
use SecurityDiscovery\LaravelFlyMachines\Facades\LaravelFlyMachines as FlyMachines; $machine = FlyMachines::machines('my-fly-app')->launch([ 'config' => [ 'image' => 'registry-1.docker.io/flyio/postgres:14.4', ], 'region' => 'fra', ]);
Fly Machine Helper
use SecurityDiscovery\LaravelFlyMachines\Facades\LaravelFlyMachines as FlyMachines; use SecurityDiscovery\LaravelFlyMachines\Helpers\Machine; $machineConfig = Machine::builder() ->image(image: 'my.registry.io/a/b:14.4') // Required ->init( // Optional entrypoint: ['/bin/sh'], exec: ['exec'], cmd: ['cmd'], tty: false ) ->retries( // Optional max_retries: 3, policy: 'on-failure' ) ->mount( // Optional volume_id: 'vol_123', path: '/data' ) ->env(name: 'NAME_1', value: 'VALUE_1') // Optional ->env(name: 'NAME_2', value: 'VALUE_2') // Optional ->auto_destroy(auto_destroy: True) // Optional ->name(name: 'my_machine') // Optional ->schedule(schedule: 'daily') // Optional ->region(region: 'fra') // Optional ->size(size: 'shared-cpu-1x' ) // Optional | WARNING: Use 'guest' or 'size' ->guest( // Optional cpus: 1, memory_mb: 2*256, cpu_kind: 'shared', kernel_args: [] ) ->process() // TODO: Document this ->toArray();
更多信息请见 https://fly.io/docs/machines/working-with-machines/.
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全漏洞
请查阅我们的安全策略如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。
"Laravel"是Taylor Otwell的注册商标。本项目与Taylor Otwell无任何关联、合作、认可或赞助关系,也未经过Taylor Otwell的审查、测试或认证。使用“Laravel”商标仅用于信息性和描述性目的。Laravel Workflow并非官方与Laravel商标或Taylor Otwell相关。