Endpoint是請求介面服務的網路網域名稱,本文為您介紹V1.0 SDK 如何設定Endpoint。
V1.0 SDK 提供了多種Endpoint的定址方式,下面按優先順序排列:
使用者自訂: 是優先順序最高的定址邏輯,可以直接指定endpoint的具體內容。
<?php require_once 'vendor/autoload.php'; use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; use AlibabaCloud\Ecs\Ecs; try { // 請確保已設定環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。 AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')); // 為產品增加在某個地區的網域名稱 AlibabaCloud::addHost('Ecs', 'ecs.cn-beijing.aliyuncs.com', 'cn-beijing'); AlibabaCloud::addHost('Ecs', 'ecs.cn-hangzhou.aliyuncs.com', 'cn-hangzhou'); // 為產品增加全域網域名稱,當沒有指定regionId時,將使用該全域網域名稱 AlibabaCloud::addHost('Ecs', 'ecs.cn-hangzhou.aliyuncs.com'); $request = Ecs::v20140526()->describeRegions(); $result = $request ->debug(true) ->regionId('cn-hangzhou') // 指定regionId ->host("ecs.cn-hangzhou.aliyuncs.com") // 指定endpoint,優先順序最高 ->request(); print_r($result->toArray()); } catch (ClientException $exception) { // 此處僅做列印展示,請謹慎對待異常處理,在工程專案中切勿直接忽略異常。 echo $exception->getMessage() . PHP_EOL; } catch (ServerException $exception) { // 此處僅做列印展示,請謹慎對待異常處理,在工程專案中切勿直接忽略異常。 echo $exception->getMessage() . PHP_EOL; echo $exception->getErrorCode() . PHP_EOL; echo $exception->getRequestId() . PHP_EOL; echo $exception->getErrorMessage() . PHP_EOL; }雲產品SDK定址:根據云產品中endpoint.json定址,例如ECS的endpoint.json。
SDK Core 定址:根據PHP SDK Core中的Data.php資料檔案進行定址。
調用Location服務定址。
說明
若通過以上方式還未擷取到Endpoint,會拋出異常並提示“No host found for {product} in the {regionId}, you can specify host by host() method. Like $request->host('xxx.xxx.aliyuncs.com')”。