トピックへのサブスクリプションを作成します。
承認情報
デフォルトでは、Alibaba Cloud アカウントのみを使用してこの操作を呼び出すことができます。必要な権限をRAMユーザーに付与した後のみ、RAMユーザーとしてこの操作を呼び出すことができます。次の表に、この操作の承認情報を示します。詳細については、「権限ポリシーと例」をご参照ください。
名前 | 値 |
API | Subscribe |
アクション | mns:Subscribe |
リソース | acs:mns:$region:$accountid:/topics/$topicName/subscriptions/$subscriptionName |
使用上の注意
サブスクリプション名は最大 255 文字で、文字、数字、およびハイフン (-) を含めることができます。文字または数字で始める必要があります。
サブスクリプションを作成するときは、エンドポイントを指定する必要があります。指定しないと、サブスクリプションは無効になります。
リクエスト
リクエストは次の部分で構成されます。
リクエスト行
PUT /topics/$TopicName/subscriptions/$SubscriptionName HTTP/1.1操作固有のリクエストヘッダー
なし。
リクエストボディ
リクエストボディは XML 形式で、次のパラメーターを含みます。
パラメーター
タイプ
必須
例
説明
Endpoint
String
はい
http://example.com
メッセージの受信に使用するエンドポイント。次のタイプのエンドポイントを指定できます。
[httpendpoint]。 HTTP エンドポイントは http:// で始まる必要があります。
[queueendpoint]。構文: acs:mns:{REGION}:{AccountID}:queues/{QueueName}。
[mailendpoint]。構文: mail:directmail:{MailAddress}。
[smsendpoint]。構文: sms:directsms:anonymous または sms:directsms:{Phone}。
FilterTag
String
いいえ
important
メッセージのフィルタリングに使用するタグ。同じタグを持つメッセージのみプッシュできます。
タグは最大 16 文字の文字列です。
デフォルトでは、メッセージをフィルタリングするためのタグは指定されていません。
NotifyStrategy
Boolean
いいえ
BACKOFF_RETRY
エンドポイントへのメッセージ配信中にエラーが発生した場合に適用される再試行ポリシー。
デフォルト値: BACKOFF_RETRY。
NotifyContentFormat
Boolean
いいえ
SIMPLIFIED
エンドポイントにプッシュされるメッセージの形式。
デフォルト値: XML。
Terraform を使用して alicloud_message_service_subscription を管理する場合は、次の表に示すパラメーターを設定します。
パラメーター
タイプ
必須
例
説明
TopicName
String
はい
testTopic
トピックの名前。
SubscriptionName
String
はい
testSubscription
サブスクリプションの名前。
PushType
String
はい
queue
ターミナルタイプ。有効な値:
http: HTTP
queue
mpush: モバイルデバイス
alisms: Alibaba Cloud SMS
email
Endpoint
String
はい
demoQueue
メッセージの受信に使用するエンドポイント。 PushType パラメーターを queue に設定する場合は、キュー名を指定する必要があります。
MessageTag
String
いいえ
important
メッセージのフィルタリングに使用するタグ。同じタグを持つメッセージのみプッシュできます。
タグは最大 16 文字の文字列です。
デフォルトでは、メッセージをフィルタリングするためのタグは指定されていません。
NotifyStrategy
Boolean
いいえ
BACKOFF_RETRY
MNS がエンドポイントにメッセージをプッシュするときにエラーが発生した場合に適用される再試行ポリシー。
デフォルト値: BACKOFF_RETRY。
NotifyContentFormat
Boolean
いいえ
SIMPLIFIED
エンドポイントにプッシュされるメッセージの形式。
デフォルト値: XML。
レスポンス
レスポンスは次の部分で構成されます。
HTTP ステータスコード
HTTP/1.1 201各サブスクリプション名は、トピック内で一意である必要があります。既存のサブスクリプションを作成すると、エラーが発生する可能性があります。たとえば、2 つのサブスクリプションのパラメーターの値が同じ場合、HTTP ステータスコード 204 が返されます。それ以外の場合、HTTP ステータスコード 409 が返されます。
操作固有のレスポンスヘッダー
パラメーター
タイプ
例
説明
Location
String
http://$AccountId.mns.cn-hangzhou.aliyuncs.com/topics/$TopicName/subscriptions/$SubscriptionName
作成されたサブスクリプションの URL。構文: http://$AccountId.mns.{REGION}.aliyuncs.com/topics/$TopicName/subscriptions/$SubscriptionName。
その他のレスポンスヘッダーの詳細については、「共通パラメーター」をご参照ください。
レスポンスボディ
なし。
例
リクエストの例
PUT /topics/$TopicName/subscriptions/$SubscriptionName HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Tue, 08 Dec 2015 06:06:46 GMT
Authorization:MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA*****
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="utf-8"?>
<Subscription xmlns="http://mns.aliyuncs.com/doc/v1/">
<Endpoint>http://example.com</Endpoint>
<NotifyStrategy>BACKOFF_RETRY</NotifyStrategy>
<NotifyContentFormat>SIMPLIFIED</NotifyContentFormat>
<FilterTag>important</FilterTag>
</Subscription>レスポンスの例
HTTP/1.1 201
x-mns-request-id:56667376B2B71C9C1600****
x-mns-version: 2015-06-06
Location: http://$AccountId.mns.cn-hangzhou.aliyuncs.com/topics/$TopicName/subscriptions/$SubscriptionNameエラーコード
エラーコード | エラーメッセージ | HTTP ステータスコード | 説明 |
SubscriptionNameLengthError | Subscription name length is out of range, should be between 1 and 255. | 400 | サブスクリプション名が無効なために返されるエラーメッセージ。有効な名前を指定する必要があります。 |
SubscriptionNameInvalid | The subscription you provided is invalid. SubscriptionName should start with alpha or digit, and contain only alpha, digit or -. | 400 | サブスクリプション名が無効なために返されるエラーメッセージ。有効な名前を指定する必要があります。 |
SubscriptionAlreadyExist | The subscription you want to create already exists. | 409 | 指定されたサブスクリプションの名前が既存のサブスクリプションと同じであるが、パラメーターが既存のサブスクリプションと異なるために返されるエラーメッセージ。 |
EndpointInvalid | The endpoint you provided is invalid. | 400 | 指定されたエンドポイントが無効なために返されるエラーメッセージ。詳細については、「リージョンとエンドポイント」をご参照ください。 |
InvalidArgument | The length of filter tag should be between 1 and 16. | 400 | タグの長さが制限を超えているために返されるエラーメッセージ。有効なタグを指定する必要があります。 |