この記事では、Azure IoT Operations を使用するときに発生する可能性がある現在の既知の問題の一覧を示します。 このガイダンスは、これらの問題を特定するのに役立ち、使用可能な場合は回避策を提供します。
一般的なトラブルシューティング ガイダンスについては、「 Azure IoT 操作のトラブルシューティング」を参照してください。
展開、更新、アンインストールに関する問題
このセクションでは、Azure IoT Operations をデプロイ、更新、またはアンインストールするときに発生する可能性がある現在の既知の問題の一覧を示します。
カスタム リソースの作成中にエラーが発生しました
問題 ID: 9091
ログ署名: "code": "ExtensionOperationFailed", "message": "The extension operation failed with the following error: Error occurred while creating custom resources needed by system extensions"
Error occurred while creating custom resources needed by system extensions
メッセージは、既知の散発的な問題が原因でデプロイが失敗したことを示します。
この問題を回避するには、az iot ops delete
フラグを指定して --include-deps
コマンドを使用して、クラスターから Azure IoT 操作を削除します。 Azure IoT Operations とその依存関係がクラスターから削除されたら、デプロイを再試行します。
Codespaces 再起動エラー
問題 ID: 9941
ログ署名: "This codespace is currently running in recovery mode due to a configuration error."
Azure IoT Operations を GitHub Codespaces にデプロイする場合、Codespaces をシャットダウンして再起動すると、This codespace is currently running in recovery mode due to a configuration error
の問題が発生します。
この問題の回避策はありません。 シャットダウンと再起動をサポートするクラスターが必要な場合は、「 Azure Arc 対応 Kubernetes クラスターの準備」のオプションのいずれかを選択します。
MQTT ブローカーの問題
このセクションでは、MQTT ブローカーの現在の既知の問題の一覧を示します。
MQTT ブローカー リソースが Azure portal に表示されない
問題 ID: 4257
ログ署名: N/A
Kubernetes を使用してクラスターで作成された MQTT ブローカー リソースは、Azure portal に表示されません。 この結果が予想されるのは、 Kubernetes を使用した Azure IoT Operations コンポーネントの管理はプレビュー段階であり、エッジからクラウドへのリソースの同期は現在サポートされていないためです。
現時点では、この問題の回避策はありません。
Azure IoT Layered Network Management (プレビュー) の問題
このセクションでは、Azure IoT Layered Network Management の現在の既知の問題の一覧を示します。
レイヤード ネットワーク管理サービスで IP アドレスが取得されない
問題 ID: 7864
ログ署名: N/A
レイヤード ネットワーク管理サービスは、Ubuntu ホスト上の K3S で実行されている場合、IP アドレスを取得しません。
この問題を回避するには、 traefik イングレス コントローラーなしで K3S を再インストールします。
curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
詳細については、「 ネットワーク |K3s。
CoreDNS サービスが DNS クエリを正しく解決しない
問題 ID: 7955
ログ署名: N/A
子ネットワーク レベルで実行されている CoreDNS サービスを使用している間、DNS クエリは予想される IP アドレスに解決されません。
この問題を回避するには、Ubuntu 22.04 にアップグレードし、K3S を再インストールします。
OPC UA のコネクタに関する問題
このセクションでは、OPC UA のコネクタに関する現在の既知の問題の一覧を示します。
構成変更後にコネクタ ポッドが再起動しない
問題 ID: 7518
ログ署名: N/A
新しい資産エンドポイント プロファイルを使用して新しい資産を OPC UA ブローカーに追加し、再構成をトリガーすると、opc.tcp
ポッドのデプロイは、ユーザー名とパスワードの新しいシークレット マウントに対応するように変更されます。 何らかの理由で新しいマウントが失敗した場合、ポッドは再起動しないため、正しく構成された資産の古いフローも停止します。
一部の OPC UA シミュレーターを使用して 2.5 時間ごとにデータが急増する
問題 ID: 6513
ログ署名: 2.5 時間ごとにメッセージ ボリュームを増やしました
特定の OPC UA シミュレーターを使用すると、CPU とメモリのスパイクが発生する場合、データ値は 2.5 時間ごとに急増します。 この問題は、クイック スタートで使用される OPC PLC シミュレーターでは見られません。 データは失われませんが、サーバーから MQTT ブローカーに発行されたデータの量が増加していることがわかります。
データセット内の選択したノードが同じ複合データ型定義を参照している場合、メッセージ スキーマは生成されません
問題 ID: 7369
ログ署名: An item with the same key has already been added. Key: <element name of the data type>
データセット内の選択したノードが同じ複合データ型定義 (構造体型または列挙型の UDT) を参照している場合、メッセージ スキーマは生成されません。
OPC UA 以外の名前空間複合型定義 (構造体または列挙型) を共有するデータセットのデータ ポイント (ノード ID) を選択した場合、JSON スキーマは生成されません。 代わりにデータ フローを作成すると、既定のオープン スキーマが表示されます。 たとえば、データ セットにデータ型の 3 つの値が含まれている場合、データ セットが機能するかどうかは次の表に示されています。
int
は、string
、double
、float
、long
などのタイプまたはプリミティブ型に組み込まれている OPC UA に置き換えることができます。
値 1 の種類 | 値 2 の型 | 値 3 の型 | スキーマを正常に生成する |
---|---|---|---|
int |
int |
int |
イエス |
int |
int |
int |
イエス |
int |
int |
struct A |
イエス |
int |
enum A |
struct A |
イエス |
enum A |
enum B |
enum C |
イエス |
struct A |
struct B |
struct C |
イエス |
int |
struct A |
struct A |
いいえ |
int |
enum A |
enum A |
いいえ |
この問題を回避するには、次のいずれかを実行します。
- データセットを 2 つ以上の資産に分割します。
- スキーマを手動でアップロードします。
- データ フロー デザイナーで既定の非スキーマ エクスペリエンスを使用します。
メディア用コネクタと ONVIF 用コネクタの問題
このセクションでは、メディア用コネクタと ONVIF 用コネクタに関する現在の既知の問題の一覧を示します。
AssetType CRD の削除プロセスが完了しない
問題 ID: 6065
ログ署名: "Error HelmUninstallUnknown: Helm encountered an error while attempting to uninstall the release aio-118117837-connectors in the namespace azure-iot-operations. (caused by: Unknown: 1 error occurred: * timed out waiting for the condition"
クラスターから Azure IoT 操作をアンインストールしようとすると、CRD 削除ジョブが保留中の状態で停止し、Azure IoT 操作のクリーンアップがブロックされる状態になる場合があります。
この問題を回避するには、次の手順を実行して CRD を手動で削除し、アンインストールを完了します。
AssetType CRD を手動で削除します。
kubectl delete crd assettypes.opcuabroker.iotoperations.azure.com --ignore-not-found=true
ジョブ定義を削除します。
kubectl delete job aio-opc-delete-crds-job-<version> -n azure-iot-operations
コネクタの Helm リリースを検索します。これには
-connectors
サフィックス (helm ls -a -n azure-iot-operations
) が付いていますフックを実行せずに Helm リリースをアンインストールします。
helm uninstall aio-<id>-connectors -n azure-iot-operations --no-hooks
Akri サービスに関する問題を含む資産の検出
このセクションでは、Akri サービスでの資産検出に関する現在の既知の問題の一覧を示します。
アップグレード後 1 時間、資産の検出が機能しない
問題 ID: 0407
ログ署名: N/A
Akri サービスをアップグレードすると、アップグレード後 1 時間、メッセージと資産の一部が失われる可能性があります。
この問題を回避するには、アップグレード後 1 時間待機し、資産検出シナリオをもう一度実行します。
データ フローの問題
このセクションでは、データ フローに関する現在の既知の問題の一覧を示します。
データ フロー リソースが操作エクスペリエンス Web UI に表示されない
問題 ID: 8724
ログ署名: N/A
Kubernetes を使用してクラスターで作成されたデータ フロー カスタム リソースは、操作エクスペリエンス Web UI には表示されません。 この結果が予想されるのは、 Kubernetes を使用した Azure IoT Operations コンポーネントの管理はプレビュー段階であり、エッジからクラウドへのリソースの同期は現在サポートされていないためです。
現時点では、この問題の回避策はありません。
カスタム Kafka エンドポイントの X.509 認証を構成できない
問題 ID: 8750
ログ署名: N/A
カスタム Kafka エンドポイントの X.509 認証は現在サポートされていません。
Azure Event Grid での接続エラー
問題 ID: 8891
ログ署名: N/A
複数の IoT Operations インスタンスを同じ Event Grid MQTT 名前空間に接続すると、クライアント ID の競合が原因で接続エラーが発生する可能性があります。 クライアント ID は現在、データ フロー リソース名から派生しており、インフラストラクチャをデプロイのコード パターンとして使用する場合、生成されるクライアント ID は同じになる可能性があります。
この問題を回避するには、デプロイ テンプレートのデータ フロー名にランダム性を追加します。
データ フローのデプロイが完了しない
問題 ID: 9411
ログ署名:
"Dataflow pod had error: Bad pod condition: Pod 'aio-dataflow-operator-0' container 'aio-dataflow-operator' stuck in a bad state due to 'CrashLoopBackOff'"
"Failed to create webhook cert resources: Failed to update ApiError: Internal error occurred: failed calling webhook "webhook.cert-manager.io" [...]"
新しいデータ フローを作成すると、デプロイが完了しない可能性があります。 原因は、 cert-manager
の準備ができていないか、実行されていなかったということです。
この問題を回避するには、次の手順を使用してデータ フロー オペレーター ポッドを手動で削除し、クラッシュ状態をクリアします。
kubectl get pods -n azure-iot-operations
を実行します。 出力で、aio-dataflow-operator-0 のみが実行されているデータ フロー オペレーター ポッドであることを確認します。kubectl logs --namespace azure-iot-operations aio-dataflow-operator-0
を実行して、データ フロー オペレーター ポッドのログを確認します。出力で、最終的なログ エントリを確認します。
Dataflow pod had error: Bad pod condition: Pod 'aio-dataflow-operator-0' container 'aio-dataflow-operator' stuck in a bad state due to 'CrashLoopBackOff'
オプションを使用して
--previous
コマンドをもう一度実行します。kubectl logs --namespace azure-iot-operations --previous aio-dataflow-operator-0
出力で、最終的なログ エントリを確認します。
Failed to create webhook cert resources: Failed to update ApiError: Internal error occurred: failed calling webhook "webhook.cert-manager.io" [...]
。 問題 ID:2382 2 つの kubectl ログ コマンドから両方のログ エントリが表示された場合、cert-manager の準備ができていないか、実行されていません。kubectl delete pod aio-dataflow-operator-0 -n azure-iot-operations
を実行して、データ フロー オペレーター ポッドを削除します。 ポッドを削除すると、クラッシュ状態がクリアされ、ポッドが再起動されます。オペレーター ポッドが再起動し、データ フローをデプロイするまで待ちます。
データ フローのエラー メトリック
問題 ID: 2382
ログ署名: N/A
データ フローは、メッセージの再試行と再接続をエラーとしてマークし、結果としてデータ フローが異常に見える可能性があります。 この動作は、以前のバージョンのデータ フローでのみ表示されます。 ログを確認して、データ フローが正常かどうかを判断します。