zx/vendor/ucloud/ucloud-sdk-php/docs/quickstart.md

82 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 快速开始
## 安装
使用 `composer` 安装(推荐):
```bash
$ composer require ucloud-sdks/ucloud-sdk-php
```
## 初次使用
目前SDK 使用 PublicKey/PrivateKey 作为唯一的鉴权方式,该公私钥可以从以下途径获取:
- [UAPI 密钥管理](https://console.ucloud.cn/uapi/apikey)
下面提供一个简单的示例:
```php
use UCloud\UHost\UHostClient;
use UCloud\Core\Exception\UCloudException;
use UCloud\UHost\Apis\CreateUHostInstanceRequest;
use UCloud\UHost\Params\CreateUHostInstanceParamDisks;
$client = new UHostClient([
"publicKey" => getenv("UCLOUD_PUBLIC_KEY"),
"privateKey" => getenv("UCLOUD_PRIVATE_KEY"),
"projectId" => getenv("UCLOUD_PROJECT_ID"),
"region" => "cn-bj2",
]);
$zone = "cn-bj2-05";
// Create Instance
try {
$req = new CreateUHostInstanceRequest();
$req->setName("sdk-php-example");
$req->setZone($zone);
$req->setImageId("...");
$req->setLoginMode("Password");
$req->setPassword(base64_encode("UCloud1234!"));
$req->setCPU(1);
$req->setMemory(1024);
$disk = new CreateUHostInstanceParamDisks();
$disk->setSize(40);
$disk->setType("CLOUD_SSD");
$disk->setIsBoot("True");
$req->setDisks([$disk]);
$resp = $client->createUHostInstance($req);
} catch (UCloudException $e) {
throw $e;
}
$id = $resp->getUHostIds()[0];
```
将上述代码中 client 相关配置,以及主机的 image id 等,替换成自己的配置,即可创建一台云主机。
在该示例中,使用 SDK 完成了一个创建云主机的请求。至此,已经涵盖了 SDK 的基本核心用法,可以构建自己的脚本啦!
SDK 中的每一个 api 调用都有详细的注释文档,
可以通过 Editor/IDE 跳转到具体的方法中查看(也可以 [查看接口文档](https://docs.ucloud.cn/api/summary/README)
并根据 IDE 自动补全和报错信息继续探索 SDK 的用法。
如果需要了解这段代码提及但未完全覆盖的使用技巧,请参考:
- [通用配置](configure.md),了解如何配置 SDK如日志、重试、服务访问端点公有云、专有云
- [错误处理](error.md),了解如何处理不同类型的 SDK 异常包括参数错误RetCode 不为 0 的业务异常等
- [类型系统](typesystem.md),了解 SDK 如何校验参数,并规范化 API 的返回值。
- [请求中间件](middleware.md),了解如何拦截 SDK 发起的请求,并统一添加额外的逻辑。
- [泛化调用](generic.md),如何调用 SDK 尚未支持的 API不建议使用此类 API因为没有兼容性保证
## 获取更多示例
### 基于场景的示例
SDK 提供了部分基于场景的示例,并提供了对应的资源销毁逻辑,可以点击以下链接查看源码:
- [批量创建云主机](../examples/uhost)
- [创建基于负载均衡器的两层架构](../examples/two-tier)ULB + UHost