トピックおよびサブスクリプションの管理

この項では、トピック とそのサブスクリプション を管理する方法について説明します。

トピックは、サブスクリプションにメッセージ を送信するための通信チャネルです。トピックには、トピックにメッセージが公開されるたびに通知される、0、1または複数のサブスクリプションを指定できます。

前提条件

IAM policies: To use Notifications, you must be given the required type of access in a policy  written by an administrator, whether you're using the Console or the REST API with an SDK, CLI, or other tool. For Functions, you must have FN_INVOKE permission against the function to be able to add the function as a subscription to a topic. To authorize your function for access to other Oracle Cloud Infrastructure resources, such as compute instances, include the function in a dynamic group  and create a policy to grant the dynamic group access to those resources. For more information, see Accessing Other Oracle Cloud Infrastructure Resources from Running Functions.

権限がない、または認可されていないというレスポンスが表示された場合は、管理者に確認してください。現在のコンパートメント に必要なアクセス・タイプがない可能性があります。ユーザーの承認の詳細は、Authentication and Authorizationを参照してください。

ファンクションイベントを使用した自動化の作成

メッセージをファンクション・サブスクリプションに公開することで、自動化を作成できます。ファンクション・サブスクリプションの例は、シナリオA: VMの自動サイズ変更を参照してください。

また、イベント・タイプ、ルールおよびアクションを使用して、トピックおよびサブスクリプション(通知リソース)の状態変化に基づいて自動化を作成することもできます。詳細は、イベントの概要を参照してください。

コンソールの使用

トピックを作成するには
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. トピック・リストの上部にある「トピックの作成」をクリックします。
  3. 「トピックの作成」ダイアログ・ボックスで、トピックを構成します。

    • 名前: 必須。トピックにわかりやすい名前を指定します。テナンシ間で一意にする必要があります。検証では大/小文字が区別されます。機密情報の入力は避けてください。
    • 説明: オプション。トピックの説明を入力します。機密情報の入力は避けてください。
  4. 「作成」をクリックします。
トピックを削除するには
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 削除するトピックに対して、「アクション」アイコン(3つのドット)をクリックし、「削除」をクリックします。
  3. プロンプトが表示されたら確認します。
トピックの説明を更新するには
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 更新するトピックの名前をクリックします。
  3. トピックの詳細ページで、「説明」の横にある編集アイコンをクリックします。
  4. 説明を編集します。
  5. 「保存」アイコンをクリックします。
トピックを別のコンパートメントに移動するには

関連付けられているサブスクリプションは現在のコンパートメントに残ります。詳細は、「別のコンパートメントへのトピックおよびサブスクリプションの移動」を参照してください。

ノート

リソースをコンパートメント間で移動するには、リソースの移動先のコンパートメントと現在のコンパートメントに対する十分なアクセス権限がリソース・ユーザーに必要です。通知リソースの権限の詳細は、通知サービスの詳細に関する項を参照してください。
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 「スコープ」セクションで、コンパートメントを選択します。
  3. リストでトピックを検索し、「アクション」アイコン(3つのドット)をクリックし、「リソースの移動」をクリックします。
  4. リストから宛先コンパートメントを選択します。
  5. 「リソースの移動」をクリックします。
サブスクリプションを作成するには
ノート

新規サブスクリプションはトピックと同じコンパートメントに作成する必要がありますが、作成後に別のコンパートメントに移動できます。
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. サブスクリプションを追加するトピックの名前をクリックします。
  3. トピックの詳細ページで、「サブスクリプションの作成」をクリックします。
  4. 「サブスクリプションの作成」ダイアログ・ボックスで、目的のプロトコルのサブスクリプションを構成します:

    電子メール・サブスクリプション
    サブスクリプションの親トピック メッセージ を公開する場合に電子メール・メッセージを送信します。
    メッセージの内容と外観は、メッセージ・タイプによって異なります。アラームメッセージイベントメッセージおよびサービスコネクタメッセージを参照してください。
    一部のメッセージ・タイプでは、わかりやすい書式設定が可能です。
    • プロトコル: 「電子メール」を選択します。
    • 電子メール: 電子メール・アドレスを入力します。
    ファンクション・サブスクリプション
    サブスクリプションの親トピックメッセージを公開する場合に指定したファンクションを実行します。たとえば、関連するアラームがトリガーされたときに、ファンクションを実行してVMをサイズ変更します。
    ノート

    ファンクションをトピックのサブスクリプションとして追加するには、そのファンクションに対してFN_INVOCATION権限を持っている必要があります。

    通知サービスには、ファンクションが呼び出された後にそのファンクションに関する情報はありません。詳細は、ファンクションが呼出しまたは実行されない場合のトラブルシューティング情報を参照してください。

    ファンクション・サブスクリプションの確認は必要ありません。

    • サブスクリプション・プロトコル:「ファンクション」を選択します。
    • ファンクション・コンパートメント: ファンクションを含むコンパートメントを選択します。
    • ファンクション・アプリケーション: ファンクションを含むアプリケーションを選択します。
    • ファンクション: ファンクションを選択します。
    HTTPS (カスタムURL)サブスクリプション

    サブスクリプションの親トピック メッセージ を公開する場合に指定した情報を送信します。

    エンドポイント・フォーマット(HTTPSプロトコルを使用するURL): 

    https://<anyvalidURL>

    認証: Basic Access Authenticationのみがサポートされています。詳細は、RFC-2617を参照してください。 URLには、https://user:password@domain.comまたはhttps://user@domain.comのように、ユーザー名とパスワードを指定できます。

    証明書:信頼できる認証局(CA)証明書のみです。自己署名証明書は許可されていません。

    暗号化: 任意のサブスクリプション・プロトコルと同様に、エンドポイントのデータ(URLで指定されている場合はユーザー名とパスワードを含む)は、HTTPSの使用時に確立されたSSL接続を介して転送され、サービス・データベースに保存されます。

    POSTコール:指定するエンドポイントは、POSTコールを受け入れる必要があります。通知サービスでは、POSTコールを使用して、HTTPS (カスタムURL)エンドポイントにメッセージを送信します。

    サポートされていません: 問合せパラメータがURLで許可されていません。 カスタムHTTPヘッダー・パラメータはサポートされていません。URLエンドポイントにメッセージを送信すると、Notificationsサービスは標準メタデータをヘッダー内のHTTPリクエストに追加します

    • プロトコル: 「HTTPS (カスタムURL)」を選択します。
    • URL: エンドポイントとして使用するURLを入力(またはコピーして貼付け)します。
    PagerDutyサブスクリプション
    サブスクリプションの親トピック メッセージ を公開する場合にデフォルトでPagerDutyインシデントを作成します。

    エンドポイント・フォーマット(URL):

    https://events.pagerduty.com/integration/<integrationkey>/enqueue
    問合せパラメータはURLでは使用できません。

    PagerDutyサブスクリプション用のエンドポイントを作成する(統合キーを設定および取得する)には、PagerDutyのドキュメントを参照してください。

    • プロトコル: 「PagerDuty」を選択します。
    • URL: PagerDutyサブスクリプションのURLの統合キー部分を入力(またはコピーして貼付け)します。(URLの他の部分はハードコードされています。)
    Slackサブスクリプション

    サブスクリプションの親トピック メッセージ を公開する場合に、デフォルトで指定のSlackチャネルにメッセージを送信します。
    メッセージの内容と外観は、メッセージ・タイプによって異なります。アラームメッセージイベントメッセージおよびサービスコネクタメッセージを参照してください。
    サブスクリプションの親トピック メッセージ を公開する場合に、デフォルトで指定のSlackチャネルにメッセージを送信します。

    エンドポイント・フォーマット(URL):

    https://hooks.slack.com/services/<webhook-token>

    URLの<webhook-token>の部分にスラッシュ(/)が2つあります。

    問合せパラメータはURLでは使用できません。

    Slackサブスクリプションのエンドポイントを作成するには(SlackチャネルのWebフックを使用)、Slackのドキュメントを参照してください。

    • プロトコル: 「Slack」を選択します。
    • URL: Webフック・トークンを含めて、Slackエンドポイントを入力(またはコピーして貼付け)します。
    SMSサブスクリプション
    サブスクリプションの親トピックにメッセージを発行するときに、ショート・メッセージ・サービス(SMS)を使用して、指定した電話番号にテキスト・メッセージを送信します  サポートされているエンドポイント形式: E.164形式
    ノート

    SMSメッセージが別の国の電話番号から送信される場合は、国際SMS機能が必要です。より多くの国のサポートを継続的に追加して、より多くのユーザーが地域の電話番号からSMSメッセージを受信できるようにします。

    SMSサブスクリプションは、Oracle Cloud Infrastructureサービス(監視サービス・コネクタ・ハブ)によって送信されたメッセージに対してのみ有効になります。サポートされていないサービスによって送信されたSMSメッセージは削除されます。ドロップされたメッセージをトラブルシューティングします。

    通知サービスは、事前構成された番号のプールからSMSメッセージを配信します。複数の番号からSMSメッセージを受信する場合があります。

    メッセージの内容と外観は、メッセージ・タイプによって異なります。アラームメッセージイベントメッセージおよびサービスコネクタメッセージを参照してください。
    使用可能な国とリージョン

    通知を使用して、SMSメッセージを次の国および地域に送信できます。

    国または地域 ISOコード
    オーストラリア AU
    ブラジル BR
    カナダ CA
    チリ CL
    中国 CN
    コスタリカ 貸方
    クロアチア 時間
    チェコ CZ
    フランス FR
    ドイツ DE
    ハンガリー HU
    インド 含まれる
    英国 IE
    イスラエル IL
    日本 JP
    リトアニア 長期
    メキシコ MX
    オランダ NL
    ニュージーランド NZ
    ノルウェー いいえ
    フィリピン PH
    ポーランド PL
    ポルトガル PT
    ルーマニア RO
    サウジアラビア
    シンガポール SG
    南アフリカ ZA
    韓国 KR
    スペイン ES
    スウェーデン SE
    スイス CH
    ウクライナ UA
    アラブ首長国連邦 AE
    イギリス GB
    アメリカ合衆国 米国語
    • プロトコル:「SMS」を選択します。
    • :電話番号の国を選択します。
    • 電話番号: E.164形式を使用して、電話番号を入力します。

      SMSエンドポイントの例:

  5. 「作成」をクリックします。

    サブスクリプションが作成されました。

    電子メールなど、確認を必要とするプロトコルを使用するサブスクリプションは、確認を受信するまで「保留中」ステータスのままになります。これらのサブスクリプションの場合は、サブスクリプション確認URLが送信されます。詳細なステップは、サブスクリプションを確認するにはを参照してください。

サブスクリプションを確認するには

ファンクション・サブスクリプションの確認は必要ありません。

サブスクリプションのエンドポイントに送信される確認URLに移動し、表示される手順に従います。

プロトコルによっては、確認URLが一意の方法で提供されます:

  • HTTPS (カスタムURL): エンドポイントに送信される、リクエスト・ヘッダーまたはサブスクリプション確認メッセージの本文(content-type: "application/json"のリクエスト)で確認URLを検索できます。
    • リクエスト・ヘッダーでは、X-OCI-NS-ConfirmationURLフィールドの値を参照してください。

      リクエスト・ヘッダーの例: 
      "X-OCI-NS-SignatureVersion":"1.0"
      "X-OCI-NS-Signature":"<example-signature>"
      "X-OCI-NS-SigningCertURL":"<example-url>"
      "X-OCI-NS-TopicOcid":"ocid.compartment.oc1..<unique_ID>"
      "X-OCI-NS-Timestamp":"2019-04-19T21:26:00.310+0000"
      "X-OCI-NS-MessageId":"<unique_ID>"
      "X-OCI-NS-TopicName":"mytopic"
      "X-OCI-NS-MessageType":"SubscriptionConfirmation"
      "X-OCI-NS-ConfirmationURL":"<exampleConfirmationURL>"
      "X-OCI-NS-SubscriptionId":"ocid1.onssubscription.oc1.phx.<unique_ID>"
      "X-OCI-NS-State":"Pending"

      標準ヘッダー・メタデータも参照してください。

    • リクエスト本文では、ConfirmationURLキーの値を参照してください。

      ConfirmationURLキーおよび値の例(リクエスト本文): 

      "ConfirmationURL":"<exampleConfirmationURL>"
      
  • PagerDuty: 「Oracle通知サービス・サブスクリプション確認」というタイトルのインシデント。詳細は、Oracle Cloud InfrastructureのPagerDutyドキュメントを参照してください。
  • Slack: 「サブスクリプションを確認するには」というテキストが含まれるSlackチャネルに送信されるメッセージ。
  • SMS:サブスクリプションを確認するためにテキスト「REPLY 」CONFIRM <<short-topic-id>」を含む電話番号に送信されるメッセージ。"

    <<short-topic-id>は、SMSサブスクリプションが追加されたトピックの短縮コードです。ショート・コードは、SMSサブスクリプションに送信されるメッセージのトピックを識別するために使用されます。各ショート・コードには、大/小文字を区別しない英数字が6文字含まれています。

    ノートSMS確認メッセージが

    ありませんか。「国際SMS機能」を参照してください。
サブスクリプション確認を再送信するには

サブスクリプション確認を再送信する機能は、保留中のサブスクリプションに対してのみ適用できます。

  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 確認を再送信するサブスクリプションに対して、「アクション」アイコン(3つのドット)をクリックし、「確認の再送信」をクリックします。
サブスクリプションの再試行期間を更新するには

再試行期間は、サブスクリプションの配信ポリシーの一部です。デフォルトで、通知では、最大2時間メッセージの配信が再試行されます。

  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 更新するサブスクリプションに対して、「アクション」アイコン(3つのドット)をクリックし、「配信ポリシーの更新」をクリックします。

  3. 「配信ポリシーの更新」ダイアログ・ボックスで、「最大再試行期間(分単位)」の編集アイコンをクリックし、新しい値を入力して、「保存」アイコンをクリックします。
サブスクリプションを別のコンパートメントに移動するには

関連付けられているトピックは現在のコンパートメントに残ります。詳細は、「別のコンパートメントへのトピックおよびサブスクリプションの移動」を参照してください。

ノート

リソースをコンパートメント間で移動するには、リソースの移動先のコンパートメントと現在のコンパートメントに対する十分なアクセス権限がリソース・ユーザーに必要です。通知リソースの権限の詳細は、通知サービスの詳細に関する項を参照してください。
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 「スコープ」セクションで、コンパートメントを選択します。
  3. リストでサブスクリプションを検索し、「アクション」アイコン(3つのドット)をクリックし、「リソースの移動」をクリックします。
  4. リストから宛先コンパートメントを選択します。
  5. 「リソースの移動」をクリックします。
サブスクリプションを削除(サブスクライブ解除)するには
ノート

電子メールとして送信されるすべてのメッセージには、関連トピックからサブスクライブ解除するためのリンクが含まれています。
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 削除するサブスクリプションに対して、「アクション」アイコン(3つのドット)をクリックし、「削除」をクリックします。
  3. プロンプトが表示されたら確認します。

トピックまたはサブスクリプションのタグの管理

トピックやサブスクリプションなどのリソースにタグを適用すると、ビジネス・ニーズに応じたリソースの整理に役立ちます。トピックやサブスクリプションの作成時にタグを適用することも、後で必要なタグでトピックやサブスクリプションを更新することもできます。タグ適用についての一般情報は、リソース・タグを参照してください。

トピックのタグを管理するには
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. タグを適用するトピックを含む「コンパートメント」を選択し、トピックの名前をクリックします。
  3. 「タグ」タブをクリックして既存のタグを表示または編集するか、「タグの追加」をクリックして新しいタグを追加します。

詳細は、リソース・タグを参照してください。

サブスクリプションのタグを管理するには
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. タグを適用するサブスクリプションを含む「コンパートメント」を選択し、サブスクリプションがあるトピックの名前をクリックします。
  3. タグを適用するサブスクリプションに対して、「アクション」アイコン(3つのドット)をクリックし、「タグの追加」をクリックします。

    既存のタグを表示または編集するには、「アクション」アイコン(3つのドット)をクリックし、「タグの表示」をクリックします。

詳細は、リソース・タグを参照してください。

APIの使用

APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKの詳細は、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

次のAPI操作を使用して、トピックを管理します:

次のAPI操作を使用して、サブスクリプションを管理します: