本文以 PHP SDK V2.0 为例,演示如何调用云监控2.0(cms20240330)OpenAPI。其他接口的调用方法类似,仅需替换 Request/Response 类型与字段。
环境要求
PHP 5.6 及以上。
安装方式
通过 Composer 安装:
composer require alibabacloud/cms-20240330 10.0.0配置访问凭据
工程代码建议使用更安全的无 AK 方式,凭据配置方式请参见管理访问凭据。最简单的做法是在系统环境变量中配置:
export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-access-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-access-key-secret>"AlibabaCloud\Credentials\Credential 会按照默认凭据链顺序查找凭据。
完整代码示例
以下示例调用 GetCmsService 接口,查询云监控2.0服务对应产品的开通状态:
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Cms\V20240330\Cms;
use AlibabaCloud\Credentials\Credential;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Cms\V20240330\Models\GetCmsServiceRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* 使用凭据初始化账号 Client
* @return Cms Client
*/
public static function createClient(){
// 工程代码建议使用更安全的无 AK 方式。
$credential = new Credential();
$config = new Config([
"credential" => $credential
]);
// Endpoint 请参考 https://api.aliyun.com/product/Cms
$config->endpoint = "metrics.cn-hangzhou.aliyuncs.com";
return new Cms($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$getCmsServiceRequest = new GetCmsServiceRequest([
"product" => "your_value",
"service" => "your_value"
]);
$headers = [];
try {
$resp = $client->getCmsServiceWithOptions($getCmsServiceRequest, $headers, new RuntimeOptions([]));
var_dump($resp->toMap());
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 错误 message
var_dump($error->message);
// 诊断地址
var_dump($error->data["Recommend"]);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));步骤介绍
初始化配置对象
Darabonba\OpenApi\Models\Config。Config 对象存放 credential、endpoint 等配置,Endpoint 如示例中的metrics.cn-hangzhou.aliyuncs.com。use Darabonba\OpenApi\Models\Config; use AlibabaCloud\Credentials\Credential; $credential = new Credential(); $config = new Config([ "credential" => $credential ]); $config->endpoint = "metrics.cn-hangzhou.aliyuncs.com";实例化客户端:
use AlibabaCloud\SDK\Cms\V20240330\Cms; $client = new Cms($config);(可选)初始化 RuntimeOptions:
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions; $runtime = new RuntimeOptions(); $runtime->maxIdleConns = 3; $runtime->connectTimeout = 10000; $runtime->readTimeout = 10000;创建对应 API 的 Request:
$request = new GetCmsServiceRequest();设置请求参数:
$request->product = "your_value"; $request->service = "your_value";通过 client 调用接口:
$response = $client->getCmsService($request, $runtime); var_dump($response->toMap());从 response 读取返回值,例如:
var_dump($response->body->requestId);错误处理:
catch (Exception $error) { if (!($error instanceof TeaError)) { $error = new TeaError([], $error->getMessage(), $error->getCode(), $error); } var_dump($error->message); var_dump($error->data["Recommend"]); }
更多接口与示例代码可在 OpenAPI 门户 SDK 示例 查看。
该文章对您有帮助吗?