webfoersterei/hetzner-cloud-api-client

通过API管理Hetzner云服务的客户端

0.2.1-alpha 2018-08-03 10:47 UTC

This package is auto-updated.

Last update: 2024-09-29 03:52:47 UTC


README

管理Hetzner云的API客户端

Build Status Packagist Packagist Pre Release GitHub license

用法

使用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";