このトピックでは、EventBridge が提供する PHP 用 SDK のインストール方法と、PHP 用 SDK を使用してイベントを発行する方法について説明します。このトピックでは、サンプルコードも提供されています。
概要
EventBridge SDK は、管理 API SDK とデータ API SDK に分類されます。異なるタイプの SDK で使用されるサンプルコードは異なります。
管理 API SDK:EventBridge コンソールで操作を実行するために使用される SDK です。
データ API SDK:イベントデータのチャネルです。このタイプの SDK を使用して呼び出されるのは、PutEvents API 操作のみです。
始める前に
以下の操作を実行します。
環境の準備
環境要件
PHP 5.6 以降がインストールされていること。詳細については、PHP のダウンロード ページをご覧ください。
Composer をインストールします。詳細については、Composer のダウンロード ページをご覧ください。
PHP バージョンの確認
php -v
コマンドを実行して、PHP のバージョンを確認します。
管理 API SDK
PHP 用 SDK のインストール
次のコマンドを実行して、PHP 用 SDK をインストールします。
composer require alibabacloud/eventbridge-20200401 1.0.0
サンプルコード
OpenAPI Explorer の対応する操作を呼び出して、サンプルコードを自動的に生成できます。詳細については、「SDK サンプルの自動生成」をご参照ください。
データ API SDK
PHP 用 SDK のインストール
次のコマンドを実行して、PHP 用 SDK をインストールします。
composer require alibabacloud/eventbridge
次のコマンドを実行して、PHP 用の出力ライブラリをインストールします。
composer require alibabacloud/tea-console
サンプルコード
データ API SDK は、PutEvents API 操作のみをサポートしています。 PHP 用 SDK を使用して 1 つ以上のイベントを発行する場合は、次のサンプルコードを参照してください。
<?php
namespace Alibabacloud\Sample;
use AlibabaCloud\SDK\EventBridge\Eventbridge;
use AlibabaCloud\SDK\EventBridge\Models\CloudEvent;
use AlibabaCloud\SDK\EventBridge\Models\Config;
use AlibabaCloud\Tea\Console\Console;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Exception;
class Client
{
/**
* CreateClient() 関数を使用して、共通の要求パラメータを初期化します。
*
* @return Eventbridge
*/
public static function createClient()
{
$config = new Config([]);
// AccessKey ID を設定します。
SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
// AccessKey Secret を設定します。
SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
// エンドポイントを設定します。
SetEndpoint("<endpoint>")
return new Eventbridge($config);
}
/**
* PutEvents
*
* @param Eventbridge $client
*
* @return void
*/
public static function PutEvents($client)
{
$event = new CloudEvent([]);
$event->datacontenttype = 'application/json';
$event->data = Utils::toBytes('test');
$event->id = 'a5074581-7e74-4e4c-868f-47e7afdf****';
$event->source = 'acs.oss';
$event->specversion = '1.0';
$event->type = 'oss:ObjectCreated:PostObject';
$event->time = '2020-08-24T13:54:05.965Asia/Shanghai';
$event->subject = '1.0';
$event->type = 'acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg';
$event->extensions = [
'aliyuneventbusname' => 'demo-bus',
];
try {
$resp = $client->putEvents([
$event,
]);
Console::log('--------------------Aliyun EventBus にイベントを発行します--------------------');
Console::log(Utils::toJSONString($resp->toMap()));
} catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
Console::log($error->message);
}
}
/**
* @param string[] $args
*
* @return void
*/
public static function main($args)
{
$client = self::createClient();
self::PutEvents($client);
}
}
require '../vendor/autoload.php';
Client::main([]);