全部产品
Search
文档中心

Alibaba Cloud SDK:Konfigurasikan Alibaba Cloud SDK V1.0 untuk PHP

更新时间:Jul 06, 2025

Untuk mempermudah pemanggilan API, disarankan untuk mengintegrasikan Alibaba Cloud SDK ke dalam proyek Anda. SDK ini menyederhanakan proses pengembangan, mempercepat integrasi fitur, dan secara signifikan mengurangi biaya operasional dan pemeliharaan (O&M). Artikel ini menjelaskan cara mengintegrasikan Alibaba Cloud SDK V1.0 untuk PHP ke dalam proyek Anda serta cara menggunakan SDK tersebut untuk pengembangan.

Prasyarat

PHP versi 5.5 atau yang lebih baru telah terinstal.

Instal Alibaba Cloud SDK V1.0 untuk PHP

Saat menginstal Alibaba Cloud SDK V1.0 untuk PHP, pustaka inti akan terinstal secara otomatis. Oleh karena itu, Anda hanya perlu menginstal SDK tersebut.

Service SDK

SDK V1.0 dari layanan Alibaba Cloud menyediakan objek permintaan dan respons untuk operasi API, serta objek Unmarshaller yang digunakan untuk menguraikan nilai-nilai yang dikembalikan. Contoh kode berikut menunjukkan cara mengonfigurasi SDK V1.0 dari Elastic Compute Service (ECS) sebagai dependensi:

# ECS V1.0 SDK
composer require alibabacloud/ecs

SDK V1.0 dari setiap layanan Alibaba Cloud diberi nama dalam format alibabacloud/${Service name}. Untuk informasi lebih lanjut tentang SDK V1.0 dari setiap layanan Alibaba Cloud, kunjungi SDK Center.

Pustaka inti

Pustaka inti dari sebuah SDK mencakup objek klien, logika tanda tangan, dan logika penanganan kesalahan, yang merupakan informasi yang diperlukan untuk memanggil operasi API. Untuk membuat panggilan generik atau menginstal pustaka inti versi tertentu, jalankan perintah berikut:

composer require alibabacloud/client

Untuk informasi lebih lanjut tentang versi terbaru, lihat alibabacloud/client - Packagist.

Gunakan SDK

Contoh berikut menunjukkan cara menggunakan Alibaba Cloud SDK V1.0 untuk memanggil operasi API DescribeInstances dari ECS.

1. Inisialisasi klien permintaan

Semua operasi API dipanggil menggunakan objek Client yang disediakan oleh pustaka inti. Sebelum memanggil operasi API, Anda harus menginisialisasi klien permintaan. Dalam contoh ini, klien permintaan diinisialisasi menggunakan pasangan AccessKey. Untuk informasi lebih lanjut, lihat Kelola Kredensial Akses.

Catatan

Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET, yang harus dikonfigurasi sebelum menjalankan kode. Untuk informasi lebih lanjut, lihat Konfigurasikan Variabel Lingkungan di Linux, macOS, dan Windows.

use AlibabaCloud\Client\AlibabaCloud;

// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
            ->regionId('<REGION_ID>')
            ->asDefaultClient();

2. Buat objek permintaan

Anda dapat menggunakan objek permintaan yang disediakan oleh SDK untuk mengenkapsulasi parameter permintaan.

use AlibabaCloud\Ecs\Ecs;

// Bangun parameter permintaan.    
$request = Ecs::v20140526()
    ->describeInstances() // Buat objek permintaan untuk operasi API.
    ->withInstanceIds(json_encode(["i-bp1dXXXXXXXXXXXX"])) // Parameter permintaan InstanceIds. Tentukan ID instance Anda.
    ->withPageSize(10) // Parameter permintaan PageSize. Tentukan jumlah entri yang ingin Anda peroleh.
    ->withPageNumber(1); // Parameter permintaan PageNumber. Tentukan nomor halaman yang ingin Anda peroleh.

3. Ajukan permintaan API

Panggil fungsi request() untuk mengajukan permintaan API.

$result = $request
    ->debug(true) // Keluarkan detail. Jika bidang ini disetel ke false, detail tidak akan dikeluarkan.
    ->request(); // Jalankan permintaan.
print_r($result->toArray()); // Cetak respons terhadap permintaan API.

4. Tangani kesalahan

Jika kesalahan terpicu saat memanggil operasi API, Anda dapat menangkap ServerException dan ClientException untuk mendapatkan pesan kesalahan.

Kode Contoh Lengkap

<?php
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Ecs\Ecs;

require_once 'vendor/autoload.php';

try {
    // Dapatkan pasangan AccessKey dari Pengguna Resource Access Management (RAM) dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))
        ->regionId('cn-hangzhou') // ID wilayah. Dalam contoh ini, cn-hangzhou digunakan.
        ->asDefaultClient();

    // Bangun parameter permintaan.    
    $request = Ecs::v20140526()
        ->describeInstances()
        ->withInstanceIds(json_encode(["i-bp1dXXXXXXXXXXXX"]))
        ->withPageSize(10)
        ->withPageNumber(1);

    $result = $request
        ->debug(true)
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    # Tangani kesalahan dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    # Tangani kesalahan dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

Referensi

  • Untuk informasi lebih lanjut tentang pengaturan SDK tingkat lanjut, seperti pengaturan proxy dan waktu habis, lihat Pengaturan Lanjutan.

  • Untuk informasi lebih lanjut tentang cara membuat pasangan AccessKey, lihat Buat Pasangan AccessKey.