トラブルシューティング

トラブルシューティング情報を使用して、Internet of Things (IoT)プラットフォームの操作時に発生する可能性のある一般的な問題を特定し、対処します。

必要な権限があることを確認してください。管理者は、必要なポリシーを作成してアクセス権を付与します。詳細は、前提条件およびInternet of Things (IoT)プラットフォームのポリシー詳細を参照してください。

デバイス資格証明のローテーション

デバイスは、パスワード、証明書、発行者バージョンまたはデジタル・ツイン・インスタンスの認証IDの変更後に、データの認証または送信を停止できません。

デバイスとサービスは、異なる資格証明バージョンを使用したり、異なる認証リソースを参照したり、必要なアクセスがない場合があります。成功した認証と成功したデータ取り込みは、個別にチェックする必要があります。

認証リソースおよびデバイス構成を確認してください

  1. ドメイン・エンドポイント、インスタンスの外部キーおよび構成済authIdを確認します。同じOCIDでバージョン更新を、別のリソースOCIDで置換と区別します。
  2. シークレットの場合、目的のバージョンがCURRENTであること、デバイスがBase64表現ではなく元の値を使用すること、およびIoTドメインがシークレットを読み取ることができることを確認します。シークレット・ローテーションのトラブルシューティングを参照してください。NotAuthorizedOrNotFoundエラーについては、シークレット・アクセスおよびポリシーも確認してください。
  3. 証明書の場合は、構成済のリソース・タイプ、発行者のバージョン、有効性、失効ステータス、証明書チェーン、共通名および一致する秘密キーを確認します。ルートCAはauthIdにできません。Troubleshooting Certificate Rotationを参照してください。
  4. 新規接続に置換資格証明を使用し、テスト・メッセージを送信して、目的のインスタンスの取込みを確認します。認証は成功したが、取込みが失敗した場合は、資格証明の失敗として処理するのではなく、メッセージ・トピックまたはHTTPSエンドポイント、ペイロードおよび適用可能なアダプタを確認します。
  5. 古い資格証明のみが失敗した場合は、サポートされている重複に対して資格があるかどうかを確認します。バージョンが Vaultまたは証明書に存在するため、受け入れられたままであると想定しないでください。資格証明のローテーション、削除、またはTLS検証の無効化を繰り返し実行して調査しないでください。

永続的な障害に関する秘密ではない証拠の収集

リージョン、ドメインおよびデジタル・ツイン・インスタンスのOCIDs、認証リソースのOCIDとタイプ、バージョン番号とステージ、タイムゾーン、プロトコル、エラー・コードおよびリクエストID (使用可能な場合)による変更および失敗のタイムスタンプを記録します。障害が置換資格証明、前の資格証明、またはその両方に影響するかどうか、および新しい接続がデータを認証して取り込むかどうかを記録します。

承認されたサポート・チャネルを通じてこの証拠を提供します。資格証明を含むパスワード、シークレット・コンテンツ、秘密キー、認可ヘッダーまたはリダクションされていないコマンド出力は含めないでください。妥協の疑いがある場合は、ローテーションの重複に依存するのではなく、組織のインシデント対応プロセスに従ってください。

問合せ入力タイプおよびタイムスタンプ・フィルタ

RAWまたは履歴化されたデータの問合せは、予想より時間がかかるか、日時でフィルタする際に変換エラーを返します。

原因: バインドされていないクエリーまたは互換性のないフィルタ入力

時間制限のない問合せでは、保持された履歴全体のデータを読み取ることができます。少ない列のみを選択すると、その履歴をスキャンする作業がなくなります。また、タイムスタンプ列と異なる型の値を比較すると、暗黙的な変換が必要になる場合があります。変換が索引付き列に適用されると、索引の効率的な使用を防ぐことができます。

処置: 時間範囲および一致入力タイプを制限します

  1. 「IoTドメイン・データベース・スキーマ」でフィルタ列のデータ型を確認します。TIME_RECEIVEDを使用してRAWデータを受信時間でフィルタし、TIME_OBSERVEDを使用して履歴サンプルを観察時間でフィルタします。
  2. 必要な列を選択し、開始を含む終了排他的な時間範囲を指定します。たとえば、この問合せでは、CONTENTペイロードを取得せずにRAWメッセージ・メタデータを取得します。スキーマ・プレースホルダをIoTドメインの短縮IDに置き換え、SQLクライアントのバインド変数メカニズムを使用して、:start_timeおよび:end_timeを文字列(2026-09-20 10:00:00.000000や2026-09-20 11:00:00.000000など)としてバインドします。
    SELECT id,
           digital_twin_instance_id,
           endpoint,
           content_type,
           time_received
    FROM <domain-short-id-from-device-host>__IOT.RAW_DATA
    WHERE time_received >= TO_TIMESTAMP(
            :start_time, 'YYYY-MM-DD HH24:MI:SS.FF6')
      AND time_received < TO_TIMESTAMP(
            :end_time, 'YYYY-MM-DD HH24:MI:SS.FF6');

    時間制限により、検索されるデータが制限され、列ではなく入力を変換すると、タイムスタンプ索引を効率的に使用できる機会が保持されます。メタデータを選択すると、不要なペイロードのフェッチが回避されます。基礎となるデータ・ブロックが読み取られないことは保証されません。

  3. テキスト入力の場合は、TO_TIMESTAMP書式マスクを指定された文字列と照合します。この例では、データと同じ時間規則で、タイムゾーンオフセットのない値を受け入れます。両方の値が移入され、開始が終了より前になっていることを確認します。入力がすでにTIMESTAMPとして入力されている場合は、テキスト変換を通過するのではなく、直接比較します。これらの述語では、書式設定または変換関数をTIME_RECEIVEDまたはTIME_OBSERVEDに適用しないでください。
  4. APEX日時ページ・アイテムの入力については、明示的な変換例については、「APEXページ・アイテムからの型付き値の使用」を参照してください。テキスト変換の詳細は、TO_TIMESTAMPを参照してください。
  5. 問合せの速度が遅い場合は、問合せ、入力タイプと値、リクエストされた時間範囲、経過時間およびエラー・メッセージを取得して、さらに調査します。これらの問合せパターンでは、特定のレスポンス時間が保証されません。

パスワードを更新する

APEXを使用してデータベースに接続する場合、またはアイデンティティ・ドメイン・グループを使用してデータベースに直接接続する場合は、データベース・パスワードのリセットが必要になる場合があります。

原因: APEXを使用していて、パスワードをリセットする必要がある場合

APEXでIoTデータを表示するためのアクセス権を構成すると、データベース・ユーザーおよびAPEXワークスペース管理者ユーザーという2つの異なるユーザーが作成されます。これらは、同じユーザー名および同じ初期パスワードを持つ2つの異なるユーザーです。各ユーザーのパスワードを更新できます。

処置: APEXデータベース・パスワードの更新

  1. データベース・ユーザーのパスワードを変更できるのは、APEXワークスペース管理者のみです。最初は、APEXワークスペース管理者がAPEXデータベース・パスワードを使用してログインしてから、次のステップに従ってデータベース・パスワードを変更します。

    APEXで、ワークスペース名およびデータベース・ユーザー名として、現在のAPEXデータベース・パスワードを使用して、IoTドメインのワークスペースに管理者としてログインします。
    ノート

    2つのアンダースコア__WKSPに注意してください。
    <domain-short-id-from-device-host>__WKSP
  2. 「SQLワークショップ」に移動し、「SQLコマンド」を選択します。
  3. 右上のスキーマ・ドロップダウン・メニューから<iot-domain-short-id-from-device-host>__WKSPスキーマが選択されていることを確認します。スキーマに2つのアンダースコアが含まれていることに注意してください。
  4. データベース・ユーザーのパスワードを変更するには、次のSQLALTER USER文および必要なREPLACE句を使用します。
    ALTER USER <workspace-administrator-user-name> IDENTIFIED BY "<new-password>" REPLACE "<old-password>";
  5. 「実行」を選択します。
  6. パスワード更新の結果の例:
    User altered.
    
    0.24 seconds

処置: APEXパスワードの更新

APEXパスワードを変更するには:
  • APEXワークスペース管理者は、ワークスペース管理パスワードを変更できます。管理者としてAPEXにログインした後、「APEXアカウント・パスワードの設定」オプションを選択します。詳細は、APEXでのパスワードのリセットを参照してください。
  • APEXユーザーとして、APEXアプリケーションに初めてログインすると、APEXパスワードの変更を求められます。最初のログイン後、APEXログイン・ページでパスワードをリセットできます。
ノート

使用するシステムによっては、パスワードに特殊文字が含まれている場合に二重引用符が必要になることがあります。

処置: APIを使用してAPEXワークスペース・パスワードをリセットします

APEXワークスペース管理者は、IoT APEXワークスペース・アカウントがロックされている場合に変更できます。管理者は、このConfigureIotDomainDataAccess操作を2回実行して、APEXワークスペースのパスワードをリセットできます。
POST /20250531/iotDomains/{iotDomainId}/actions/configureDataAccess
{
  "type": "APEX",
  "dbWorkspaceAdminInitialPassword": "<your-apex-initial-password>"
}

原因: データベースに直接接続するときに認可がありません

次のCLIコマンドを使用してデータベースへの直接接続を確立し、データベースに直接接続する権限がない場合は、アイデンティティ・ドメイン・グループが接続するための新しいデータベース・パスワードを作成できます。

たとえば、oci iot domain configure-direct-data-accessコマンドと必要なパラメータを使用して、直接データベース接続を確立するためにIoTドメインの認証を構成し、接続できない場合です。

oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID:<identity-domain-name>/<identity-group-name>"]'

または、次の形式を使用する場合:

oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID:<identity-group-name>"]'

処置: アイデンティティ・ドメイン・ユーザーのデータベース・パスワードの更新

IAMアイデンティティ・ドメイン・ユーザーのデータベース・パスワードを更新します。そのためには、IoTテナンシにログインし、次のステップを実行します:
  1. ナビゲーション・メニューを開き、「アイデンティティと管理」に移動して「ドメイン」を選択します。
  2. ドメイン・リスト・ページで、操作するアイデンティティ・ドメインを選択し、IoTドメインに接続します。
  3. 「ユーザー管理」タブを選択し、パスワードを更新するユーザーを選択します。「データベース・パスワード」タブを選択して、パスワードを更新し、現在のIAMデータベース・パスワードを削除して新しいIAMデータベース・パスワードを作成します。

デジタルツインモデルDTDL仕様 v3

原因: デジタル・ツイン・モデルを作成するとエラーになります

エラーが表示された場合は、デジタル・ツイン・モデルを作成するときに、サポートされているDTDL v3仕様のみを使用していることを確認します。

処置: サポートされているv3 DTDL仕様のみを使用してください

デジタル・ツイン・モデルを定義する場合、MQTT拡張および書込み可能プロパティを除き、すべてのDTDL v3仕様がサポートされます。
  • writableプロパティがデジタル・ツイン・モデルに含まれている場合は、falseに設定する必要があります。
  • historizedとして注釈を付けることができるのは、コンポーネント内のcontentのみです。これは、IoTプラットフォームがセンサーの時系列テレメトリを保持する必要があることを示しています。デジタル・ツイン・モデルの例dtdl-model-specifications.jsonを参照してください。例は、デジタル・ツイン・モデルの作成を参照してください。

サービス制限超過

リージョンごとのIoTドメインまたはIoTドメイン・グループ・リソース・サービス制限をトラブルシューティングします。

原因: リージョン当たりのIoTリソース制限

Internet of Things (IoT) Platformには、リージョンごとのリソース数が制限されています。

IoTドメイン・グループに2つ以上のIoTドメインを作成しようとすると、次のエラーが表示される場合があります。詳細は、IoTドメインの作成またはIoTドメイン・グループを参照してください。

The following service limits were exceeded: <resource-count>. Request a service limit increase from the service limits page in the console.

ノート

Oracleでは、各IoTドメイン・グループで最大2つのIoTドメインの作成が制限されています。IoTドメイン・グループの最大数は5で、IoTドメインの最大数はテナンシのリージョン当たり10です。IoTドメインを作成するには、関連付けられたIoTドメイン・グループの読取りアクセス権が必要です。

改善策: アップグレードして制限を増やす

IoTリソースの制限を確認するには、サービス制限を参照してください。制限を増やす必要がある場合は、サービス制限の引上げをリクエストできます。

OCIDsでの引用符の使用

Oracle Cloud Infrastructure (OCI)では、OCID (Oracle Cloud Identifier)は各クラウド・リソースに割り当てられた一意のIDです。特定のシナリオに応じて、コマンドライン・インタフェース(CLI)、JSON入力またはAPIコールを介してOCIと対話する場合、OCIDを引用符で囲んで文字列値として解釈する必要がある場合があります。または、作業中のコード・エディタが不要な引用符を追加する場合は、引用符を削除する必要がある場合があります。

ノート

一部のアプリケーションまたはコード・エディタでは、不要な引用符を値に追加したり、不要な引用符を確認および削除したりすると、エラーが発生する可能性があります。

JSON標準に準拠し、OCIサービスによる正しい解釈を保証するには、OCIDを二重引用符で囲んで、JSON構造または複合入力内の文字列値として処理する必要があります。CLIコマンドに直接、単純な引数として渡された場合、明示的な引用符は必要ないことがよくあります。

  • CLIでOCIDsを引用しない: OCIDがCLIコマンドの直接引数である場合、引用符が必要な大きな文字列または複合型の一部でないかぎり、明示的に引用符を使用する必要はありません。
    この例は、OCIDを引用符なしでCLIコマンドに使用する方法を示しています。
    oci iot digital-twin-adapter create --iot-domain-id ocid1.iotdomain.oc1.example-ocid 
  • JSON文字列への埋込み時のOCIDsの見積り: OCID値を持つJSON文字列として複雑なパラメータをCLIコマンドに渡す場合、JSON文字列内のOCIDは二重引用符で囲み、必要に応じてエスケープする必要があります。使用しているツールおよびオペレーティング・システムに応じて、Windowsの場合は必須です。詳細は、Passing Complex Input in CLIを参照してください。
  • JSONオブジェクトでのOCIDsの見積り: JSONオブジェクト内のすべての文字列値は、二重引用符で囲む必要があります。OCIDが、APIまたはCLIコマンドを使用してOCIに送信するJSONオブジェクトの値である場合、二重引用符で囲む必要があります:
    { "displayName": "my_resource", "compartmentId": "ocid1.compartment.oc1..<example>" } 
  • APIコールでのOCIDsの見積り: リクエスト本文またはパラメータ: OCIへのAPIコールを行う場合、OCIDがJSONペイロードまたは問合せパラメータとしてのリクエスト本文の一部である場合、文字列として扱われ、JSONペイロード内で二重引用符で囲む必要があります。または、URLパラメータの文字列として適切にエンコードされている必要があります。特定の要件は、APIエンドポイントおよびそのパラメータに予期されるデータ型によって異なります。

外部キーに引用符を使用するデジタル・ツイン・インスタンス

外部キーがデバイス・ユーザー名と等しい: 外部キーに引用符が埋め込まれたデジタル・ツイン・インスタンス("\"american-auto\""など)が作成された場合、Basic認証ユーザー名は、これらの引用符が必要なユーザー名の一部となり、文字どおりに送信する必要があります。これはシェル引用の問題を引き起こすことがよくあります。外部キー名に引用符を含めた場合、curlリクエストに引用符も含める必要があります。そうしないと、不一致が発生し、401 Unauthorizedエラーが発生します。

デジタル・ツイン・インスタンスの external key値で引用符を使用する場合は、APIコールを行うときに引用符を使用する必要があります。または、外部キー値の引用符を省略できます。

見積りの問題を回避するために、デジタル・ツイン・インスタンスの外部キー値に引用符を使用しないでください。たとえば、--external-key CLIパラメータと、引用符を使用しない対応する値を示します。

--external-key 01-23-45-67-89-ab

ベスト・プラクティス: 外部キーを使用してデジタル・ツイン・インスタンスを作成し、american-autoなどの引用符を含めません。または、引用符で囲まれたユーザー名で認証する必要がある場合は、-uを使用せずにAuthorization: Basic ...ヘッダーを構築して、引用符のエラーを回避します。

デジタル・ツイン・アダプタでは、JSONオブジェクトに引用符を使用する必要があります

デジタル・ツイン・アダプタのインバウンド・ルートでは、引用符なしの式はサポートされません。他の例は、シナリオを参照してください。

デジタル・ツイン・アダプタでは、inbound-route式は引用符なしのRAW値としてサポートされません。たとえば:

"$.speed": ${(.velocity_kph / 1.609) | floor}
デジタル・ツイン・アダプタでは、inbound-route値の式を引用符を使用して文字列として埋め込む必要があります。次に例を示します。
"$.speed": "${(.velocity_kph / 1.609) | floor}"

IoTフロー・ランタイムのトラブルシューティング

フロー・ランタイムのライフサイクル操作、IAMポリシー、ノード-REDエディタ、フロー・ドキュメントの更新、ネットワーク・アクセスおよびファイル・ストレージのマウントに関する一般的な問題を特定し、解決します。

フローをトラブルシューティングする前に、フロー・ランタイムとその作業リクエスト、メトリック、イベントおよび構成済ログを表示できることを確認します。

フロー・ランタイムがアクティブになりません

  1. アクティブ化操作によって作成された作業リクエストをオープンし、そのエラーをレビューします。
  2. IAMポリシーで、フロー・ランタイムを更新し、参照されるIoTドメイン、サブネット、ネットワーク・セキュリティ・グループ、ログ、マウント・ターゲットおよびエクスポートを読み取ることができることを確認します。
  3. 参照されるすべてのリソースが、必要なコンパートメントおよびリージョンに存在することを確認します。
  4. 報告された構成の問題を修正し、ランタイムを再度アクティブ化して、作業リクエストが完了するまで待機します。

Node-REDエディタが開かないか、フローの更新が失敗します

  1. フロー・ランタイムのライフサイクル状態が「アクティブ」であることを確認します。
  2. IAMポリシーで、IoTドメインおよびフロー・ランタイムへのアクセスが許可されていることを確認します。
  3. 「フロー・ランタイム」詳細ページをリフレッシュし、「オープン・フロー・ランタイム・エディタ」を再度選択します。
  4. 「デプロイ」を選択する前に、ノード-REDフローを検証します。エディタによって報告されたノード構成エラーを修正します。
  5. エディタで「デプロイ」が失敗した場合は、構成済のログを確認し、現在のフロー・ドキュメントを取得して、使用するフローと比較します。
  6. CLIまたはAPIの更新に失敗した場合は、入力が完全なJSONフロー・ドキュメントであることを確認します。CLIの場合は、--flows-documentパラメータを使用し、ファイル・パスの前にfile://を付けます。IoTフロー・ランタイムのフローの更新を参照してください。更新操作は同期しており、作業リクエストは作成されません。

フローは外部エンドポイントに接続できません

  1. ランタイムのネットワーク構成を確認し、目的のサブネットおよびネットワーク・セキュリティ・グループが使用されていることを確認します。
  2. サブネット・ルート表にエンドポイントへのルートがあることを確認します。プライベート・サブネットからのアウトバウンド・インターネット・アクセスの場合は、NATゲートウェイおよびルーティング構成を確認します。
  3. セキュリティ・リストおよびネットワーク・セキュリティ・グループで、必要なアウトバウンド・プロトコルおよびポートと必要なリターン・トラフィックが許可されていることを確認します。
  4. ノード-REDノードのエンドポイント・ホスト名、ポート、TLS構成および認証値を確認します。
  5. MQTTの場合、各フロー・ランタイムで一意のクライアントIDが使用されていることを確認します。共有サブスクリプションを使用する場合は、各ランタイムで同じ共有サブスクリプション・トピックを使用し、各ランタイムで異なるクライアントIDを使用します。
  6. 修正されたフローの「デプロイ」を選択し、構成されたログおよびフロー・ランタイム・メトリックを確認します。

ファイル・ストレージ・マウントはフローで使用できません

  1. ランタイムのファイル・ストレージ・マウント構成を確認します。
  2. マウント・ターゲットおよびエクスポートOCIDsが正しいことを確認します。構成されたマウント・パスは、先頭または末尾のスラッシュ・セグメントやパス・トラバース・セグメントを含まない相対パスである必要があります。たとえば、historyは/mnt/historyのフロー・ランタイムで使用できます。
  3. ファイル・ストレージ・エクスポートの「ポート」オプションが「特権」に設定されていることを確認します。
  4. マウント・ターゲットのNSGで、必要なファイル・ストレージ・トラフィックが許可されていることを確認します。マウント・ターゲットでNSGを使用しない場合は、そのサブネット・セキュリティ・リストに、TCPおよびUDPポート111およびポート2048-2051のフロー・ランタイム・サブネットCIDRからのステートフル・イングレス・ルールがあることを確認します。
  5. ランタイムを更新する場合は、サブネット、ネットワーク・セキュリティ・グループ、およびアタッチされたままにしておく必要があるすべてのFile Storageマウントを含む、完全な置換ネットワーク構成を指定します。
  6. 更新作業リクエストが完了するまで待機し、マウントされたパスでファイルが表示され、読取り可能であることを確認してから、フローを再度実行します。

フローでIoTデータが生成されない

  1. フロー・ランタイムがアクティブであり、ノード-REDエディタが正常なデプロイメントをレポートしていることを確認します。
  2. ソースが、入力ノードで構成されたホスト、ポートおよびトピックにメッセージを送信していることを確認します。
  3. ノード-REDデバッグ・ノードおよび構成済ランタイム・ログを使用して、各変換の前後にメッセージを検査します。
  4. 出力ノードで、デジタル・ツイン・アダプタで想定される正しいIoTデバイス・ホスト、デバイス資格証明およびトピックが使用されていることを確認します。
  5. RAWデータが到着したが正規化データがない場合は、アダプタ・ルート条件、ターゲット・マッピング、ペイロード・マッピングおよびデジタル・ツイン・インスタンスの関連付けを確認します。
  6. 処理または配信の失敗について、ターゲット・デジタル・ツイン・インスタンスのデータおよびフロー・ランタイム・メトリックを確認します。

デキュー・ノードが、無効なオブジェクト・タイプ、予期しないペイロードまたは欠落しているサブスクライバを報告しています

  1. フローに一致するキューを選択します。監視シナリオでは、<domain-short-id>__IOT.NORMALIZED_DATAを使用します。
  2. NORMALIZED_DATAでは、JSONペイロードを選択し、ADTオブジェクト型を指定しません。正規化されたレコードには、digitalTwinInstanceId、contentPath、valueおよびtimeObservedが含まれます。
  3. かわりにRAW入力を意図的に消費するフローの場合は、キュー<domain-short-id>__IOT.RAW_DATA_INおよびオブジェクト型<domain-short-id>__IOT.RAW_DATA_IN_TYPEを使用します。正規化されたキューでRAWオブジェクト・タイプを使用しないでください。
  4. 外部認証を有効にし、プロキシ・ユーザーが<domain-short-id>_<flow-runtime-short-id>__FRであることを確認します。
  5. モニタリング・フローの場合は、ドメインおよびフロー・ランタイムの短縮IDを使用して、「サブスクライバ」を<DOMAIN_SHORT_ID>_<FLOW_RUNTIME_SHORT_ID>_SUBSCRIBERに設定します。名前全体を大文字に変換し、各部分の間に1つのアンダースコアを使用します。たとえば、abcd1234およびefab5678はABCD1234_EFAB5678_SUBSCRIBERを生成します。これはサブスクライバ名であり、__FRデータベース・プロキシ・ユーザーではありません。「キュー・サブスクライバの識別」を参照してください。
  6. フロー・ランタイム・スキーマの設定では、NORMALIZED_DATAにサブスクライバが登録されます。フローをインポートしたり、そのインジェクト・ノードをトリガーしても、サブスクライバは作成されません。IDおよび名前を確認した後にサブスクライバが欠落している場合は、ランタイム管理者に、このランタイムおよびキューの登録を確認するよう依頼してください。
  7. 「デプロイ」を選択し、テストIoTイベントを公開し、デバッグ・ノードを一時的に接続して、実際のキュー・ペイロードおよびフィールド・ケースを検査します。

共有MQTTサブスクリプションは、重複メッセージを生成するか、切断します。

  1. 参加するすべてのフロー・ランタイムを、$share/fr-guide/source/+/+などの同じ共有トピックで構成します。
  2. すべてのランタイムに一意のMQTTクライアントIDを指定します。クライアントIDを再利用すると、あるアクティブなランタイムが別のランタイムを切断する可能性があります。
  3. MQTT 5.0を使用して、ブローカが共有サブスクリプションをサポートしていることを確認します。
  4. source/hvacs/fr-guide-hvac-01などの通常のトピックにパブリッシュします。$shareサブスクリプション・トピックに公開しないでください。
  5. 共有グループ外の同じメッセージを意図的に処理する独立したsource/+/+サブスクリプションを削除します。

フロー・ランタイム・ポリシーのトラブルシューティング

ログ・グループOCIDを使用したフロー・ランタイムの作成に失敗するか、OCIノードがNotAuthorizedOrNotFound、401または403を報告します。

  1. OCIノードの場合、フロー・ランタイム・コンパートメントとリソース・タイプが動的グループ・ルールと一致することを確認します。新規または移動されたランタイムが、目的のルールと一致しない場合があります。
  2. OCIノードの場合、リソース・プリンシパル・ポリシー・サブジェクトが正しい動的グループおよびアイデンティティ・ドメインを使用していることを確認します。
  3. OCIノードの場合、リソース・プリンシパル・ポリシーが、ターゲット・リソースまたは適切な親コンパートメントを含むコンパートメントに作成されていることを確認します。
  4. 既存のログの場合、作成時のロギング・ポリシーでread log-groupsおよびuse log-contentが付与されていることを確認します。ログの自動作成用にログ・グループのみを選択した場合は、ポリシーによってmanage log-groupsおよびuse log-contentが付与されていることを確認します。ポリシーがログ・グループを含むコンパートメントに適用され、構成されたログ・グループおよびログOCIDsが正しいことを確認します。
  5. OCIノードの場合は、失敗した操作を特定し、それをオブジェクト・ストレージ、通知またはIoTノードの最小権限の例と比較します。
  6. ターゲットOCID、コンパートメント、バケット名、トピックまたはデータベースが、リソース・プリンシパル・ポリシーで指定されたリソースであることを確認します。
  7. 動的グループまたはポリシーの変更後、IAMの変更が有効になるまで待機し、操作をデプロイまたは再試行して、フロー・ランタイム・ログを確認します。
  8. ポリシーが文書化された要件と一致し、アクセスが拒否された場合は、Oracle Supportに連絡する前に、作業リクエスト・エラー、リクエストID、ランタイムOCID、ターゲット・リソースのOCIDおよびポリシー・ステートメントを収集してください。