webfoersterei / hetzner-cloud-api-client
通过API管理Hetzner云服务的客户端
0.2.1-alpha
2018-08-03 10:47 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ^6.3
- phpdocumentor/reflection-docblock: ^4.3
- psr/log: ^1.0
- symfony/property-access: ^4.0
- symfony/property-info: ^4.0
- symfony/serializer: ^4.0
Requires (Dev)
- monolog/monolog: ^1.23
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-29 03:52:47 UTC
README
管理Hetzner云的API客户端
用法
使用composer安装此包 composer require webfoersterei/hetzner-cloud-api-client "dev-master@dev"
注意: 目前没有稳定版本
之后您可以像这样使用客户端
define('API_KEY', 'MYSECRETAPIKEY'); # See https://docs.hetzner.cloud/#header-authentication-1 $cloudApiClient = Webfoersterei\HetznerCloudApiClient\ClientFactory::create(API_KEY); # You can now use the cloudApiClient. E.g: $cloudApiClient->getServers();
实现的方法
客户端为以下方法提供了实现(按资源分组)。
操作
见:https://docs.hetzner.cloud/#resources-actions
- 列出所有:
getActions()
- 获取一个:
getAction(int $id)
服务器
见:https://docs.hetzner.cloud/#resources-servers
- 获取所有:
getServers()
- 获取一个:
getServer(int $id)
- 创建一个:
createServer(CreateRequest $createRequest)
- 重命名:
changeServerName(int $id, string $name)
- 删除一个:
deleteServer(int $id)
服务器类型
见:https://docs.hetzner.cloud/#resources-server-types
- 获取所有:
getServerTypes()
- 获取一个:
getServerType(int $id)
定价
见:https://docs.hetzner.cloud/#resources-pricing-get
- 获取所有:
getPricing()
贡献
欢迎您通过向此GitHub仓库报告错误和改进此API客户端的想法来贡献。
示例
服务器类型列表
列出所有服务器类型:名称和规格
# Require vendors/autoload.php here define('API_KEY', 'MYSECRETAPIKEY'); $client = \Webfoersterei\HetznerCloudApiClient\ClientFactory::create(API_KEY); $serverTypes = $client->getServerTypes(); foreach ($serverTypes->server_types as $serverType) { printf("%--12s CPU: %2d Cores, RAM: %3d GB, Storage: %4d GB (%s)\n", $serverType->name, $serverType->cores, $serverType->memory, $serverType->disk, $serverType->storage_type); }
我的第一个服务器
创建一个新的服务器,启动后删除它
# Require vendors/autoload.php here define('API_KEY', 'MYSECRETAPIKEY'); $client = \Webfoersterei\HetznerCloudApiClient\ClientFactory::create(API_KEY); $createServerRequest = new \Webfoersterei\HetznerCloudApiClient\Model\Server\CreateRequest(); $createServerRequest->name = 'my-first-server-created-with-php'; $createServerRequest->server_type = 'cx11'; $createServerRequest->start_after_create = true; $createServerRequest->image = 1; echo "Creating server.\n"; $createResponse = $client->createServer($createServerRequest); $progress = $createResponse->action->progress; $status = $createResponse->action->status; while ($progress != 100 && $status != 'success') { $actionResponse = $client->getAction($createResponse->action->id); echo $actionResponse->action->progress."%\n"; $progress = $actionResponse->action->progress; sleep(1); } echo sprintf("Server created. Root-PW: %s\n", $createResponse->root_password); sleep(10); echo "Deleting server.\n"; $client->deleteServer($createResponse->server->id); echo "Done.\n";