ApsaraVideo Media Processing(MPS)キューは、ジョブを処理するためのキューです。非同期ジョブを送信すると、ジョブの優先順位とジョブが送信された順序に基づいて、ジョブは実行待ちのキューに入れられます。このトピックでは、PHP V2.0 用 MPS SDK を使用して、MPS キューの作成、更新、削除、クエリなど、MPS キューを管理する方法の例を示します。
MPS キューの作成
AddPipeline オペレーションを呼び出して、MPS キューを作成できます。
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\AddPipelineRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
* @return Mts Client
*/
public static function createClient(){
$config = new Config([
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認します。
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
$config->endpoint = "mts.cn-hangzhou.aliyuncs.com";
return new Mts($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$addPipelineRequest = new AddPipelineRequest([
// MPS キューの名前。
"name" => "test-pipeline",
// MPS キューのタイプ。
"speed" => "Standard",
// MPS キューの速度レベル。
"speedLevel" => 1,
// Simple Message Queue(SMQ、旧称 MNS)の通知設定。
"notifyConfig" => "{\"Topic\":\"mts-topic-1\"}",
// 現在の Resource Access Management(RAM)ユーザーに割り当てられているロール。
"role" => "AliyunMTSDefaultRole"
]);
$runtime = new RuntimeOptions([]);
try {
// 必要に応じて、API オペレーションのレスポンスを表示するための独自のコードを記述します。
$client->addPipelineWithOptions($addPipelineRequest, $runtime);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
// エラーメッセージ。
var_dump($error->message);
// 対応するエラー診断ページの URL。
var_dump($error->data["Recommend"]);
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));
特定の状態の MPS キューのクエリ
SearchPipeline オペレーションを呼び出して、特定の状態の MPS キューを検索できます。
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\SearchPipelineRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
* @return Mts Client
*/
public static function createClient(){
$config = new Config([
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認します。
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
$config->endpoint = "mts.cn-hangzhou.aliyuncs.com";
return new Mts($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$searchPipelineRequest = new SearchPipelineRequest([
// クエリする MPS キューの状態。
"state" => "Paused",
// 各ページに返すエントリの数。
"pageSize" => 10,
// 現在のページ番号。
"pageNumber" => 1
]);
$runtime = new RuntimeOptions([]);
try {
// 必要に応じて、API オペレーションのレスポンスを表示するための独自のコードを記述します。
$client->searchPipelineWithOptions($searchPipelineRequest, $runtime);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
// エラーメッセージ。
var_dump($error->message);
// 対応するエラー診断ページの URL。
var_dump($error->data["Recommend"]);
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));キュー ID に基づいて MPS キューをクエリする
QueryPipelineList オペレーションを呼び出して、キュー ID に基づいて MPS キューをクエリできます。
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\QueryPipelineListRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
* @return Mts Client
*/
public static function createClient(){
$config = new Config([
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認します。
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
$config->endpoint = "mts.cn-hangzhou.aliyuncs.com";
return new Mts($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$queryPipelineListRequest = new QueryPipelineListRequest([
// クエリする MPS キューの ID。
"pipelineIds" => "d1ce4d3efcb549419193f50f1fcd****,72dfa5e679ab4be9a3ed9974c736****"
]);
$runtime = new RuntimeOptions([]);
try {
// 必要に応じて、API オペレーションのレスポンスを表示するための独自のコードを記述します。
$client->queryPipelineListWithOptions($queryPipelineListRequest, $runtime);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
// エラーメッセージ。
var_dump($error->message);
// 対応するエラー診断ページの URL。
var_dump($error->data["Recommend"]);
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));MPS キューの更新
UpdatePipeline オペレーションを呼び出して、MPS キューの名前や状態など、MPS キューを更新できます。MPS キューの状態には、アクティブと一時停止が含まれます。
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\UpdatePipelineRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
* @return Mts Client
*/
public static function createClient(){
$config = new Config([
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認します。
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
$config->endpoint = "mts.cn-hangzhou.aliyuncs.com";
return new Mts($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$updatePipelineRequest = new UpdatePipelineRequest([
// 更新する MPS キューの ID。
"pipelineId" => "d1ce4d3efcb549419193f50f1fcd****",
// MPS キューの新しい名前。
"name" => "example-pipeline-****",
// MPS キューの新しい状態。
"state" => "Paused",
// SMQ 通知設定。
"notifyConfig" => "{\"Topic\":\"example-topic-****\"}",
// 現在の RAM ユーザーに割り当てられているロール。
"role" => "AliyunMTSDefaultRole"
]);
$runtime = new RuntimeOptions([]);
try {
// 必要に応じて、API オペレーションのレスポンスを表示するための独自のコードを記述します。
$client->updatePipelineWithOptions($updatePipelineRequest, $runtime);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
// エラーメッセージ。
var_dump($error->message);
// 対応するエラー診断ページの URL。
var_dump($error->data["Recommend"]);
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));
MPS キューの削除
DeletePipeline オペレーションを呼び出して、MPS キューを削除できます。
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\DeletePipelineRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
* @return Mts Client
*/
public static function createClient(){
$config = new Config([
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認します。
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 必須。 ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
$config->endpoint = "mts.cn-hangzhou.aliyuncs.com";
return new Mts($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$deletePipelineRequest = new DeletePipelineRequest([
// 削除する MPS キューの ID。
"pipelineId" => "d1ce4d3efcb549419193f50f1fcd****"
]);
$runtime = new RuntimeOptions([]);
try {
// 必要に応じて、API オペレーションのレスポンスを表示するための独自のコードを記述します。
$client->deletePipelineWithOptions($deletePipelineRequest, $runtime);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ表示されます。
// エラーメッセージ。
var_dump($error->message);
// 対応するエラー診断ページの URL。
var_dump($error->data["Recommend"]);
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));