すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Media Processing:MPS キューの管理

最終更新日:Jan 12, 2025

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));

参照