ColdFusion と Amazon SNS

概要

Amazon Simple Notification Service(SNS)は、サブスクライブしているエンドポイントやクライアントにアプリケーションからプッシュされるメッセージを管理するためのクラウドベースのサービスです。Amazon SNS を使用すると、API または AWS 管理コンソールを通じて様々なサービスやアプリケーションにメッセージをプッシュできます。メッセージは、いったんサービスに公開すれば、様々な受信者に何度でも送信できます。

Amazon SNS の使用を開始するには、まずトピックを作成します。これは、サブスクライバーが通知を受け取るためのアクセスポイントになります。サブスクライバー向けの更新情報がある場合は、トピックにメッセージを公開します。これにより、Amazon SNS がメッセージをすべてのサブスクライバーに確実に配信するようになります。

詳しくは、Amazon SNS を参照してください。

はじめに

awssns パッケージのインストール

Zip インストーラーを使用する場合に限り、Adobe ColdFusion(2021 リリース)はモジュール化されています。デフォルトでは、AWS SNS のモジュールはインストールされていません。最初の手順は、SNS パッケージを ColdFusion にインストールすることです。

注意:GUI インストーラーを使用する場合、これらのパッケージは事前にインストールされています。

SNS のパッケージは、awssns という名前です。

awssns パッケージをインストールするには、ColdFusion Administrator のパッケージマネージャーページを使用するか、以下の手順に従います。

  1. <CF_HOME>/cfusion/bin に移動します。

  2. 次のコマンドを入力します。

    • Windows:cfpm.bat
    • Linux:cfpm.sh
  3. コマンド install awssns を入力します。

    AWS SNS パッケージがインストールされるのを待ちます。

詳しくは、ColdFusion パッケージマネージャーを参照してください。

AWS SNS にアクセスするための資格情報の取得

AWS を操作する場合、資格情報を検証し、リクエストしているリソースにアクセスするための権限を持っているかどうかをチェックするために、AWS セキュリティ資格情報を指定します。

AWS は、セキュリティ資格情報を使用して、リクエストを認証および承認します。

AWS アクセスキー ID および AWS シークレットアクセスキーを取得する必要があります。詳しくは、アクセスキーを参照してください。

クラウドサービス資格情報および設定の追加

Adobe ColdFusion(2021 リリース)には、様々なクラウドサービスにアクセスするためのオブジェクトを作成するためにハンドルを提供するメソッド getCloudService() があります。

サービスハンドルのシンタックスを次に示します。

service=getCloudService(cloudCred,cloudConfig)

  • cloudCred:クラウドサービスの資格情報を定義します。構造体または文字列です(資格情報エイリアスとも呼ばれます)。
  • cloudConfig:クラウドサービス設定の詳細を定義します。構造体または文字列です(設定エイリアスとも呼ばれます)。

AWS 資格情報を獲得したら、次のいずれかの方法でこれらの資格情報を宣言する必要があります。その後でのみ、これらの資格情報を使用して SNS オブジェクトを作成でき、それからそのオブジェクトを使用して様々な SNSメソッドを呼び出すことができます。

ColdFusion Administrator

資格情報の設定

ColdFusion Administrator で、データとサービス/クラウド資格情報をクリックします。

エイリアスは、クラウドサービスおよびその設定の詳細の名前付き表現です。ColdFusion Administrator を使用して設定エイリアスを設定できます。

クラウド資格情報の追加
クラウド資格情報の追加

詳細を入力したら、「資格情報を追加」をクリックします。

設定オプションの設定

ColdFusion Administrator で、「データとサービス/クラウド設定」をクリックします。

設定エイリアス、ベンダー、サービスの名前など、次の詳細を入力します。

クラウド設定の追加
クラウド設定オプションの追加

設定オプションを追加した後、さらにいくつかのオプションを追加する必要がある場合があります。次に表示される画面で追加できます。場合によって追加する必要があるオプションを次に示します。

  • リクエスト設定
  • クライアント設定
  • プロキシ設定
  • 再試行ポリシー
  • 再試行条件

詳しくは、クラウド設定オプションを参照してください。

オブジェクトの作成

SNS 資格情報および設定オプションのエイリアスを作成したら、cloudService API を使用してオブジェクトを作成し、次のコードを CFM に含めることができます。

snsObject= getCloudService("snsCred", "snsConf")

Application.cfc

Application.cfc で SNS 資格情報および設定オプションを指定できます。次に例を示します。

component { this.name=&quot;AWS_STD_Queue&quot;; void function onApplicationStart(){ application.awsCred = { &quot;alias&quot; : &quot;aws_std_queue&quot;, &quot;vendorName&quot; : &quot;AWS&quot;, &quot;region&quot; : &quot;us-east-1&quot;, &quot;secretAccessKey&quot; : &quot;xxxxxxxxxxxxxxxxx&quot;, &quot;accessKeyId&quot; : &quot;xxxxxxxxxxxxxxxx&quot; } application.snsConf = { &quot;serviceName&quot; : &quot;SNS&quot; } application.sqsConf ={ &quot;serviceName&quot; : &quot;SQS&quot; 
                             }         
 
    } 
}

オブジェクトの作成

snsObject = getCloudService(application.awsCred, application.snsConf)

CFM ページ上

CFM ページでは、以下に示す 4 つの方法のいずれかで SNS 資格情報および設定オプションを指定できます。

資格情報エイリアスおよび設定エイリアス

SNS 資格情報および設定オプション用のエイリアスを作成したら、次に示すように、getCloudService ハンドルでそれらのエイリアスを使用できます。

<cfscript> // ColdFusion Administrator で資格情報エイリアスと設定エイリアスを定義 sns=cloudService(&quot;awsCred&quot;,&quot;snsConf&quot;) // 以下にコードを記述 ...........</cfscript>

資格情報エイリアスおよび設定オプションの構造体

<cfscript> // 資格情報エイリアスとサービス設定構造体を使用 snsConf = { &quot;alias&quot;:&quot;snsConf&quot;, &quot;serviceName&quot; : &quot;SNS&quot;, &quot;clientOverrideConfig&quot;:{ &quot;retryPolicy&quot;:{ &quot;numRetries&quot;:4 } }, &quot;httpClientConfig&quot;:{ &quot;maxConnections&quot;:50 } } sns= cloudService(&quot;snsCred&quot;, snsConf) // 以下にコードを記述 .....................</cfscript>

設定エイリアスおよび資格情報の構造体

<cfscript> // 設定エイリアスとサービス資格情報構造体を使用 // SNS 資格情報 snsCreds={ &quot;vendorName&quot;:&quot;AWS&quot;, &quot;alias&quot;: &quot;snsCred&quot;, &quot;region&quot;:&quot;us-east-2&quot;, &quot;accessKeyId&quot;: &quot;access key&quot;, &quot;secretAccessKey&quot;: &quot;secret access&quot; } sns= cloudService(snsCreds, &quot;snsConf&quot;) // 以下にコードを記述 .....................................</cfscript>

資格情報と設定オプションの両方の構造体

<cfscript> // クラウドの資格情報と設定の構造体を使用 snsCred={ &quot;vendorName&quot;:&quot;AWS&quot;, &quot;alias&quot;: &quot;sns_cred_alias&quot;, &quot;region&quot;:&quot;us-east-2&quot;, &quot;accessKeyId&quot;: &quot;access key&quot;, &quot;secretAccessKey&quot;: &quot;secret access key&quot; } snsConf = { &quot;alias&quot;:&quot;sns_conf_alias&quot;, &quot;serviceName&quot; : &quot;SNS&quot;, &quot;clientOverrideConfig&quot;:{ &quot;retryPolicy&quot;:{ &quot;numRetries&quot;:4 } }, &quot;httpClientConfig&quot;:{ &quot;maxConnections&quot;:50 } } sns = cloudService(snsCred, snsConf ) // 以下にコードを記述 ...................................................................</cfscript>

Admin API

また、Admin API を使用して SNS 資格情報および設定オプションを追加することもできます。資格情報および設定を追加するためのメソッドは、cloud.cfc で使用できます。

メソッド addCredential(struct credential) および addServiceConfig(struct config) の使用例を以下に示します。

資格情報の追加

<cfscript> // Administrator コンポーネントのオブジェクトを作成して login メソッドを呼び出す adminObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.administrator&quot;) adminObj.login(&quot;admin&quot;) // クラウドコンポーネントのオブジェクトを作成 cloudObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.cloud&quot;) // 資格情報構造体を定義 credentialStruct={ &quot;alias&quot; : &quot;CredSNS&quot;, &quot;vendorName&quot; : &quot;AWS&quot;, &quot;region&quot; : &quot;us-east-2&quot;, &quot;secretAccessKey&quot; : &quot;secret access key&quot;, &quot;accessKeyId&quot; : &quot;access key&quot; } // 資格情報の credentialStruct を追加 try{ cloudObj.addCredential(credentialStruct) writeOutput(&quot;Credentials added successfully&quot;) } catch(any e){ writeDump(e) } </cfscript>

設定の追加

<cfscript> // Administrator コンポーネントのオブジェクトを作成して login メソッドを呼び出す adminObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.administrator&quot;) adminObj.login(&quot;admin&quot;) // クラウドコンポーネントのオブジェクトを作成 cloudObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.cloud&quot;) // 設定構造体を定義 configStruct={ &quot;alias&quot;:&quot;ConfSNS&quot;, &quot;serviceName&quot;:&quot;SNS&quot;, &quot;clientOverrideConfig&quot;:{ &quot;retryPolicy&quot;:{ &quot;numRetries&quot;:4 } }, &quot;httpClientConfig&quot;:{ &quot;maxConnections&quot;:50 } } // 設定の configStruct を追加 try{ cloudObj.addServiceConfig(configStruct) writeOutput(&quot;Configuration service added successfully&quot;) } catch(any e){ writeDump(e) } </cfscript>

CFSetup

CFSetup 設定ユーティリティを使用して SNS の資格情報と設定をセットアップすることもできます。

クラウド資格情報の追加

add cloudcredential credentialAlias=snscred accesskeyid=<access> secretaccesskey=<secret> region=ap-southeast-1 vendorname=AWS

資格情報の設定

set cloudcredential snscred secretaccesskey=awssecret

クラウド設定の追加

add cloudconfiguration serviceName=SNS alias=snsConfig

設定の設定

set cloudconfiguration conf1 alias=conf2

SNS API の一覧

SNSClient API

SNSTopic API

SNSSubscription API

  1. Struct listTopics();
  2. Struct publish(Map message);
  3. SNSTopic createTopic(String topicName, Map topicCreateOptions);
  4. SNSTopic createTopic(String topicName);
  5. Struct deleteTopic(String topicArn);
  6. SNSSubscription subscribe(Map subscription);
  7. Struct unsubscribe(Object subscription);
  8. Struct setSubscriptionAttributes(Map subscriptionAttributes);
  9. Struct getTopicAttributes(String topicArn);
  10. Struct setTopicAttributes(Map topicAttributes);
  11. Struct tagTopic(String topicArn, Map tags);
  12. Struct untagTopic(String topicArn, Map tags);
  13. Struct listTopicTags(String topicArn);
  14. Struct listTopicSubscriptions(String topicArn);
  15. Struct setSMSAttributes(Map smsAttributes);
  16. Struct getSMSAttributes();
  17. Struct addPermission(String topicArn, Map permission);
  18. Struct removePermission(String topicArn, String permissionLabel);
  19. Struct confirmSubscription(String topicArn, Map subscription);
  20. Struct listTopics(String nextToken);
  21. Struct listTopicSubscriptions(String topicArn, String nextToken);
  22. Struct listSubscriptions();
  23. Struct listSubscriptions(String nextToken);
  24. Struct createPlatformEndpoint(Map platformEndpoint);
  25. Struct deleteEndpoint(String endpointArn);
  26. Struct getEndpointAttributes(String endpointArn);
  27. Struct createPlatformApplication(Map platformApplication);
  28. Struct deletePlatformApplication(String platformApplicationArn);
  29. Struct listTagsForResource(String resourceArn);
  30. Struct optInPhoneNumber(String phoneNumber);
  31. Struct listPhoneNumbersOptedOut();
  32. Struct listPhoneNumbersOptedOut(String nextToken);
  33. Struct checkIfPhoneNumberIsOptedOut(String phoneNumber);
  34. Struct getSubscriptionAttributes(Object subscription);

  1. String getTopicArn();
  2. Struct publish(Map message);
  3. SNSSubscription subscribe(Map subscription);
  4. Struct getAttributes();
  5. Struct setAttributes(Map attributes);
  6. Struct tag(Map tags);
  7. Struct untag(Map tags);
  8. public Struct listTags();
  9. Struct listSubscriptions();
  10. Struct addPermission(Map permission);
  11. Struct removePermission(String permissionLabel);
  12. Struct confirmSubscription(Map subscription);
  13. Struct listSubscriptions(String nextToken);

  1. String getSubscriptionArn();
  2. Struct setAttributes(Map attributes);
  3. Struct getAttributes(Object subscription);

 

トピックの作成

SNS では、トピックは、コミュニケーションに役立つ論理的なアクセスポイントになります。トピックでは、Amazon SQS、HTTPS、メールアドレスなどの複数のエンドポイントを組み合わせることができます。プロデューサーのメッセージを様々なコンシューマーにブロードキャストするには、通常は、そのプロデューサーのトピック作成します。

詳しくは、CreateTopic を参照してください。

シンタックス

createTopic(topicName,topicAttributes)

パラメーター

パラメーター

説明

必須

topicName

作成するトピックの名前。

文字列

はい

topicAttributes

次の属性のキーと値のペアです。

  • DeliveryPolicy:HTTP/S エンドポイントへの配信に失敗した場合、SNS でどのように再試行が行われるかを定義します。
  • DisplayName:トピックの表示名。
  • Policy:トピックのアクセスポリシー。

次の属性はサーバー側の暗号化にのみ適用されます。

  • KmsMasterKeyId:Amazon SNS またはカスタム CMK の AWS 管理の顧客マスターキー(CMK)の ID。詳しくは、重要な用語を参照してください。

構造体

いいえ

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピック属性を定義 createTopicMetadata = { &quot;tags&quot; = [ {&quot;key&quot; = &quot;key1&quot;,&quot;value&quot; = &quot;value1&quot;}, {&quot;key&quot; = &quot;key2&quot;,&quot;value&quot; = &quot;value2&quot;} ], &quot;attributes&quot; = { &quot;DisplayName&quot; = &quot;This is a sample display name.&quot;} 
 }  
  try{ topicResponse = sns.createTopic(&quot;NewTopic&quot;,createTopicMetadata) writeOutput(&quot;Successfully created an SNS topic&quot;) writeDump(topicResponse) } catch(any e){ writeDump(e) } </cfscript>

サーバー側の暗号化を使用したトピックの作成

サーバー側の暗号化(SSE)では、暗号化されたトピックで機密データを送信できます。SSE は、AWS Key Management Service(AWS KMS)で管理されたキーを使用して、Amazon SNS トピック内のメッセージの内容を保護します。

SSE では、Amazon SNS でメッセージが受信されるとすぐに、メッセージを暗号化します。メッセージは暗号化された形式で格納され、送信時にのみ Amazon SNS で復号化されます。詳しくは、SSE による SNS データの保護に関する説明を参照してください。

SNS でトピックを作成する場合は、トピック作成メタデータで KmsMasterKeyId 属性を指定する必要があります。詳しくは、重要な用語を参照してください 。 例については、AWS Key Management Service API リファレンスKeyId を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf); // トピックを作成 myTopic = sns.createTopic(&quot;TopicSSE&quot;) // SSE メタデータを設定 setTopicAttribsMetadata = { &quot;attributeName&quot; = &quot;KmsMasterKeyId&quot;, &quot;attributeValue&quot; = &quot;arn:aws:kms:us-east-1:xxxxxxxx:key/xxxxxxxxxxx&quot; } // トピックに SSE 属性を設定 setTopicAttribsResponse=myTopic.setAttributes(setTopicAttribsMetadata) writeDump(setTopicAttribsResponse) </cfscript>

トピックの ARN の取得

トピックを作成したら、そのトピックの Amazon リソース名(ARN)を取得することができます。この名前は、トピックを一意に識別するためのものです。

詳しくは、Amazon リソースネーム(ARN)を参照してください。

シンタックス

getTopicArn()

<cfscript> sns = getCloudService(application.awsCred, application.snsConf); // トピックを作成 myTopic = sns.createTopic(&quot;TopicARN&quot;) myArn=myTopic.getTopicArn() writeOutput(&quot;The ARN of the topic is: &quot; & myArn) </cfscript>

トピックの削除

不要になったサブスクリプションまたはトピックを削除するには、まず、トピックからサブスクライブ解除する必要があります。

詳しくは、サブスクリプションとトピックの削除に関する説明を参照してください。

シンタックス

deleteTopic(topicArn)

パラメーター

パラメーター

説明

必須

topicArn

削除するトピックの ARN。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;DeleteTopic&quot;) // トピックの ARN を取得 topicArn = topic.getTopicArn() try{ // トピックを削除 deleteTopicResponse = sns.deleteTopic(topicArn) writeOutput(&quot;Topic deleted successfully&quot;) writeDump(deleteTopicResponse) } catch(any e){ writeDump(e) } </cfscript>

トピックリストの取得

作成されたすべてのトピックの一覧を取得します。関数を呼び出すたびに、最大 100 件のトピックのリストが返されます。さらにトピックがある場合は、NextToken も返されます。ListTopics 呼び出しで NextToken パラメーターを使用すると、残りの結果を取得できます。

詳しくは、ListTopics を参照してください。

シンタックス

listTopics(nextToken)

パラメーター

パラメーター

説明

必須

nextToken

前の ListTopics 呼び出しで返されたトークン。

文字列

いいえ

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf); // すべてのトピックをリストアップ topicObj = snsObj.listTopics(); writeDump(topicObj) // nextToken を取得 nextTokenVal = topicObj.nextToken; // nextToken を使用してすべてのトピックをリストアップ listNextTopicObj = snsObj.listTopics(nextTokenVal) writeDump(listNextTopicObj) </cfscript>

トピック属性の設定

トピックの属性に新しい値を設定します。

詳しくは、SetTopicAttributes を参照してください。

シンタックス

setTopicAttributes(topicAttributes)

パラメーター

パラメーター

説明

必須

topicAttributes

次の属性のキーと値のペアです。

  • DeliveryPolicy:HTTP/S エンドポイントへの配信に失敗した場合、SNS でどのように再試行が行われるかを定義します。
  • DisplayName:トピックの表示名。
  • Policy:トピックのアクセスポリシー。 

次の属性はサーバー側の暗号化にのみ適用されます。

  • KmsMasterKeyId:Amazon SNS またはカスタム CMK の AWS 管理の顧客マスターキー(CMK)の ID。詳しくは、重要な用語を参照してください。

構造体

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピック属性を定義 createTopicMetadata = { &quot;tags&quot; = [ {&quot;key&quot; = &quot;key1&quot;,&quot;value&quot; = &quot;value1&quot;}, {&quot;key&quot; = &quot;key2&quot;,&quot;value&quot; = &quot;value2&quot;} ], &quot;attributes&quot; = { &quot;DisplayName&quot; = &quot;This is a sample display name.&quot;} 
    } 
     
    // トピックを作成 topicObj=sns.createTopic(&quot;NewTopic&quot;,createTopicMetadata) // トピックの ARN を取得 topicArn = topicObj.getTopicArn() // 設定する属性のメタデータ setTopicAttribsMetadata = { &quot;topicArn&quot;= topicArn, &quot;attributeName&quot; = &quot;DisplayName&quot;, &quot;attributeValue&quot; = &quot;value&quot; } try{ setTopicAttrResponse = sns.setTopicAttributes(setTopicAttribsMetadata) writeOutput(&quot;Topic attributes set successfully&quot;) writeDump(setTopicAttrResponse) } catch(any e){ writeDump(e) } </cfscript>

トピック属性の取得

トピックのすべてのプロパティを取得します。 

詳しくは、GetTopicAttributes を参照してください。

シンタックス

getTopicAttributes(topicARN)

パラメーター

パラメーター

説明

必須

topicArn

取得する属性が含まれているトピックの ARN。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピック属性を定義 createTopicMetadata = { &quot;tags&quot; = [ {&quot;key&quot; = &quot;key1&quot;,&quot;value&quot; = &quot;value1&quot;}, {&quot;key&quot; = &quot;key2&quot;,&quot;value&quot; = &quot;value2&quot;} ], &quot;attributes&quot; = { &quot;DisplayName&quot; = &quot;This is a sample display name.&quot;} 
    } 
     
    // トピックを作成 topicObj=sns.createTopic(&quot;TopicAttributes&quot;,createTopicMetadata) // トピックの ARN を取得 topicArn = topicObj.getTopicArn() // 設定する属性のメタデータ setTopicAttribsMetadata = { &quot;topicArn&quot;= topicArn, &quot;attributeName&quot; = &quot;DisplayName&quot;, &quot;attributeValue&quot; = &quot;value&quot; } // トピック属性を設定 sns.setTopicAttributes(setTopicAttribsMetadata) // トピック属性を取得 getTopicAttributeResponse=sns.getTopicAttributes(topicArn) writeDump(getTopicAttributeResponse) </cfscript>

トピックへのタグ付け

Amazon SNS トピックのメタデータタグを追加、削除、リスト取得して、Amazon SNS リソースを追跡します(リソーストラッキング)。

詳しくは、Amazon SNS タグを参照してください。

シンタックス

tagTopic(topicArn,tags)

パラメーター

パラメーター

説明

必須

topicArn

タグを追加するトピックの ARN。

文字列

はい

tags

トピックに追加するタグのリスト。

構造体

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;TagTopic&quot;) // トピックの ARN を取得 topicArn= topic.getTopicArn() // タグ付けのメタデータを設定 tagTopicMetadata = { &quot;tags&quot; = [ {&quot;key&quot; = &quot;Team&quot;,&quot;value&quot; = &quot;Development&quot;}, {&quot;key&quot; = &quot;Environment&quot;,&quot;value&quot; = &quot;Production&quot;} ] } // トピックにタグ付け try{ tagTopicResponse = sns.tagTopic(topicArn,tagTopicMetadata) writeOutput(&quot;Topic has been tagged successfully&quot;) writeDump(tagTopicResponse) } catch (any e){ writeDump(e) } </cfscript>

トピックタグリストの取得

指定されたトピックのタグの一覧を取得します。

詳しくは、 ListTagsForResource を参照してください。

シンタックス

listTopicTags(topicArn)

パラメーター

パラメーター

説明

必須

topicArn

目的のタグが含まれているトピックの ARN。

文字列

はい

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;UntagTopic&quot;) // トピックの ARN を取得 topicArn=topic.getTopicArn() // タグ付けのメタデータ tagTopicMetadata = { &quot;tags&quot; = [ {&quot;key&quot; = &quot;Team&quot;,&quot;value&quot; = &quot;Development&quot;}, {&quot;key&quot; = &quot;Environment&quot;,&quot;value&quot; = &quot;Production&quot;} ] } // トピックにタグ付け sns.tagTopic(topicArn,tagTopicMetadata) // トピックのタグをリストアップ res=sns.listTopicTags(topicArn) writeOutput(&quot;The list of tags are:&quot;) writeDump(res.tags) </cfscript>

トピックのタグ付け解除

指定された Amazon SNS トピックからタグを削除します。

詳しくは、UntagResource を参照してください。

シンタックス

untagTopic(topicArn,tags)

パラメーター

パラメーター

説明

必須

topicArn

タグを削除するトピックの ARN。

文字列

はい

tags

指定されたトピックから削除するタグキーのリスト。

配列

はい

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;UntagTopic&quot;) // トピックの ARN を取得 topicArn=topic.getTopicArn() // タグ付けのメタデータ tagTopicMetadata = { &quot;tags&quot; = [ {&quot;key&quot; = &quot;Team&quot;,&quot;value&quot; = &quot;Development&quot;}, {&quot;key&quot; = &quot;Environment&quot;,&quot;value&quot; = &quot;Production&quot;} ] } // トピックにタグ付け sns.tagTopic(topicArn,tagTopicMetadata) // タグ付け解除のメタデータ untagTopicMetadata = { &quot;tagKeys&quot; = [&quot;Team&quot;] } try{ res = sns.untagTopic(topicArn,untagTopicMetadata) writeOutput(&quot;Topic untagged successfully&quot; & &quot;<br/>&quot;) writeOutput(&quot;Tags left after untagging are:&quot;) writeDump(topic.listTags().tags) } catch(any e){ writeDump(e) } </cfscript>

トピックのサブスクライブ

エンドポイントをトピックに登録し、サブスクリプションを確認すると、関連付けられたトピックに公開されたメッセージの受信をエンドポイントが開始します。トピックに公開されたメッセージを受信するには、エンドポイント(AWS Lambda、Amazon SQS、HTTP/S、メールアドレスなど)をトピックに登録する必要があります。エンドポイントをトピックに登録し、サブスクリプションを確認すると、関連付けられたトピックに公開されたメッセージの受信をエンドポイントが開始します。

詳しくは、トピックにエンドポイントをサブスクライブするを参照してください。

シンタックス

subscribe(subscription)

パラメーター

パラメーター

説明

必須

subscription

属性マップ

次の属性のキーと値のペアです。

  • DeliveryPolicy:HTTP/S エンドポイントへの配信に失敗した場合、SNS でどのように再試行がおこなわれるかを定義します。
  • FilterPolicy:サブスクリプションで受け取るメッセージを定義する JSON オブジェクト。
  • RawMessageDelivery:TRUE の場合、サブスクライバーは、書式設定をせずにメッセージの未処理のバージョンのみを取得します。 
  • RedrivePolicy:指定された場合、配信不能メッセージが、指定の Amazon SQS 配信不能メッセージキューに送信されます。

エンドポイント

次のエンドポイントがサポートされています。

  • http/https
  • email
  • email-json
  • sms
  • sqs
  • application
  • lambda

プロトコル

次のプロトコルがサポートされています。

  • http/https
  • email
  • email-json
  • sms
  • sqs
  • application
  • lambda

ReturnSubscriptionArn:TRUE の場合は、サブスクリプションリクエストのサブスクリプション ARN を返します。

TopicARN:サブスクライブするトピックの ARN。

 

構造体

はい

詳しくは、リクエストパラメーターの説明を参照してください。

例 1

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) topic = sns.createTopic(&quot;SMSSubscription&quot;); subscribeMetadata = { &quot;topicArn&quot; = topic.getTopicArn(), &quot;endpoint&quot; = &quot;<your phone number>&quot;, &quot;protocol&quot; = &quot;sms&quot; } try{ subscription= topic.subscribe(subscribeMetadata) writeOutput(&quot;Subscribed to the topic successfully&quot;) writeDump(subscription) } catch (any e){ writeDump(e) } </cfscript>

例 2

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) topic = sns.createTopic(&quot;EmailSubscription&quot;); subscribeMetadata = { &quot;topicArn&quot; = topic.getTopicArn(), &quot;endpoint&quot; = &quot;johndoe@email.com&quot;, &quot;protocol&quot; = &quot;email&quot; } try{ subscription= topic.subscribe(subscribeMetadata) writeOutput(&quot;Subscribed to the topic successfully&quot;) writeDump(subscription) } catch (any e){ writeDump(e) } </cfscript>

例 3

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) topic = sns.createTopic(&quot;EmailSubscription&quot;); subscribeMetadata = { &quot;topicArn&quot; = topic.getTopicArn(), &quot;endpoint&quot; = &quot;https://coldfusion.adobe.com/&quot;, &quot;protocol&quot; = &quot;https&quot; } try{ subscription= topic.subscribe(subscribeMetadata) writeOutput(&quot;Subscribed to the topic successfully&quot;) writeDump(subscription) } catch (any e){ writeDump(e) } </cfscript>

サブスクリプションの確認

この関数を使用すると、以前のサブスクライブアクションでエンドポイントに送信されたトークンを検証することで、エンドポイントの所有者がメッセージを受信できるかどうかを確認できます。トークンが有効であれば、このアクションは新しいサブスクリプションを作成し、その Amazon リソース名(ARN)を返します。

詳しくは、ConfirmSubscription を参照してください。

シンタックス

confirmSubscription(topicArn,subscription)

パラメーター

パラメーター

説明

必須

AuthenticateOnUnsubscribe

サブスクリプションの解除に認証が必要かどうかを指定します。

文字列

いいえ

トークン

エンドポイントに送信されるトークン。

文字列

はい

TopicArn

サブスクリプションの確認対象となるトピックの ARN。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) topicObj = snsObj.createTopic(&quot;confirmSubscription&quot;); topicARN = topicObj.getTopicArn(); subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;john@example.com&quot;, &quot;protocol&quot; = &quot;email&quot; } // E メールからトークン値を手動でフェッチ tokenVal = &quot;token value&quot;; metadata = { &quot;token&quot; = tokenVal } try{ confirmationObj = snsObj.confirmSubscription(topicARN,metadata) writeOutput(&quot;Subscription confirmed successfully&quot;) writeoutput(confirmationObj.subscriptionArn) } catch(any e){ writeDump(e) } </cfscript>

トピックからのサブスクリプション解除

サブスクリプションを削除します。トピックのサブスクリプションを解除できるのは、サブスクリプションの所有者またはトピックの所有者だけです。

詳しくは、Unsubscribe を参照してください。

シンタックス

unsubscribe(subscriptionArn)

パラメーター

パラメーター

説明

必須

subscriptionArn

削除するサブスクリプションの ARN。

文字列

はい

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;UnsubTopic&quot;) // サブスクリプションのメタデータ subscribeMetadata = { &quot;topicArn&quot; = topic.getTopicArn(), &quot;endpoint&quot; = &quot;johndoe@email.com&quot;, &quot;protocol&quot; = &quot;email&quot; } // トピックをサブスクライブ subscription = topic.subscribe(subscribeMetadata) // サブスクリプションの ARN を取得 //subscriptionArn = subscription.getSubscriptionArn() // サブスクリプションの ARN はサブスクリプションの確認後に取得 subscriptionArn=&quot;arn:aws:sns:us-east-1:534385124010:UnsubTopic:6b35449d-90e7-4e63-aaf6-990da9cd1a51&quot; try{ unsubResponse= sns.unsubscribe(subscriptionArn) writeOutput(&quot;Unsubscribed from topic successfully&quot;) writeDump(unsubResponse) } catch(any e){ writeDump(e) } </cfscript>

トピック別のサブスクリプションリストの取得

特定のトピックのサブスクリプションのリストを返します。

詳しくは、ListSubscriptionsByTopic を参照してください。

シンタックス

listTopicSubscriptions(topicArn) listTopicSubscriptions(String topicArn, String nextToken)

パラメーター

パラメーター

説明

必須

topicArn

サブスクリプションを解除するトピックの ARN。

文字列

はい

nextToken

前の 呼び出しで返されたトークン。

文字列

いいえ

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;EmailSubscription&quot;) // トピックの ARN を取得 topicARN = topic.getTopicArn() // サブスクリプションのメタデータを設定 subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;john@example.com&quot;, &quot;protocol&quot; = &quot;email&quot; } // トピックをサブスクライブ subscription= topic.subscribe(subscribeMetadata) // サブスクリプションを取得 resp=sns.listTopicSubscriptions(topicARN) writeOutput(&quot;List of subscriptions:&quot;) writeDump(resp.subscriptions) </cfscript>

サブスクリプションリストの取得

リクエスターのサブスクリプションのリストを表示します。関数を呼び出すたびに、100 件のサブスクリプションのリストが返されます。

詳しくは、ListSubscriptions を参照してください。

シンタックス

listSubscriptions(nextToken)

パラメーター

パラメーター

説明

必須

nextToken

前の ListSubscriptions 呼び出しで返されたトークン。

文字列

いいえ

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topicObj = snsObj.createTopic(&quot;ListSubs&quot;) // トピックの ARN を取得 topicARN = topicObj.getTopicArn() // サブスクリプションのメタデータを設定 subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = application.emailId, &quot;protocol&quot; = &quot;email&quot; } // トピックをサブスクライブ topicObj.subscribe(subscribeMetadata) // nextToken パラメーターを使用せずにサブスクリプションをリストアップ subsObj = snsObj.listSubscriptions() // nextToken を取得 nextToken=subsObj.nextToken // nextToken パラメーターを使用してサブスクリプションをリストアップ ntObj=snsObj.listSubscriptions(nextToken) writeDump(ntObj) </cfscript>

サブスクリプション属性の設定

サブスクリプションの属性に新しい値を設定します。

詳しくは、SetSubscriptionAttributes を参照してください。

シンタックス

setSubscriptionAttributes(subscriptionAttributes)

パラメーター

パラメーター

説明

必須

subscriptionAttributes

  • DeliveryPolicy:HTTP/S エンドポイントへの配信に失敗した場合、SNS でどのように再試行が行われるかを定義します。
  • FilterPolicy:サブスクリプションで受け取るメッセージを定義する JSON オブジェクト。
  • RawMessageDelivery:TRUE の場合、サブスクライバーは、書式設定をせずにメッセージの未処理のバージョンのみを取得します。 
  • RedrivePolicy:指定された場合、配信不能メッセージが、指定の Amazon SQS 配信不能メッセージキューに送信されます。

構造体

はい

attributeValue

属性の新しい値(JSON 形式)。

文字列

いいえ

subscriptionArn

変更するサブスクリプションの ARN。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) topic = sns.createTopic(&quot;SubscriptionAttrib&quot;) // トピックの ARN を取得 topicARN = topic.getTopicArn() // サブスクリプションのメタデータを設定 subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;john@email.com&quot;, &quot;protocol&quot; = &quot;email&quot; } // トピックをサブスクライブ subscription= topic.subscribe(subscribeMetadata) // サブスクリプションの ARN を取得 // subsARN = subscription.getSubscriptionArn() // サブスクリプションの ARN はサブスクリプションの確認後に取得 subsARN=&quot;arn:aws:sns:us-east-1:534385124010:SubscriptionAttrib:735e692e-b085-48a6-ac01-42a1211bf86d&quot; // フィルターポリシーを設定 filterPolicy = { &quot;OrderType&quot; = [&quot;Retail&quot;] } // サブスクリプション属性のメタデータを設定 setSubscribeMetadata = { &quot;attributeName&quot; = &quot;FilterPolicy&quot;, &quot;attributeValue&quot; = serializeJson(filterPolicy), &quot;subscriptionArn&quot;=subsARN } try{ setSubsObj = sns.setSubscriptionAttributes(setSubscribeMetadata) writeOutput(&quot;Attributes have been set successfully&quot;) writeDump(setSubsObj) } catch(any e){ writeDump(e) } </cfscript>

サブスクリプション属性の取得

サブスクリプションのプロパティを取得します。

詳しくは、GetSubscriptionAttributes を参照してください。

シンタックス

getSubscriptionAttributes(subscriptionArn)

パラメーター

パラメーター

説明

必須

subscriptionArn

戻り値を取得するプロパティを含んでいるサブスクリプションの ARN。

文字列

はい

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) topic = sns.createTopic(&quot;GetSubscriptionAttrib&quot;) // トピックの ARN を取得 topicARN = topic.getTopicArn() // サブスクリプションのメタデータを設定 subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;john@example.com&quot;, &quot;protocol&quot; = &quot;email&quot; } // トピックをサブスクライブ subscription= topic.subscribe(subscribeMetadata) // サブスクリプションの ARN を取得 // subsARN = subscription.getSubscriptionArn() // サブスクリプションの ARN はサブスクリプションの確認後に取得 subsARN=&quot;arn:aws:sns:us-east-1:534385124010:GetSubscriptionAttrib:482d04e0-f5d6-4f4e-b6f9-9f721212a5c4&quot; // フィルターポリシーを設定 filterPolicy = { &quot;OrderType&quot; = [&quot;Retail&quot;] } // サブスクリプション属性のメタデータを設定 setSubscribeMetadata = { &quot;attributeName&quot; = &quot;FilterPolicy&quot;, &quot;attributeValue&quot; = serializeJson(filterPolicy), &quot;subscriptionArn&quot;=subsARN } // サブスクリプション属性を設定 sns.setSubscriptionAttributes(setSubscribeMetadata) // サブスクリプション属性を取得 getSubsObj = sns.getSubscriptionAttributes(subsARN) writeOutput(&quot;The attributes are:&quot;) writeDump(getSubsObj.attributes) </cfscript>

トピックへのメッセージの公開

メッセージが公開されると、Amazon SNS は、トピックをサブスクライブしているすべてのエンドポイント(AWS Lambda、Amazon SQS、HTTP/S、メールアドレスなど)へのメッセージの配信を試みます。

詳しくは、トピックにメッセージを発行するを参照してください。

シンタックス

publish(Struct message)

パラメーター

パラメーター

説明

必須

message

送信するメッセージ。

SMS メッセージ

JSON メッセージ

文字列

はい

messageAttributes

公開アクションのメッセージ属性です。詳しくは、MessageAttributeValue を参照してください。

構造体

いいえ

messageStructure

プロトコルごとに異なるメッセージを送信する場合は、MessageStructure を json に設定します。有効な値は json です。

文字列

いいえ

phoneNumber

SMS メッセージの配信先の電話番号。

文字列

いいえ

subject

メッセージの件名。

文字列

いいえ

topicArn

公開先のトピック。

文字列

いいえ

詳しくは、リクエストパラメーターの説明を参照してください。

例 1

student.json

{ 
    &quot;student&quot;: [ { &quot;id&quot;:&quot;01&quot;, &quot;name&quot;: &quot;Tom&quot;, &quot;lastname&quot;: &quot;Price&quot; }, { &quot;id&quot;:&quot;02&quot;, &quot;name&quot;: &quot;Nick&quot;, &quot;lastname&quot;: &quot;Thameson&quot; } ], &quot;default&quot; : &quot;sample default JSON message&quot; 
}

publish.cfm

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;PubMessageJSON&quot;) // トピックの ARN を取得 topicARN = topic.getTopicArn() subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;john@example.com&quot;, &quot;protocol&quot; = &quot;email&quot; } subscriptionObj = topic.subscribe(subscribeMetadata); studentFile = fileRead(expandPath('student.json')); // &quot;messageStructure&quot; = &quot;json&quot; が定義されている場合は、デフォルトメッセージのみ公開される publishMetadata = { &quot;messageBody&quot; = studentFile, &quot;messageStructure&quot; = &quot;json&quot; } try{ publishResponse = topic.publish(publishMetadata) writeOutput(&quot;Message published successfully&quot;) writeDump(publishResponse) } catch(any e){ writeOutput(&quot;Failed to publish message&quot;) writeDump(e) } </cfscript>

例 2

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;PubMessageSMS&quot;) // トピックの ARN を取得 topicARN = topic.getTopicArn() subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;<your phone number>&quot;, &quot;protocol&quot; = &quot;sms&quot; } subscriptionObj = topic.subscribe(subscribeMetadata); studentFile = fileRead(expandPath('student.json')); // &quot;messageStructure&quot; = &quot;json&quot; が定義されている場合は、デフォルトメッセージのみ公開される publishMetadata = { &quot;messageBody&quot; = studentFile, &quot;messageStructure&quot; = &quot;json&quot; } try{ publishResponse = topic.publish(publishMetadata) writeOutput(&quot;Message published successfully&quot;) writeDump(publishResponse) } catch(any e){ writeOutput(&quot;Failed to publish message&quot;) writeDump(e) } </cfscript>

例 3

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // トピックを作成 topic = sns.createTopic(&quot;PubMessageEmail&quot;) // トピックの ARN を取得 topicARN = topic.getTopicArn() // サブスクリプションのメタデータを設定 subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = &quot;john@email.com&quot;, &quot;protocol&quot; = &quot;email&quot; } subscriptionObj = topic.subscribe(subscribeMetadata) // 公開のメタデータ publishMetadata = { &quot;messageBody&quot; = &quot;Publish Email message from John&quot;, &quot;messageStructure&quot; = &quot;String&quot;, &quot;Subject&quot;= &quot;Subscription Notification&quot; } try{ publishResponse = topic.publish(publishMetadata) writeOutput(&quot;Message published sucessfully&quot;) writeDump(publishResponse) } catch(any e){ writeOutput(&quot;Failed to publish message&quot;) writeDump(e) } </cfscript>

SMS 属性の設定

SMS メッセージを送信し、毎日の SMS 使用状況レポートを受信するためのデフォルト設定を行います。

詳しくは、SetSMSAttributes を参照してください。

シンタックス

setSMSAttributes(smsAttributes)

パラメーター

パラメーター

説明

必須

smsAttributes

次の属性のキーと値のペアです。

  • MonthlySpendLimit:SMS メッセージの毎月の送信費用の上限。
  • DeliveryStatusIAMRole:Amazon SNS で SMS 配信ログを作成するための、IAM の役割の ARN が使用されます。
  • DeliveryStatusSuccessSamplingRate:Amazon SNS によるログ記録の対象となる正常な SMS 配信の割合(パーセント)。
  • DefaultSenderID:受信デバイス上の送信者。
  • DefaultSMSType:デフォルトで送信される SMS メッセージのタイプ。サポートされている値は次のとおりです。
    • Promotional(プロモーション)
    • Transactional(トランザクション)
  • UsageReportS3Bucket:Amazon SNS から毎日送信される SMS 使用状況レポートを受信する Amazon S3 バケットの名前。レポートは CSV で、次のフィールドを含んでいます。
    • メッセージが公開された時刻(UTC)
    • メッセージ ID
    • 宛先電話番号
    • メッセージタイプ
    • 配信ステータス
    • メッセージ価格(USD)
    • パーツ番号

構造体

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) smsAttributes ={ &quot; attributes&quot;:{ &quot;DeliveryStatusIAMRole&quot;:&quot;&quot;, &quot;DeliveryStatusSuccessSamplingRate&quot;:&quot;&quot;, &quot;DefaultSenderID&quot;:&quot;&quot;, &quot;DefaultSMSType&quot;:&quot;Transactional&quot;, &quot;UsageReportS3Bucket&quot;:&quot;&quot;, &quot;MonthlySpendLimit&quot;:2 } } res =sns.setSMSAttributes(smsAttributes) writeDump(res) </cfscript>

SMS 属性の取得

アカウントから SMS メッセージを送信するための設定(前のセクションで定義したもの)を取得します。

詳しくは、GetSMSAttributes を参照してください。

シンタックス

getSMSAttributes(attribute)

パラメーター

パラメーター

説明

必須

属性の値です

setSMSAttributes に設定した属性のうち、値の取得対象となるもの。

文字列配列

いいえ

<cfscript> sns = getCloudService(application.awsCred, application.snsConf) // SMS 属性を取得 response=sns.getSMSAttributes() writeDump(response) writeoutput(response.attributes.DefaultSMSType) </cfscript>  

権限の追加

この関数は、トピックのアクセス制御ポリシーに権限を追加して、指定の AWS アカウントに指定のアクションへのアクセスを許可します。

詳しくは、AddPermission を参照してください。

シンタックス

addPermission(String topicArn, Struct permission)

パラメーター

パラメーター

説明

必須

label

ポリシーの一意の ID。

文字列

はい

actions

ユーザーが実行できるアクション。

文字列配列

はい

awsaccountIds

指定の操作へのアクセスを許可されるユーザーの AWS アカウント ID。

文字列配列

はい

topicArn

アクセス制御ポリシーを変更するトピックの ARN。

文字列

はい

<cfscript> snsObj = cloudService(application.awsCred, application.snsConf) // トピックを作成 topicObj = snsObj.createTopic(&quot;AddPermission&quot;) // 権限追加の構造体 addPermissionAttribute = { &quot;label&quot; : &quot;NewPermission&quot;, &quot;actions&quot;: [&quot;Publish&quot;], &quot;awsaccountIds&quot;: [&quot;xxxxxxxxxxxx&quot;] }; res = snsObj.addPermission(topicArn,addPermissionAttribute) writeDump(res) writeoutput(res.sdkHttpResponse.statusCode) </cfscript>

権限の削除

この関数はポリシーから権限を削除します。

詳しくは、RemovePermission を参照してください。

シンタックス

removePermission(String topicArn, String permissionLabel)

パラメーター

パラメーター

説明

必須

permissionLabel

削除するステートメントの一意の ID。

文字列

はい

topicArn

アクセス制御ポリシーを削除するトピックの ARN。

文字列

はい

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) // トピックの ARN topicArn=&quot;arn:aws:sns:us-east-1:xxxxxxxxxxx:AddPermission&quot; label = &quot;NewPermission&quot; try{ res = snsObj.removePermission(topicArn,label) writeOutput(&quot;Permission removed successfully&quot;) writeDump(res) } catch(any e){ writeDump(e) } </cfscript>

プラットフォームアプリケーションの作成

この関数を使用すると、Firebase Cloud Messaging などのプッシュ通知サービス用のアプリケーションを作成できます。CreatePlatformApplication アクションを使用する際は、PlatformPrincipal 属性と PlatformCredential 属性を指定する必要があります。

詳しくは、CreatePlatformApplication を参照してください。

シンタックス

createPlatformApplication(Struct platformApplication)

パラメーター

パラメーター

説明

必須

attributes

次のキーを含んだ構造体。

  • PlatformCredential
  • PlatformPrincipal
  • EventEndpointCreated
  • EventEndpointDeleted
  • EventEndpointUpdated
  • EventDeliveryFailure
  • SuccessFeedbackRoleArn
  • SuccessFeedbackSampleRate

詳しくは、SetPlatformApplicationAttribute を参照してください。

構造体

はい

name

アプリケーションの名前。

文字列

はい

platform

サポートされているプラットフォームは次のとおりです。

  • ADM(Amazon Device Messaging)
  • APNS(Apple Push Notification Service)
  • APNS_SANDBOX
  • GCM(Firebase Cloud Messaging)

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) platformMetadata ={ &quot;attributes&quot; : { &quot;PlatformCredential&quot;: application.GCMServerKey, &quot;PlatformPrincipal&quot;:&quot;&quot; }, &quot;name&quot; : &quot;CFgcmpushapp&quot;, &quot;platform&quot; : &quot;GCM&quot; } resp = snsObj.createPlatformApplication(platformMetadata); writeDump(resp) writeoutput(resp.platformApplicationArn) </cfscript>

プラットフォームアプリケーションの削除

サポートされているいずれかのプッシュ通知サービス(APNS や GCM など)のプラットフォームアプリケーションオブジェクトを削除します。

詳しくは、Amazon SNS モバイルプッシュ通知の使用に関する説明を参照してください。

シンタックス

deletePlatformApplication(platformApplicationArn)

パラメーター

パラメーター

説明

必須

PlatformApplicationArn

削除するプラットフォームアプリケーションオブジェクトの PlatformApplicationArn。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) // プラットフォームアプリケーションを作成 platformMetadata ={ &quot;attributes&quot; : { &quot;PlatformCredential&quot;: application.GCMServerKey, &quot;PlatformPrincipal&quot;:&quot;&quot; }, &quot;name&quot; : &quot;PushAppForCF&quot;, &quot;platform&quot; : &quot;GCM&quot; } resp = snsObj.createPlatformApplication(platformMetadata) // プラットフォームの ARN を取得 platformArn=resp.platformApplicationArn // プラットフォームアプリケーションを削除 try{ deletePltAppRes = snsObj.deletePlatformApplication(platformArn) writeOutput(&quot;Platform application deleted successfully&quot;) writeDump(deletePltAppRes) } catch(any e){ writeDump(e) } </cfscript>

プラットフォームエンドポイントの作成

GCM(Firebase Cloud Messaging)や APNS などのプッシュ通知サービス上にデバイスやモバイルアプリのエンドポイントを作成します。この関数を使用するには、CreatePlatformApplication 呼び出しから返される PlatformApplicationArn が必要です。この ARN を使用して、デバイスやアプリにメッセージを送信したり、トピックをサブスクライブしたりすることができます。同じデバイストークンおよび属性を持つエンドポイントをリクエスターが既に所有している場合は、エンドポイントを作成せずに ARN が返されます。 

詳しくは、Amazon SNS モバイルプッシュ通知の使用に関する説明を参照してください。

シンタックス

createPlatformEndpoint(Struct platformEndpoint)

パラメーター

パラメーター

説明

必須

attributes

次の属性のキーと値のペアです。

  • CustomUserData:エンドポイントに関連付けられているユーザーデータ。
  • Enabled:エンドポイントへの配信を有効または無効にするフラグ。
  • Token:デバイストークン。

詳しくは、SetEndpointAttributes を参照してください。

構造体

はい

PlatformApplicationArn

CreatePlatformApplication 呼び出しから取得されたプラットフォームアプリケーション ARN。

文字列

はい

トークン

デバイス上のアプリの通知サービスで作成された一意の識別子。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) // プラットフォームエンドポイント構造体 platformMetadata ={ &quot;PlatformApplicationArn&quot; : application.PlatformApplicationArn, &quot;Token&quot; : application.FCMToken } createResp = snsObj.createPlatformEndpoint(platformMetadata) writeDump(createResp) </cfscript>

エンドポイントの削除

デバイスやモバイルアプリのエンドポイントを Amazon SNS から削除します。トピックを購読するエンドポイントを削除する場合は、トピックからエンドポイントを削除することもできます。

詳しくは、Amazon SNS モバイルプッシュ通知の使用に関する説明を参照してください。

詳しくは、DeleteEndpoint の公式ドキュメントを参照してください。

シンタックス

deleteEndpoint(endpointArn)

パラメーター

パラメーター

説明

必須

endpointArn

削除するエンドポイントの EndpointArn。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf) // プラットフォームエンドポイント構造体 platformMetadata ={ &quot;PlatformApplicationArn&quot; : application.PlatformApplicationArn, &quot;Token&quot; : application.FCMToken } createResp = snsObj.createPlatformEndpoint(platformMetadata) // エンドポイントの ARN を取得 endpointArn = createResp.endpointArn; try{ deleteResp= snsObj.deleteEndpoint(endpointArn) writeOutput(&quot;Endpoint deleted successfully&quot;) writeDump(deleteResp) } catch(any e){ writeDump(e) } </cfscript>

エンドポイント属性の取得

GCM(Firebase Cloud Messaging)や APNS などのプッシュ通知サービス上にあるデバイスのエンドポイントの属性を取得します。

詳しくは、GetEndpointAttributes を参照してください。

シンタックス

getEndpointAttributes(endpointArn)

パラメーター

パラメーター

説明

必須

endpointArn

属性の取得対象となるエンドポイント ARN。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf); platformMetadata ={ &quot;PlatformApplicationArn&quot; : application.PlatformApplicationArn, &quot;Token&quot; : application.FCMToken } createResp = snsObj.createPlatformEndpoint(platformMetadata); endpointArn = createResp.endpointArn; getResp = snsObj.getEndpointAttributes(endpointArn); //writedump(getResp); writeoutput(getResp.attributes.Enabled); </cfscript>

電話番号のオプトイン

この関数を使用すると、SMS メッセージの送信先の電話番号を選択できます。

詳しくは、OptInPhoneNumber を参照してください。

シンタックス

optInPhoneNumber(phoneNumber)

パラメーター

パラメーター

説明

必須

phoneNumber

オプトインする電話番号。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf); optInResp = snsObj.optInPhoneNumber(application.phoneNum); writeoutput(optInResp.sdkHttpResponse.statusCode); </cfscript>

オプトアウトした電話番号のリストの取得

SMS メッセージを送信できなくなった電話番号のリストを取得します。結果は改ページ調整され、各ページでは最大で100の電話番号が返されます。 結果の 2 ページ目以降にも電話番号がある場合は、NextToken 文字列が返されます。

詳しくは、ListPhoneNumbersOptedOut を参照してください。

シンタックス

listPhoneNumbersOptedOut(nextToken)

パラメーター

パラメーター

説明

必須

nextToken

この関数を呼び出して結果の 2 ページ目以降にある電話番号のリストを取得する場合に使用する文字列。

文字列

はい

詳しくは、ListPhoneNumbersOptedOut を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf); phoneNumOptedOut = snsObj.listPhoneNumbersOptedOut(); writeoutput(phoneNumOptedOut.sdkHttpResponse.statusCode); </cfscript>

電話番号がオプトアウトされているかどうかの確認

所有者がメッセージの受信をオプトアウトしたので、アカウントからの SMS メッセージを電話で受信できるかどうかを確認します。

メッセージの送信を再開するには、OptInPhoneNumber メソッドを使用して電話番号をオプトインします。

詳しくは、CheckIfPhoneNumberIsOptedOu を参照してください。

シンタックス

checkIfPhoneNumberIsOptedOut(phoneNumber)

パラメーター

パラメーター

説明

必須

phoneNumber

オプトアウトステータスを確認する電話番号。

文字列

はい

詳しくは、リクエストパラメーターの説明を参照してください。

<cfscript> snsObj = getCloudService(application.awsCred, application.snsConf); topicObj = snsObj.createTopic(&quot;checkIfPhoneNumberIsOptedOut&quot;); topicARN = topicObj.getTopicArn(); subscribeMetadata = { &quot;topicArn&quot; = topicARN, &quot;endpoint&quot; = application.phoneNum, &quot;protocol&quot; = &quot;sms&quot; }; subsResp = topicObj.subscribe(subscribeMetadata); phoneNumOptedOut = snsObj.checkIfPhoneNumberIsOptedOut(application.phoneNum); writeoutput(phoneNumOptedOut.isOptedOut); </cfscript>

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト