Apache Camel コンポーネントリファレンス
Camel コンポーネントの設定リファレンス
概要
第1章 コンポーネントの概要 リンクのコピーリンクがクリップボードにコピーされました!
この章では、Apache Camel で使用できるすべてのコンポーネントの概要を説明します。
1.1. コンテナーの種類 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Fuse には、さまざまなコンテナータイプがあり、Camel アプリケーションをデプロイできます。
- Spring Boot
- Apache Karaf
- JBoss Enterprise Application Platform (JBoss EAP)
さらに、Camel アプリケーションは コンテナーレス で実行できるので、Camel アプリケーションは特別なコンテナーなしで JVM 内で直接実行されます。
場合によっては、Fuse ではコンテナーごとにサポートされる Camel コンポーネントが異なります。これにはさまざまな理由がありますが、場合によっては、コンポーネントがすべてのコンテナータイプに適しているわけではありません。たとえば、camel-ejb コンポーネントは Java EE (つまり、JBoss EAP) 用に特別に設計されており、他のコンテナータイプではサポートできません。
1.2. サポートされるコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
以下のキーに注意してください。
| 記号 | 説明 |
|---|---|
| ✔ | サポート対象 |
| ❌ | サポートされないか、まだサポート対象ではない |
| 非推奨 | 今後のリリースで削除される可能性があります |
表1.1「Apache Camel コンポーネントサポートマトリックス」 では、各 Camel コンポーネントがサポートされるコンテナーについて、包括的に説明します。
| コンポーネント | コンテナーレス | Spring Boot 2.x | Karaf | JBoss EAP |
|---|---|---|---|---|
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| 非推奨 | 非推奨 | 非推奨 | ✔ |
|
| ✔ | ❌ | ✔ | ❌ |
|
| ✔ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ❌ | 非推奨 | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ❌ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ❌ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | ❌ | ❌ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ❌ | ❌ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ❌ | ✔ | ❌ |
|
| ✔ | ❌ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ❌ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ❌ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | 非推奨 |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | ✔ | ❌ |
|
| 非推奨 | 非推奨 | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
| ✔ | ✔ |
| 非推奨 | ❌ |
| ✔ | ❌ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ❌ |
| ✔ | ❌ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ❌ |
| 非推奨 | ❌ |
| ✔ | ❌ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ |
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ✔ | 非推奨 | ❌ |
|
| 非推奨 | 非推奨 | 非推奨 | 非推奨 |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ❌ | ❌ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ❌ | ❌ | ✔ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | ❌ | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ✔ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ✔ | ❌ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ❌ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ❌ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| コンポーネント | コンテナーレス | Spring Boot 2.x | Karaf | JBoss EAP |
|---|---|---|---|---|
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | 非推奨 |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | ✔ |
|
| 非推奨 | 非推奨 | 非推奨 | 非推奨 |
|
| ❌ | ❌ | ❌ | ❌ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
|
| ✔ | ✔ | ✔ | ✔ |
| 言語 | コンテナーレス | Spring Boot 2.x | Karaf | JBoss EAP |
|---|---|---|---|---|
| Bean メソッド | ✔ | ✔ | ✔ | ✔ |
| Constant | ✔ | ✔ | ✔ | ✔ |
| EL | 非推奨 | ❌ | ❌ | ❌ |
| ExchangeProperty | ✔ | ✔ | ✔ | ✔ |
| File | ✔ | ✔ | ✔ | ✔ |
| Groovy | ✔ | ✔ | ✔ | ✔ |
| Header | ✔ | ✔ | ✔ | ✔ |
| JsonPath | ✔ | ✔ | ✔ | ✔ |
| JXPath | 非推奨 | ❌ | ❌ | ❌ |
| MVEL | ✔ | ✔ | ✔ | ✔ |
| OGNL | ✔ | ✔ | ✔ | ✔ |
| PHP | 非推奨 | 非推奨 | ❌ | 非推奨 |
| Python | 非推奨 | 非推奨 | ❌ | 非推奨 |
| Ref | ✔ | ✔ | ✔ | ✔ |
| Ruby | 非推奨 | 非推奨 | ❌ | 非推奨 |
| Simple | ✔ | ✔ | ✔ | ✔ |
| SpEL | ✔ | ✔ | ❌ | ✔ |
| Tokenize | ✔ | ✔ | ✔ | ✔ |
| XML トークン化 | ✔ | ✔ | ✔ | ✔ |
| XPath | ✔ | ✔ | ✔ | ✔ |
| XQuery | ✔ | ✔ | ✔ | ✔ |
第2章 ActiveMQ リンクのコピーリンクがクリップボードにコピーされました!
ActiveMQ コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ActiveMQ コンポーネントを使用すると、メッセージを JMS キューまたはトピックに送信するか、Apache ActiveMQ を使用して JMS キューまたはトピックからメッセージを消費できます。
このコンポーネントは、178章JMS コンポーネント をベースにしており、Spring の JMS サポートを宣言型トランザクションに、また Spring の JmsTemplate を送信に、MessageListenerContainer を消費に使用します。178章JMS コンポーネント のコンポーネントのオプションはすべて、このコンポーネントに該当します。
このコンポーネントを使用するには、クラスパスに activemq.jar または activemq-core.jar があり、camel-core.jar、camel-spring.jar、camel-jms.jar などの Apache Camel 依存関係があることを確認してください。
JMS でトランザクションを使用している場合は、パフォーマンスに影響を与える可能性があるため、JMS ページの下の トランザクションとキャッシュレベル セクションを参照してください。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
activemq:[queue:|topic:]destinationName
activemq:[queue:|topic:]destinationName
ここでは、destinationName は ActiveMQ キューまたはトピック名に置き換えます。デフォルトでは、destinationName はキュー名として解釈されます。たとえば、キューに接続するには、FOO.BAR を次のように使用します。
activemq:FOO.BAR
activemq:FOO.BAR
必要に応じて、オプションの queue: 接頭辞を含めることができます。
activemq:queue:FOO.BAR
activemq:queue:FOO.BAR
トピックに接続するには、topic: 接頭辞を含める必要があります。たとえば、トピック Stocks.Prices に接続するには、次を使用します。
activemq:topic:Stocks.Prices
activemq:topic:Stocks.Prices
オプション リンクのコピーリンクがクリップボードにコピーされました!
これらのオプションはすべてこのオプションに該当するので、178章JMS コンポーネント コンポーネントのオプションを参照してください。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。
組み込みブローカーまたは外部ブローカーのいずれかで動作するように ActiveMQ Camel コンポーネントを設定できます。JBoss EAP コンテナーにブローカーを埋め込むには、EAP コンテナー設定ファイルで ActiveMQ リソースアダプターを設定します。詳細は、ActiveMQ リソースアダプターの設定 を参照してください。
接続ファクトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の テストケース は、ActiveMQ への接続に使用される brokerURL を指定しながら、activeMQComponent () メソッド を使用して ActiveMQComponent を CamelContext に追加する方法を示しています。
camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
Spring XML を使用した接続ファクトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のように、ActiveMQComponent で ActiveMQ ブローカー URL を設定できます。
接続プーリングの使用 リンクのコピーリンクがクリップボードにコピーされました!
Camel を使用して ActiveMQ ブローカーに送信する場合は、プールされた接続ファクトリーを使用して、JMS 接続、セッション、およびプロデューサーを効率的にプールするように処理することを推奨します。これは ActiveMQ Spring Support ページに記載されています。
Maven を使用して、Jencks AMQ プールを取得できます。
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.3.2</version>
</dependency>
次に、activemq コンポーネントを次のように設定します。
プールされた接続ファクトリーの init メソッドと destroy メソッドに注目してください。これは、接続プールが適切に開始および終了されるようにするために重要です。
PooledConnectionFactory は、同時に使用される最大 8 つの接続を含む接続プールを作成します。各接続は、多くのセッションで共有できます。接続ごとのセッションの最大数を設定するために使用できる maxActive という名前のオプションがあります。デフォルト値は 500 です。ActiveMQ 5.7 以降、このオプションはその目的をさらに反映するように名前が変更され、maxActiveSessionPerConnection という名前になりました。concurrentConsumers が maxConnections よりも高い値に設定されていることに注意してください。各コンシューマーがセッションを使用していて、セッションが同じ接続を共有できるので、これは問題ありません。この例では、同時に 8 * 500 = 4000 のアクティブなセッションを指定できます。
ルートでの MessageListener POJO の呼び出し リンクのコピーリンクがクリップボードにコピーされました!
ActiveMQ コンポーネントは、JMS MessageListener から Processor へのヘルパー Type Converter も提供します。これは、43章Bean コンポーネント コンポーネントは、任意のルート内で任意の JMS MessageListener Bean を直接呼び出すことができます。
たとえば、次のように JMS で MessageListener を作成できます。
public class MyListener implements MessageListener {
public void onMessage(Message jmsMessage) {
// ...
}
}
public class MyListener implements MessageListener {
public void onMessage(Message jmsMessage) {
// ...
}
}
次に、以下のようにルートで使用します。
from("file://foo/bar").
bean(MyListener.class);
from("file://foo/bar").
bean(MyListener.class);
つまり、任意の Apache Camel コンポーネントを再利用して、それらを JMS MessageListener POJO に簡単に統合できます。
ActiveMQ 宛先オプションの使用 リンクのコピーリンクがクリップボードにコピーされました!
ActiveMQ 5.6 以降で利用可能
"destination." の接頭辞を使用して、エンドポイント uri で 宛先オプション を設定できます。たとえば、コンシューマーを排他的とマークし、そのプリフェッチサイズを 50 に設定するには、次のようにします。
アドバイザリーメッセージの使用 リンクのコピーリンクがクリップボードにコピーされました!
ActiveMQ は、消費可能なトピックに配置される アドバイザリーメッセージ を生成できます。このようなメッセージは、遅いコンシューマーを検出した場合にアラートを送信したり、統計 (1 日に生成されるメッセージの数など) を作成したりするのに役立ちます。 次の Spring DSL の例は、トピックからメッセージを読み取る方法を示しています。
キューでメッセージを消費すると、data/activemq フォルダーの下に次のファイルが表示されます。
advisoryConnection-20100312.txt advisoryProducer-20100312.txt
および含まれる文字列:
コンポーネント JAR の取得 リンクのコピーリンクがクリップボードにコピーされました!
以下の依存関係が必要です。
-
activemq-camel
ActiveMQ は、ActiveMQ プロジェクト でリリースされた 178章JMS コンポーネント コンポーネントの拡張です。
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-camel</artifactId> <version>5.6.0</version> </dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-camel</artifactId>
<version>5.6.0</version>
</dependency>
第3章 AHC コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.8 以降で利用可能
ahc: コンポーネントは、外部 HTTP リソースを消費するための HTTP ベースのエンドポイントを提供します (HTTP を使用して外部サーバーを呼び出すクライアントとして)。
このコンポーネントは Async Http Client ライブラリーを使用します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
3.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ahc:http://hostname[:port][/resourceUri][?options] ahc:https://hostname[:port][/resourceUri][?options]
ahc:http://hostname[:port][/resourceUri][?options]
ahc:https://hostname[:port][/resourceUri][?options]
デフォルトでは、HTTP にはポート 80、HTTPS には 443 を使用します。
URI には、?option=value&option=value&… の形式でクエリーオプションを追加できます。
3.2. AhcEndpoint オプション リンクのコピーリンクがクリップボードにコピーされました!
AHC エンドポイントは、URI 構文を使用して設定されます。
ahc:httpUri
ahc:httpUri
パスおよびクエリーパラメーターを使用します。
3.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| httpUri | 必須 使用する URI (例: http://hostname:port/path) | URI |
3.2.2. クエリーパラメーター (13 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bridgeEndpoint (producer) | オプションが true の場合、Exchange.HTTP_URI ヘッダーは無視され、エンドポイントの URI を要求に使用します。また、throwExceptionOnFailure を false に設定して、AhcProducer がすべての障害応答を送り返すようにすることもできます。 | false | boolean |
| bufferSize (producer) | Camel と AHC クライアントの間でデータを転送するときに使用される初期メモリー内バッファーサイズ。 | 4096 | int |
| connectionClose (producer) | Connection Close ヘッダーを HTTP 要求に追加する必要があるかどうかを定義します。このパラメーターはデフォルトで false です)。 | false | boolean |
| cookieHandler (producer) | HTTP セッションを維持するようにクッキーハンドラーを設定します。 | CookieHandler | |
| headerFilterStrategy (producer) | カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。 | HeaderFilterStrategy | |
| throwExceptionOnFailure (producer) | リモートサーバーからの応答が失敗した場合に AhcOperationFailedException の出力を無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。 | true | boolean |
| transferException (producer) | 有効にすると、エクスチェンジがコンシューマー側で処理に失敗し、発生した例外が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合に、例外がシリアライズされました (例: Jetty または Servlet Camel のコンポーネント)。プロデューサ側では、AhcOperationFailedException の代わりに、例外がデシリアライズされ、そのまま出力されます。原因となった例外はシリアライズする必要があります。これは、デフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | boolean |
| binding (advanced) | AHC と Camel 間のバインド方法を制御できるカスタム AhcBinding を使用します。 | AhcBinding | |
| clientConfig (advanced) | カスタム com.ning.http.client.AsyncHttpClientConfig インスタンスを使用するように AsyncHttpClient を設定するには。 | AsyncHttpClientConfig | |
| clientConfigOptions (advanced) | マップのキー/値を使用して AsyncHttpClientConfig を設定します。 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| clientConfigRealmOptions (security) | マップのキー/値を使用して AsyncHttpClientConfig レルムを設定します。 | Map | |
| sslContextParameters (security) | レジストリー内の org.apache.camel.util.jsse.SSLContextParameters への参照。この参照は、設定されている SSLContextParameters をコンポーネントレベルでオーバーライドします。JSSE 設定ユーティリティーの使用を参照してください。このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションが上書きされることに注意してください。 | SSLContextParameters |
3.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、以下に示す 9 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.ahc.allow-java-serialized-object | リクエストが context-type=application/x-java-serialized-object を使用するときに Java シリアライゼーションを許可するかどうか。これはデフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | Boolean |
| camel.component.ahc.binding | AHC と Camel 間のバインド方法を制御できるカスタム AhcBinding を使用します。オプションは org.apache.camel.component.ahc.AhcBinding タイプです。 | String | |
| camel.component.ahc.client | カスタム AsyncHttpClient を使用するには。オプションは org.asynchttpclient です。AsyncHttpClient タイプ。 | String | |
| camel.component.ahc.client-config | カスタム com.ning.http.client.AsyncHttpClientConfig インスタンスを使用するように AsyncHttpClient を設定するには。オプションは org.asynchttpclient.AsyncHttpClientConfig タイプです。 | String | |
| camel.component.ahc.enabled | ahc コンポーネントを有効にします。 | true | Boolean |
| camel.component.ahc.header-filter-strategy | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。このオプションは org.apache.camel.spi.HeaderFilterStrategy タイプです。 | String | |
| camel.component.ahc.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.ahc.ssl-context-parameters | レジストリー内の org.apache.camel.util.jsse.SSLContextParameters への参照。このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションが上書きされることに注意してください。このオプションは org.apache.camel.util.jsse.SSLContextParameters タイプです。 | String | |
| camel.component.ahc.use-global-ssl-context-parameters | グローバル SSL コンテキストパラメーターの使用を有効にします。 | false | Boolean |
3.4. AhcComponent オプション リンクのコピーリンクがクリップボードにコピーされました!
AHC コンポーネントは、以下に示す 8 つのオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| client (advanced) | カスタム AsyncHttpClient を使用します。 | AsyncHttpClient | |
| binding (advanced) | AHC と Camel 間のバインド方法を制御できるカスタム AhcBinding を使用します。 | AhcBinding | |
| clientConfig (advanced) | カスタム com.ning.http.client.AsyncHttpClientConfig インスタンスを使用するように AsyncHttpClient を設定するには。 | AsyncHttpClientConfig | |
| sslContextParameters (security) | レジストリー内の org.apache.camel.util.jsse.SSLContextParameters への参照。このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションが上書きされることに注意してください。 | SSLContextParameters | |
| allowJavaSerialized Object (advanced) | リクエストが context-type=application/x-java-serialized-object を使用するときに Java シリアライゼーションを許可するかどうか。これはデフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | boolean |
| useGlobalSslContext Parameters (security) | グローバル SSL コンテキストパラメーターの使用を有効にします。 | false | boolean |
| headerFilterStrategy (filter) | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。 | HeaderFilterStrategy | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AhcComponent に任意のオプションを設定すると、それらのオプションが作成中の AhcEndpoints に伝播されることに注意してください。ただし、AhcEndpoint はカスタムオプションを設定/オーバーライドすることもできます。エンドポイントに設定されたオプションは、常に AhcComponent のオプションよりも優先されます。
3.5. メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
| 呼び出す URI。エンドポイントで直接設定された既存の URI をオーバーライドします。 |
|
|
|
リクエスト URI のパス。ヘッダーは、HTTP_URI でリクエスト URI を構築するために使用されます。パスが / で始まる場合には、http プロデューサーは Exchange.HTTP_BASE_URI ヘッダーまたは |
|
|
| Camel 2.11 以降: URI パラメーター。エンドポイントに直接設定された既存の URI パラメーターをオーバーライドします。 |
|
|
| 外部サーバーからの HTTP 応答コード。OK の場合は 200 です。 |
|
|
| 文字エンコーディング。 |
|
|
|
HTTP コンテンツタイプ。 |
|
|
|
HTTP コンテンツエンコーディング。 |
3.6. メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
Camel は、外部サーバーからの HTTP レスポンスを OUT ボディに保存します。IN メッセージのすべてのヘッダーが OUT メッセージにコピーされるため、ヘッダーはルーティング中に保持されます。さらに、Camel は HTTP 応答ヘッダーも OUT メッセージヘッダーに追加します。
3.7. レスポンスコード リンクのコピーリンクがクリップボードにコピーされました!
Camel は HTTP 応答コードに従って処理します。
- 応答コードは 100..299 の範囲で、Camel はそれを成功応答と見なします。
-
応答コードは 300..399 の範囲にあり、Camel はこれをリダイレクト応答と見なし、情報とともに
AhcOperationFailedExceptionを出力します。 応答コードが 400+ の場合に、Camel はこれを外部サーバーの障害と見なし、情報とともに
AhcOperationFailedExceptionを出力します。throwExceptionOnFailure
オプション
throwExceptionOnFailureをfalseに設定して、失敗した応答コードに対してAhcOperationFailedExceptionが出力されないようにすることができます。これにより、リモートサーバーからの応答を取得できます。
3.8. AhcOperationFailedException リンクのコピーリンクがクリップボードにコピーされました!
この例外には、次の情報が含まれています。
- HTTP ステータスコード
- HTTP ステータス行 (ステータスコードのテキスト)
- サーバーがリダイレクトを返した場合は、ロケーションをリダイレクトします
-
サーバーがレスポンスとして本文を提供した場合、
java.lang.Stringとしてのレスポンス本文
3.9. GET または POST を使用した呼び出し リンクのコピーリンクがクリップボードにコピーされました!
次のアルゴリズムを使用して、GET または POST HTTP メソッドを使用するかどうかを決定します。
1.ヘッダーで指定するメソッドを使用します。
2.ヘッダーにクエリー文字列が指定されている場合は GET。
3.エンドポイントがクエリー文字列で設定されている場合は GET。
4.送信するデータがある場合は POST (本文が null ではない)。
5.それ以外の場合は GET。
3.10. 呼び出す URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
HTTP プロデューサーの URI は、エンドポイント URI から直接設定できます。以下のルートでは、Camel は HTTP を使用して外部サーバー oldhost を呼び出します。
from("direct:start")
.to("ahc:http://oldhost");
from("direct:start")
.to("ahc:http://oldhost");
同等の Spring の例:
メッセージにキー Exchange.HTTP_URI を含むヘッダーを追加することで、HTTP エンドポイント URI をオーバーライドできます。
from("direct:start")
.setHeader(Exchange.HTTP_URI, constant("http://newhost"))
.to("ahc:http://oldhost");
from("direct:start")
.setHeader(Exchange.HTTP_URI, constant("http://newhost"))
.to("ahc:http://oldhost");
3.11. URI パラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ahc プロデューサーは、HTTP サーバーに送信される URI パラメーターをサポートしています。URI パラメーターは、エンドポイント URI に直接設定するか、メッセージのキー Exchange.HTTP_QUERY を含むヘッダーとして設定できます。
from("direct:start")
.to("ahc:http://oldhost?order=123&detail=short");
from("direct:start")
.to("ahc:http://oldhost?order=123&detail=short");
または、ヘッダーで提供されるオプション:
from("direct:start")
.setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
.to("ahc:http://oldhost");
from("direct:start")
.setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
.to("ahc:http://oldhost");
3.12. HTTP プロデューサーに http メソッドを設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
HTTP コンポーネントは、メッセージヘッダーを設定することにより、HTTP 要求メソッドを設定する方法を提供します。以下に例を示します。
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.to("ahc:http://www.google.com")
.to("mock:results");
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.to("ahc:http://www.google.com")
.to("mock:results");
同等の Spring の例:
3.13. 文字セットの設定 リンクのコピーリンクがクリップボードにコピーされました!
POST を使用してデータを送信している場合は、Exchange プロパティーを使用して charset を設定できます。
exchange.setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
exchange.setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
3.13.1. エンドポイント URI からの URI パラメーター リンクのコピーリンクがクリップボードにコピーされました!
このサンプルには、Web ブラウザーに入力したものとまったく同じ完全な URI エンドポイントがあります。もちろん、Web ブラウザーと同じように & 文字を区切り文字として使用して、複数の URI パラメーターを設定できます。Camel はここでトリックを行いません。
// we query for Camel at the Google page
template.sendBody("ahc:http://www.google.com/search?q=Camel", null);
// we query for Camel at the Google page
template.sendBody("ahc:http://www.google.com/search?q=Camel", null);
3.13.2. メッセージからの URI パラメーター リンクのコピーリンクがクリップボードにコピーされました!
Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("ahc:http://www.google.com/search", null, headers);
Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("ahc:http://www.google.com/search", null, headers);
上記のヘッダー値では、? を接頭辞として付けるべきでは ない ことに注意してください。& 文字を使用して、通常どおりパラメーターを区切ることができます。
3.13.3. 応答コードの取得 リンクのコピーリンクがクリップボードにコピーされました!
Exchange.HTTP_RESPONSE_CODE を使用して Out メッセージヘッダーから値を取得して、AHC コンポーネントから HTTP 応答コードを取得できます。
3.14. AsyncHttpClient の設定 リンクのコピーリンクがクリップボードにコピーされました!
AsyncHttpClient クライアントは、AsyncHttpClientConfig を使用してクライアントを設定します。
のドキュメントを参照してください。詳細は 非同期 HTTP クライアント を参照してください。
Camel 2.8 では、設定は AsyncHttpClientConfig.Builder によって提供されるビルダーパターンの使用に制限されています。Camel 2.8 では、AsyncHttpClientConfig は getter/setter をサポートしていないため、Spring Bean スタイル (XML ファイルの <bean> タグなど) を使用して作成/設定するのは簡単ではありません。
以下の例は、ビルダーを使用して、AhcComponent で設定する AsyncHttpClientConfig を作成する方法を示しています。
Camel 2.9 では、AHC コンポーネントは Async HTTP ライブラリー 1.6.4 を使用します。今回の新しいバージョンでは、プレーン Bean スタイルの設定のサポートが追加されています。AsyncHttpClientConfigBean クラスは、AsyncHttpClientConfig で使用可能な設定オプションの getter と setter を提供します。AsyncHttpClientConfigBean のインスタンスは、AHC コンポーネントに直接渡すか、clientConfig URI パラメーターを使用してエンドポイント URI で参照できます。
また、Camel 2.9 では、設定オプションを URI で直接設定する機能も利用できます。clientConfig で始まる URI パラメーター。AsyncHttpClientConfig のさまざまな設定可能なプロパティーを設定するために使用できます。エンドポイント URI で指定されたプロパティーは、clientConfig URI パラメーターで参照される設定で指定されたプロパティーとマージされますが、"clientConfig." パラメーターを使用して設定されたプロパティーが優先されます。参照される AsyncHttpClientConfig インスタンスは、エンドポイントごとに常にコピーされるため、1 つのエンドポイントの設定は、以前に作成されたエンドポイントの設定とは無関係のままになります。次の例は、"clientConfig." タイプの URI を使用して AHC コンポーネントを設定する方法を示しています。URI パラメーターを入力します。
from("direct:start")
.to("ahc:http://localhost:8080/foo?clientConfig.maxRequestRetry=3&clientConfig.followRedirects=true")
from("direct:start")
.to("ahc:http://localhost:8080/foo?clientConfig.maxRequestRetry=3&clientConfig.followRedirects=true")
3.15. SSL サポート (HTTPS) リンクのコピーリンクがクリップボードにコピーされました!
JSSE 設定ユーティリティーの使用
Camel 2.9 の時点で、AHC コンポーネントは Camel JSSE Configuration Utility を介した SSL/TLS 設定をサポートしています。 このユーティリティーは、記述する必要があるコンポーネント固有のコードの量を大幅に削減し、エンドポイントおよびコンポーネントレベルで設定できます。 次の例は、AHC コンポーネントでユーティリティーを使用する方法を示しています。
コンポーネントのプログラムによる設定
エンドポイントの Spring DSL ベースの設定
3.16. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第4章 AHC Websocket コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.14 以降で利用可能
ahc-ws コンポーネントは、Websocket を介して外部サーバーと通信するクライアントに、(外部サーバーへの Websocket 接続を開くクライアントとして) Websocket ベースのエンドポイントを提供します。
このコンポーネントは Async Http Client ライブラリーを使用する AHC コンポーネントを使用します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
4.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
ahc-ws://hostname[:port][/resourceUri][?options] ahc-wss://hostname[:port][/resourceUri][?options]
ahc-ws://hostname[:port][/resourceUri][?options]
ahc-wss://hostname[:port][/resourceUri][?options]
デフォルトでは、ahc-ws にはポート 80 を使用し、ahc-wss には 443 を使用します。
4.2. AHC-WS オプション リンクのコピーリンクがクリップボードにコピーされました!
AHC-WS コンポーネントは AHC コンポーネントに基づいているため、AHC コンポーネントのさまざまな設定オプションを使用できます。
AHC Websocket コンポーネントは、以下に示す 8 つのオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| client (advanced) | カスタム AsyncHttpClient を使用します。 | AsyncHttpClient | |
| binding (advanced) | AHC と Camel 間のバインド方法を制御できるカスタム AhcBinding を使用します。 | AhcBinding | |
| clientConfig (advanced) | カスタム com.ning.http.client.AsyncHttpClientConfig インスタンスを使用するように AsyncHttpClient を設定するには。 | AsyncHttpClientConfig | |
| sslContextParameters (security) | レジストリー内の org.apache.camel.util.jsse.SSLContextParameters への参照。このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションが上書きされることに注意してください。 | SSLContextParameters | |
| allowJavaSerialized Object (advanced) | リクエストが context-type=application/x-java-serialized-object を使用するときに Java シリアライゼーションを許可するかどうか。これはデフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | boolean |
| useGlobalSslContext Parameters (security) | グローバル SSL コンテキストパラメーターの使用を有効にします。 | false | boolean |
| headerFilterStrategy (filter) | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。 | HeaderFilterStrategy | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AHC Websocket エンドポイントは、URI 構文を使用して設定されます。
ahc-ws:httpUri
ahc-ws:httpUri
パスおよびクエリーパラメーターを使用します。
4.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| httpUri | 必須 使用する URI (例: http://hostname:port/path) | URI |
4.2.2. クエリーパラメーター (18 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bridgeEndpoint (common) | オプションが true の場合、Exchange.HTTP_URI ヘッダーは無視され、エンドポイントの URI を要求に使用します。また、throwExceptionOnFailure を false に設定して、AhcProducer がすべての障害応答を送り返すようにすることもできます。 | false | boolean |
| bufferSize (common) | Camel と AHC クライアントの間でデータを転送するときに使用される初期メモリー内バッファーサイズ。 | 4096 | int |
| headerFilterStrategy (common) | カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。 | HeaderFilterStrategy | |
| throwExceptionOnFailure (common) | リモートサーバーからの応答が失敗した場合に AhcOperationFailedException の出力を無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。 | true | boolean |
| transferException (common) | 有効にすると、エクスチェンジがコンシューマー側で処理に失敗し、発生した例外が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合に、例外がシリアライズされました (例: Jetty または Servlet Camel のコンポーネント)。プロデューサ側では、AhcOperationFailedException の代わりに、例外がデシリアライズされ、そのまま出力されます。原因となった例外はシリアライズする必要があります。これは、デフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | boolean |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| sendMessageOnError (consumer) | Web ソケットリスナーがエラーを受信した場合にメッセージを送信するかどうか。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| connectionClose (producer) | Connection Close ヘッダーを HTTP 要求に追加する必要があるかどうかを定義します。このパラメーターはデフォルトで false です)。 | false | boolean |
| cookieHandler (producer) | HTTP セッションを維持するようにクッキーハンドラーを設定します。 | CookieHandler | |
| useStreaming (producer) | ストリーミングを有効にして、データを複数のテキストフラグメントとして送信します。 | false | boolean |
| binding (advanced) | AHC と Camel 間のバインド方法を制御できるカスタム AhcBinding を使用します。 | AhcBinding | |
| clientConfig (advanced) | カスタム com.ning.http.client.AsyncHttpClientConfig インスタンスを使用するように AsyncHttpClient を設定するには。 | AsyncHttpClientConfig | |
| clientConfigOptions (advanced) | マップのキー/値を使用して AsyncHttpClientConfig を設定します。 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| clientConfigRealmOptions (security) | マップのキー/値を使用して AsyncHttpClientConfig レルムを設定します。 | Map | |
| sslContextParameters (security) | レジストリー内の org.apache.camel.util.jsse.SSLContextParameters への参照。この参照は、設定されている SSLContextParameters をコンポーネントレベルでオーバーライドします。JSSE 設定ユーティリティーの使用を参照してください。このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションが上書きされることに注意してください。 | SSLContextParameters |
4.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、以下に示す 9 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.ahc-ws.allow-java-serialized-object | リクエストが context-type=application/x-java-serialized-object を使用するときに Java シリアライゼーションを許可するかどうか。これはデフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | Boolean |
| camel.component.ahc-ws.binding | AHC と Camel 間のバインド方法を制御できるカスタム AhcBinding を使用します。オプションは org.apache.camel.component.ahc.AhcBinding タイプです。 | String | |
| camel.component.ahc-ws.client | カスタム AsyncHttpClient を使用するには。オプションは org.asynchttpclient です。AsyncHttpClient タイプ。 | String | |
| camel.component.ahc-ws.client-config | カスタム com.ning.http.client.AsyncHttpClientConfig インスタンスを使用するように AsyncHttpClient を設定するには。オプションは org.asynchttpclient.AsyncHttpClientConfig タイプです。 | String | |
| camel.component.ahc-ws.enabled | ahc-ws コンポーネントを有効にします。 | true | Boolean |
| camel.component.ahc-ws.header-filter-strategy | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。このオプションは org.apache.camel.spi.HeaderFilterStrategy タイプです。 | String | |
| camel.component.ahc-ws.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.ahc-ws.ssl-context-parameters | レジストリー内の org.apache.camel.util.jsse.SSLContextParameters への参照。このオプションを設定すると、エンドポイントまたはコンポーネントレベルで clientConfig オプションを介して提供される SSL/TLS 設定オプションが上書きされることに注意してください。このオプションは org.apache.camel.util.jsse.SSLContextParameters タイプです。 | String | |
| camel.component.ahc-ws.use-global-ssl-context-parameters | グローバル SSL コンテキストパラメーターの使用を有効にします。 | false | Boolean |
4.4. Websocket を介したデータの書き込みと読み取り リンクのコピーリンクがクリップボードにコピーされました!
ahc-ws エンドポイントは、エンドポイントがそれぞれプロデューサーまたはコンシューマーとして設定されているかどうかに応じて、ソケットにデータを書き込むか、ソケットから読み取ることができます。
4.5. データの書き込みまたは読み取りのための URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下のルートでは、Camel は指定された websocket 接続に書き込みます。
from("direct:start")
.to("ahc-ws://targethost");
from("direct:start")
.to("ahc-ws://targethost");
同等の Spring の例:
以下のルートでは、Camel は指定された websocket 接続から読み取ります。
from("ahc-ws://targethost")
.to("direct:next");
from("ahc-ws://targethost")
.to("direct:next");
同等の Spring の例:
4.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AHC
- Atmosphere-Websocket
第5章 AMQP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 1.2 以降で利用可能
amqp: コンポーネントは、Qpid プロジェクトの JMS クライアント API を使用して AMQP 1.0 プロトコル をサポートします。AMQP 0.9 (特に RabbitMQ) を使用する場合は、Camel RabbitMQ コンポーネントにも関心があるかもしれません。Camel 2.17.0 より前の AMQP コンポーネントは AMQP 0.9 以降をサポートしていましたが、Camel 2.17.0 以降は AMQP 1.0 のみをサポートしていることに注意してください。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-amqp</artifactId>
<version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-amqp</artifactId>
<version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>
5.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
amqp:[queue:|topic:]destinationName[?options]
amqp:[queue:|topic:]destinationName[?options]
5.2. AMQP オプション リンクのコピーリンクがクリップボードにコピーされました!
宛先名の後に、JMS コンポーネントのさまざまな設定オプションをすべて指定できます。
AMQP コンポーネントは、以下に示す 81 のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | 共有 JMS 設定を使用します。 | JmsConfiguration | |
| acceptMessagesWhile Stopping (consumer) | コンシューマーが停止中にメッセージを受け入れるかどうかを指定します。実行時に JMS ルートを開始および停止するが、キューにメッセージが入れられている場合は、このオプションを有効にすることを検討してください。このオプションが false の場合は、JMS ルートを停止すると、メッセージが拒否される可能性があり、JMS ブローカは再配信を試行する必要がありますが、これも拒否される可能性があり、最終的にメッセージはJMS ブローカー上のデッドレターキューに移動される可能性があります。これを回避するには、このオプションを有効にすることをお勧めします。 | false | boolean |
| allowReplyManagerQuick Stop (consumer) | JmsConfiguration#isAcceptMessagesWhileStopping が有効で、org.apache.camel.CamelContext が現在停止している場合に、要求/応答メッセージングのリプライマネージャーで使用される DefaultMessageListenerContainer が、DefaultMessageListenerContainer.runningAllowed フラグを迅速に停止できるようにするかどうか。このクイック停止機能は、通常の JMS コンシューマーではデフォルトで有効になっていますが、応答マネージャーを有効にするには、このフラグを有効にする必要があります。 | false | boolean |
| acknowledgementMode (consumer) | 整数として定義された JMS 確認応答モード。確認モードにベンダー固有の拡張を設定できます。通常のモードでは、代わりに acknowledgementModeName を使用することをお勧めします。 | int | |
| eagerLoadingOf Properties (consumer) | メッセージが読み込まれるとすぐに JMS プロパティーの先行読み込みを有効にします。これは、JMS プロパティーが必要ない場合があるため一般的に非効率的ですが、基盤となる JMS プロバイダーと JMS プロパティーの使用に関する問題を早期に発見できる場合があります。 | false | boolean |
| acknowledgementModeName (consumer) | JMS 確認応答名。SESSION_TRANSACTED、CLIENT_ACKNOWLEDGE、AUTO_ACKNOWLEDGE、DUPS_OK_ACKNOWLEDGE のいずれかです。 | AUTO_ ACKNOWLEDGE | String |
| autoStartup (consumer) | コンシューマーコンテナーを自動起動するかどうかを指定します。 | true | boolean |
| cacheLevel (consumer) | 基礎となる JMS リソースの ID によってキャッシュレベルを設定します。詳細は、cacheLevelName オプションを参照してください。 | int | |
| cacheLevelName (consumer) | 基礎となる JMS リソースのキャッシュレベルを名前で設定します。可能な値は、CACHE_AUTO、CACHE_CONNECTION、CACHE_CONSUMER、CACHE_NONE、および CACHE_SESSION です。デフォルト設定は CACHE_AUTO です。詳細は、Spring のドキュメントとトランザクションキャッシュレベルを参照してください。 | CACHE_AUTO | String |
| replyToCacheLevelName (producer) | JMS を介して要求/応答を行うときに、応答コンシューマーのキャッシュレベルを名前で設定します。このオプションは、固定応答キュー (一時的ではない) を使用する場合にのみ適用されます。Camel はデフォルトで次を使用します: 排他的または replyToSelectorName と共有の CACHE_CONSUMER。そして、replyToSelectorName なしで共有するための CACHE_SESSION。IBM WebSphere などの一部の JMS ブローカーは、replyToCacheLevelName=CACHE_NONE を機能させるために設定する必要がある場合があります。注: 一時キューを使用する場合、CACHE_NONE は許可されず、CACHE_CONSUMER や CACHE_SESSION などのより高い値を使用する必要があります。 | String | |
| clientId (common) | 使用する JMS クライアント ID を設定します。この値を指定する場合は、一意である必要があり、単一の JMS 接続インスタンスでのみ使用できることに注意してください。通常、永続的なトピックサブスクリプションの場合にのみ必要です。Apache ActiveMQ を使用している場合は、代わりに仮想トピックを使用することをお勧めします。 | String | |
| concurrentConsumers (consumer) | JMS から消費する場合の同時コンシューマーのデフォルト数を指定します (JMS を介した要求/応答ではありません)。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。JMS を介して要求/応答を行う場合は、オプション replyToConcurrentConsumers を使用して、応答メッセージリスナーの同時コンシューマーの数を制御します。 | 1 | int |
| replyToConcurrent Consumers (producer) | JMS を介して要求/応答を行うときの同時コンシューマーのデフォルト数を指定します。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。 | 1 | int |
| connectionFactory (common) | 使用する接続ファクトリー。コンポーネントまたはエンドポイントで接続ファクトリーを設定する必要があります。 | ConnectionFactory | |
| username (security) | ConnectionFactory で使用するユーザー名。また、ConnectionFactory でユーザー名およびパスワードを直接設定することもできます。 | String | |
| password (security) | ConnectionFactory で使用するパスワード。また、ConnectionFactory でユーザー名およびパスワードを直接設定することもできます。 | String | |
| deliveryPersistent (producer) | デフォルトで永続配信を使用するかどうかを指定します。 | true | boolean |
| deliveryMode (producer) | 使用する配信モードを指定します。可能な値は、javax.jms.DeliveryMode によって定義された値です。NON_PERSISTENT = 1 および PERSISTENT = 2。 | Integer | |
| durableSubscriptionName (common) | 永続トピックサブスクリプションを指定するための永続サブスクライバー名。clientId オプションも設定する必要があります。 | String | |
| exceptionListener (advanced) | 基礎となる JMS 例外の通知を受ける JMS 例外リスナーを指定します。 | ExceptionListener | |
| errorHandler (advanced) | Message の処理中にキャッチされない例外が出力された場合に呼び出される org.springframework.util.ErrorHandler を指定します。デフォルトでは、errorHandler が設定されていない場合、これらの例外は WARN レベルでログに記録されます。errorHandlerLoggingLevel および errorHandlerLogStackTrace オプションを使用して、ログレベルとスタックトレースをログに記録するかどうかを設定できます。これにより、カスタム errorHandler をコーディングするよりも設定がはるかに簡単になります。 | ErrorHandler | |
| errorHandlerLogging Level (ロギング) | キャッチされていない例外をログに記録するためのデフォルトの errorHandler ログレベルを設定できます。 | WARN | LoggingLevel |
| errorHandlerLogStack Trace (ロギング) | デフォルトの errorHandler でスタックトレースをログに記録するかどうかを制御できます。 | true | boolean |
| explicitQosEnabled (producer) | メッセージの送信時に、deliveryMode、priority、または timeToLive のサービス品質を使用する必要があるかどうかを設定します。このオプションは、Spring の JmsTemplate に基づいています。deliveryMode、priority、および timeToLive オプションは、現在のエンドポイントに適用されます。これは、メッセージの粒度で動作し、Camel In メッセージヘッダーから排他的に QoS プロパティーを読み取る preserveMessageQos オプションとは対照的です。 | false | boolean |
| exposeListenerSession (consumer) | メッセージを消費するときにリスナーセッションを公開するかどうかを指定します。 | false | boolean |
| idleTaskExecutionLimit (advanced) | 実行中にメッセージを受信していない、受信タスクのアイドル実行の制限を指定します。この制限に達すると、タスクはシャットダウンし、他の実行中のタスクに受信を任せます (動的スケジューリングの場合。maxConcurrentConsumers 設定を参照してください)。Spring から入手できる追加のドキュメントがあります。 | 1 | int |
| idleConsumerLimit (advanced) | 常にアイドル状態にできるコンシューマーの数の制限を指定します。 | 1 | int |
| maxConcurrentConsumers (consumer) | JMS から消費する場合の同時コンシューマーの最大数を指定します (JMS を介した要求/応答ではありません)。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。JMS を介して要求/応答を行う場合は、オプション replyToMaxConcurrentConsumers を使用して、応答メッセージリスナーの同時コンシューマーの数を制御します。 | int | |
| replyToMaxConcurrent Consumers (producer) | JMS を介した要求/応答を使用する場合の同時コンシューマーの最大数を指定します。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。 | int | |
| replyOnTimeoutToMax ConcurrentConsumers (producer) | JMS 経由の要求/応答を使用するときにタイムアウトが発生したときに、ルーティングを継続するための同時コンシューマーの最大数を指定します。 | 1 | int |
| maxMessagesPerTask (advanced) | タスクあたりのメッセージ数。-1 は無制限です。同時コンシューマーの範囲 (例: min max) を使用する場合、このオプションを使用して値を 100 などに設定し、必要な作業が少ない場合にコンシューマーが縮小する速度を制御できます。 | -1 | int |
| messageConverter (advanced) | カスタム Spring org.springframework.jms.support.converter.MessageConverter を使用して、javax.jms.Message との間でどのようにマッピングするかを制御できるようにします。 | MessageConverter | |
| mapJmsMessage (advanced) | Camel が受信した JMS メッセージを適切なペイロードタイプ (javax.jms.TextMessage を文字列など) に自動マップするかどうかを指定します。 | true | boolean |
| messageIdEnabled (advanced) | 送信時に、メッセージ ID を追加するかどうかを指定します。これは、JMS ブローカへの単なるヒントです。JMS プロバイダーがこのヒントを受け入れる場合には、これらのメッセージはメッセージ ID を null に設定する必要があります。プロバイダーがヒントを無視する場合には、メッセージ ID は通常の一意の値に設定する必要があります | true | boolean |
| messageTimestampEnabled (advanced) | メッセージの送信時にデフォルトでタイムスタンプを有効にするかどうかを指定します。これは、JMS ブローカへの単なるヒントです。JMS プロバイダーがこのヒントを受け入れる場合には、これらのメッセージのタイムスタンプはゼロに設定する必要があります。プロバイダーがヒントを無視する場合には、タイムスタンプを通常の値に設定する必要があります | true | boolean |
| alwaysCopyMessage (producer) | true の場合、メッセージがプロデューサーに渡されて送信されると、Camel は常にメッセージの JMS メッセージコピーを作成します。replyToDestinationSelectorName が設定されている場合など、状況によってはメッセージのコピーが必要です (また、replyToDestinationSelectorName が設定されている場合、Camel は alwaysCopyMessage オプションを true に設定します)。 | false | boolean |
| useMessageIDAs CorrelationID (advanced) | InOut メッセージの JMSCorrelationID として JMSMessageID を常に使用するかどうかを指定します。 | false | boolean |
| priority (producer) | 1 より大きい値は、送信時のメッセージの優先度を指定します (0 が最低の優先度で、9 が最高の優先度です)。このオプションを有効にするには、explicitQosEnabled オプションも有効にする必要があります。 | 4 | int |
| pubSubNoLocal (advanced) | 独自の接続によってパブリッシュされたメッセージの配信を禁止するかどうかを指定します。 | false | boolean |
| receiveTimeout (advanced) | メッセージ受信のタイムアウト (ミリ秒単位)。 | 1000 | long |
| recoveryInterval (advanced) | リカバリーの試行の間隔を指定します。つまり、接続が更新されるタイミング(ミリ秒単位)を指定します。デフォルトは 5000 ミリ秒、つまり 5 秒です。 | 5000 | long |
| taskExecutor (consumer) | メッセージを消費するためのカスタムタスクエグゼキュータを指定できます。 | TaskExecutor | |
| deliveryDelay (producer) | JMS の送信呼び出しに使用する配信遅延を設定します。このオプションには、JMS 2.0 準拠のブローカーが必要です。 | -1 | long |
| timeToLive (producer) | メッセージの送信時に、メッセージの有効期限をミリ秒単位で指定します。 | -1 | long |
| 取引済み (取引) | トランザクションモードを使用するかどうかを指定します | false | boolean |
| lazyCreateTransaction Manager (トランザクション) | true の場合、オプション transacted=true のときに transactionManager が挿入されていない場合、Camel は JmsTransactionManager を作成します。 | true | boolean |
| transactionManager (トランザクション) | 使用する Spring トランザクションマネージャー。 | PlatformTransaction Manager | |
| transactionName (トランザクション) | 使用するトランザクションの名前。 | String | |
| transactionTimeout (トランザクション) | トランザクションモードを使用している場合の、トランザクションのタイムアウト値 (秒単位)。 | -1 | int |
| testConnectionOn Startup (common) | 起動時に接続をテストするかどうかを指定します。これにより、Camel の起動時に、すべての JMS コンシューマーが JMS ブローカーへの有効な接続を持つことが保証されます。接続を許可できない場合、Camel は起動時に例外を出力します。これにより、接続に失敗した状態で Camel が開始されなくなります。JMS プロデューサーもテストされています。 | false | boolean |
| asyncStartListener (advanced) | ルートの開始時に JmsConsumer メッセージリスナーを非同期で開始するかどうか。たとえば、JmsConsumer がリモート JMS ブローカーへの接続を取得できない場合は、再試行中やフェイルオーバー中にブロックされる可能性があります。これにより、ルートの開始時に Camel がブロックされます。このオプションを true に設定すると、ルートの起動を許可します。一方、JmsConsumer は非同期モードで専用のスレッドを使用して JMS ブローカーに接続します。このオプションを使用する場合は、接続を確立できない場合は例外が WARN レベルでログに記録され、コンシューマーはメッセージを受信できず、ルートを再起動して再試行できます。 | false | boolean |
| asyncStopListener (advanced) | ルートを停止するときに、JmsConsumer メッセージリスナーを非同期的に停止するかどうか。 | false | boolean |
| forceSendOriginal Message (producer) | mapJmsMessage=false を使用すると、ルート中にヘッダーに触れると (get または set)、Camel は新しい JMS メッセージを作成して新しい JMS 宛先に送信します。Camel が受信した元の JMS メッセージを強制的に送信するには、このオプションを true に設定します。 | false | boolean |
| requestTimeout (producer) | InOut Exchange パターン使用時の応答待ちタイムアウト (ミリ秒単位)。デフォルトは 20 秒です。ヘッダー CamelJmsRequestTimeout を含めて、このエンドポイントで設定されたタイムアウト値をオーバーライドし、メッセージごとに個別のタイムアウト値を持つことができます。requestTimeoutCheckerInterval オプションも参照してください。 | 20000 | long |
| requestTimeoutChecker Interval (advanced) | JMS を介してリクエスト/リプライを行うときに、Camel がタイムアウトになった Exchange をチェックする頻度を設定します。デフォルトでは、Camel は 1 秒に 1 回確認します。ただし、タイムアウトが発生したときに迅速に対応する必要がある場合は、この間隔を短くして、より頻繁にチェックすることができます。タイムアウトは、オプション requestTimeout によって決定されます。 | 1000 | long |
| transferExchange (advanced) | 本文とヘッダーだけでなく、電信送金で交換を転送できます。次のフィールドが転送されます: In body、Out body、Fault body、In ヘッダー、Out ヘッダー、Fault ヘッダー、交換プロパティー、交換例外。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアル化できないオブジェクトを除外し、WARN レベルでログに記録します。プロデューサ側とコンシューマー側の両方でこのオプションを有効にする必要があるため、Camel はペイロードが Exchange であり、通常のペイロードではないことを認識します。 | false | boolean |
| transferException (advanced) | 有効で、Request Reply メッセージング (InOut) を使用していて、Exchange がコンシューマー側で失敗した場合、原因となった例外が javax.jms.ObjectMessage として応答で返されます。クライアントが Camel の場合、返された Exception は再出力されます。これにより、Camel JMS をルーティングのブリッジとして使用できます。たとえば、永続的なキューを使用して堅牢なルーティングを有効にできます。transferExchange も有効にしている場合は、このオプションが優先されることに注意してください。キャッチされた例外はシリアライズ可能である必要があります。コンシューマー側の元の Exception は、プロデューサーに返されるときに org.apache.camel.RuntimeCamelException などの外部例外にラップできます。 | false | boolean |
| transferFault (advanced) | これを有効にし、Request Reply メッセージング (InOut) を使用していて、Exchange がコンシューマー側で SOAP エラー (例外ではない) で失敗した場合には、Message#isFault() のエラーフラグが応答で、org.apache.camel.component.jms.JmsConstants#JMS_TRANSFER_FAULT#JMS_TRANSFER_FAULT のキーを含んだ JMS ヘッダーとして送り返されます。クライアントが Camel の場合には、返される障害フラグは org.apache.camel.Message#setFault (boolean) に設定されます。cxf や spring-ws などの SOAP ベースなどの障害をサポートする Camel コンポーネントを使用する場合、これを有効できます。 | false | boolean |
| jmsOperations (advanced) | org.springframework.jms.core.JmsOperations インターフェイスの独自の実装を使用できるようにします。Camel はデフォルトで JmsTemplate を使用します。テスト目的で使用できますが、Spring API ドキュメントに記載されているほどは使用されません。 | JmsOperations | |
| destinationResolver (advanced) | 独自のリゾルバーを使用できるようにするプラグ可能な org.springframework.jms.support.destination.DestinationResolver (たとえば、JNDI レジストリーで実際の宛先を検索するため)。 | DestinationResolver | |
| replyToType (producer) | JMS を介して要求/応答を行うときに、replyTo キューに使用する戦略の種類を明示的に指定できます。可能な値は、Temporary、Shared、または Exclusive です。デフォルトでは、Camel は一時キューを使用します。ただし、replyTo が設定されている場合は、デフォルトで Shared が使用されます。このオプションを使用すると、共有キューの代わりに専用キューを使用できます。詳細については、Camel JMS のドキュメントを参照してください。特に、クラスター化された環境で実行する場合の影響に関する注意事項と、共有応答キューは代替の一時および排他的キューよりもパフォーマンスが低いという事実を参照してください。 | ReplyToType | |
| preserveMessageQos (producer) | JMS エンドポイントの QoS 設定ではなく、メッセージで指定された QoS 設定を使用してメッセージを送信する場合は、true に設定します。次の 3 つのヘッダーは、JMSPriority、JMSDeliveryMode、および JMSExpiration と見なされます。それらのすべてまたは一部のみを指定できます。指定されていない場合、Camel は代わりにエンドポイントからの値を使用するようにフォールバックします。したがって、このオプションを使用すると、ヘッダーはエンドポイントからの値をオーバーライドします。対照的に、explicitQosEnabled オプションは、エンドポイントに設定されたオプションのみを使用し、メッセージヘッダーの値は使用しません。 | false | boolean |
| asyncConsumer (consumer) | JmsConsumer が Exchange を非同期的に処理するかどうか。有効にすると、JmsConsumer は JMS キューから次のメッセージを取得できますが、前のメッセージは (非同期ルーティングエンジンによって) 非同期に処理されます。これは、メッセージが 100% 厳密に順序どおりに処理されない可能性があることを意味します。無効になっている場合 (デフォルト)、JmsConsumer が JMS キューから次のメッセージを取得する前に Exchange が完全に処理されます。transactioned が有効になっている場合、トランザクションは同期的に実行する必要があるため、asyncConsumer=true は非同期的に実行されないことに注意してください (Camel 3.0 は非同期トランザクションをサポートする場合があります)。 | false | boolean |
| allowNullBody (producer) | ボディーのないメッセージの送信を許可するかどうか。このオプションが false でメッセージボディーが null の場合は、JMSException が出力されます。 | true | boolean |
| includeSentJMS MessageID (producer) | InOnly を使用して JMS 宛先に送信する場合にのみ適用されます (例: ファイアアンドフォーゲット)。このオプションを有効にすると、メッセージが JMS 宛先に送信されたときに JMS クライアントによって使用された実際の JMSMessageID で Camel Exchange が強化されます。 | false | boolean |
| includeAllJMSX Properties (advanced) | JMS から Camel Message へのマッピング時に JMSXxxx プロパティーをすべて含めるかどうか。これを true に設定すると、JMSXAppID や JMSXUserID などのプロパティーが含まれます。注記: カスタムの headerFilterStrategy を使用している場合、このオプションは適用されません。 | false | boolean |
| defaultTaskExecutor Type (consumer) | コンシューマーエンドポイントとプロデューサエンドポイントの ReplyTo コンシューマーの両方に対して、DefaultMessageListenerContainer で使用するデフォルトの TaskExecutor タイプを指定します。可能な値: SimpleAsync (Spring の SimpleAsyncTaskExecutor を使用) または ThreadPool (Spring の ThreadPoolTaskExecutor を最適な値で使用 - キャッシュされたスレッドプールのようなもの)。設定されていない場合は、デフォルトで以前の動作になり、コンシューマーエンドポイントにはキャッシュされたスレッドプールが使用され、応答コンシューマーには SimpleAsync が使用されます。ThreadPool の使用は、同時コンシューマーが動的に増減するエラスティック設定でスレッドのゴミを減らすために推奨されます。 | DefaultTaskExecutor Type | |
| jmsKeyFormatStrategy (advanced) | JMS 仕様に準拠できるように、JMS キーをエンコードおよびデコードするためのプラグ可能な戦略。Camel は、追加設定なしで、default と passthrough の 2 つの実装を提供します。デフォルトのストラテジーでは、ドットとハイフン(. および -)を安全にマーシャリングします。パススルー戦略では、キーはそのまま残ります。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、# 表記を使用して参照できます。 | JmsKeyFormatStrategy | |
| allowAdditionalHeaders (producer) | このオプションは、JMS 仕様に従って無効な値を持つ可能性がある追加のヘッダーを許可するために使用されます。たとえば、WMQ などの一部のメッセージシステムは、バイト配列またはその他の無効な型の値を含む接頭辞 JMS_IBM_MQMD_ を使用するヘッダー名でこれを行います。コンマで区切られた複数のヘッダー名を指定し、ワイルドカードマッチングの接尾辞として使用できます。 | String | |
| queueBrowseStrategy (advanced) | キューを参照するときにカスタム QueueBrowseStrategy を使用します。 | QueueBrowseStrategy | |
| messageCreatedStrategy (advanced) | Camel が JMS メッセージを送信しているときに、Camel が javax.jms.Message オブジェクトの新しいインスタンスを作成するときに呼び出される、指定された MessageCreatedStrategy を使用します。 | MessageCreatedStrategy | |
| waitForProvision CorrelationToBeUpdated Counter (advanced) | JMS を介して要求/応答を行う場合、およびオプション useMessageIDAsCorrelationID が有効な場合に、暫定相関 ID が実際の相関 ID に更新されるのを待機する回数。 | 50 | int |
| waitForProvision CorrelationToBeUpdated ThreadSleepingTime (advanced) | 暫定相関 ID が更新されるのを待機するたびにスリープする間隔 (ミリ単位)。 | 100 | long |
| correlationProperty (producer) | JMSCorrelationID プロパティーの代わりに、この JMS プロパティーを使用して、InOut 交換パターン (要求 - 応答) でメッセージを関連付けます。これにより、JMSCorrelationID JMS プロパティーを使用してメッセージと相関性のないシステムとメッセージを交換できます。JMSCorrelationID を使用すると、Camel によって使用または設定されません。ここで指定されたプロパティーの値は、同じ名前でメッセージのヘッダーに指定されていない場合に生成されます。 | String | |
| subscriptionDurable (consumer) | サブスクリプションを永続化するかどうかを設定します。使用する永続サブスクリプション名は、subscriptionName プロパティーで指定できます。デフォルトは false です。通常、subscriptionName 値と組み合わせて永続的なサブスクリプションを登録するには、これを true に設定します (メッセージリスナークラス名がサブスクリプション名として十分でない場合)。トピック (pub-sub ドメイン) をリッスンする場合にのみ意味があるため、このメソッドは pubSubDomain フラグも切り替えます。 | false | boolean |
| subscriptionShared (consumer) | サブスクリプションを共有するかどうかを設定します。使用する共有サブスクリプション名は、subscriptionName プロパティーで指定できます。デフォルトは false です。通常は subscriptionName 値と組み合わせて共有サブスクリプションを登録するには、これを true に設定します (メッセージリスナークラス名がサブスクリプション名として十分でない場合)。共有サブスクリプションも永続的である可能性があるため、このフラグを subscriptionDurable と組み合わせることもできます (多くの場合は組み合わせます)。トピック (pub-sub ドメイン) をリッスンする場合にのみ意味があるため、このメソッドは pubSubDomain フラグも切り替えます。JMS 2.0 互換のメッセージブローカーが必要です。 | false | boolean |
| subscriptionName (consumer) | 作成するサブスクリプションの名前を設定します。共有または永続的なサブスクリプションを持つトピック (pub-sub ドメイン) の場合に適用されます。サブスクリプション名は、このクライアントの JMS クライアント ID 内で一意である必要があります。デフォルトは、指定されたメッセージリスナーのクラス名です。注: 共有サブスクリプション (JMS 2.0 が必要) を除き、サブスクリプションごとに 1 つの同時コンシューマー (このメッセージリスナコンテナーのデフォルト) のみが許可されます。 | String | |
| streamMessageType Enabled (producer) | StreamMessage タイプを有効にするかどうかを設定します。ファイル、InputStream などのストリーミングの種類のメッセージペイロードは、BytesMessage または StreamMessage として送信されます。このオプションは、どの種類が使用されるかを制御します。デフォルトでは、BytesMessage が使用され、メッセージペイロード全体がメモリーに読み込まれます。このオプションを有効にすると、メッセージペイロードがチャンク単位でメモリーに読み込まれ、データがなくなるまで各チャンクが StreamMessage に書き込まれます。 | false | boolean |
| formatDateHeadersTo Iso8601 (producer) | 日付ヘッダーを ISO 8601 標準に従ってフォーマットするかどうかを設定します。 | false | boolean |
| headerFilterStrategy (filter) | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。 | HeaderFilterStrategy | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AMQP エンドポイントは、URI 構文を使用して設定されます。
amqp:destinationType:destinationName
amqp:destinationType:destinationName
パスおよびクエリーパラメーターを使用します。
5.2.1. パスパラメーター (2 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| destinationType | 使用する宛先の種類 | queue | String |
| destinationName | 必須 宛先として使用するキューまたはトピックの名前 | String |
5.2.2. クエリーパラメーター (92 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| clientId (common) | 使用する JMS クライアント ID を設定します。この値を指定する場合は、一意である必要があり、単一の JMS 接続インスタンスでのみ使用できることに注意してください。通常、永続的なトピックサブスクリプションの場合にのみ必要です。Apache ActiveMQ を使用している場合は、代わりに仮想トピックを使用することをお勧めします。 | String | |
| connectionFactory (common) | 使用する接続ファクトリー。コンポーネントまたはエンドポイントで接続ファクトリーを設定する必要があります。 | ConnectionFactory | |
| disableReplyTo (common) | Camel がメッセージの JMSReplyTo ヘッダーを無視するかどうかを指定します。true の場合、Camel は JMSReplyTo ヘッダーで指定された宛先に返信を送り返しません。Camel にルートから消費させたいが、コード内の別のコンポーネントが応答メッセージを処理するため、Camel に自動的に応答メッセージを送り返したくない場合は、このオプションを使用できます。Camel を異なるメッセージブローカー間のプロキシーとして使用し、あるシステムから別のシステムにメッセージをルーティングする場合にも、このオプションを使用できます。 | false | boolean |
| durableSubscriptionName (common) | 永続トピックサブスクリプションを指定するための永続サブスクライバー名。clientId オプションも設定する必要があります。 | String | |
| jmsMessageType (common) | JMS メッセージの送信に特定の javax.jms.Message 実装を強制的に使用できるようにします。可能な値は、Bytes、Map、Object、Stream、Text です。デフォルトでは、Camel は In body タイプから使用する JMS メッセージタイプを決定します。このオプションで指定できます。 | JmsMessageType | |
| testConnectionOnStartup (common) | 起動時に接続をテストするかどうかを指定します。これにより、Camel の起動時に、すべての JMS コンシューマーが JMS ブローカーへの有効な接続を持つことが保証されます。接続を許可できない場合、Camel は起動時に例外を出力します。これにより、接続に失敗した状態で Camel が開始されなくなります。JMS プロデューサーもテストされています。 | false | boolean |
| acknowledgementModeName (consumer) | JMS 確認応答名。SESSION_TRANSACTED、CLIENT_ACKNOWLEDGE、AUTO_ACKNOWLEDGE、DUPS_OK_ACKNOWLEDGE のいずれかです。 | AUTO_ ACKNOWLEDGE | String |
| asyncConsumer (consumer) | JmsConsumer が Exchange を非同期的に処理するかどうか。有効にすると、JmsConsumer は JMS キューから次のメッセージを取得できますが、前のメッセージは (非同期ルーティングエンジンによって) 非同期に処理されます。これは、メッセージが 100% 厳密に順序どおりに処理されない可能性があることを意味します。無効になっている場合 (デフォルト)、JmsConsumer が JMS キューから次のメッセージを取得する前に Exchange が完全に処理されます。transactioned が有効になっている場合、トランザクションは同期的に実行する必要があるため、asyncConsumer=true は非同期的に実行されないことに注意してください (Camel 3.0 は非同期トランザクションをサポートする場合があります)。 | false | boolean |
| autoStartup (consumer) | コンシューマーコンテナーを自動起動するかどうかを指定します。 | true | boolean |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| cacheLevel (consumer) | 基礎となる JMS リソースの ID によってキャッシュレベルを設定します。詳細は、cacheLevelName オプションを参照してください。 | int | |
| cacheLevelName (consumer) | 基礎となる JMS リソースのキャッシュレベルを名前で設定します。可能な値は、CACHE_AUTO、CACHE_CONNECTION、CACHE_CONSUMER、CACHE_NONE、および CACHE_SESSION です。デフォルト設定は CACHE_AUTO です。詳細は、Spring のドキュメントとトランザクションキャッシュレベルを参照してください。 | CACHE_AUTO | String |
| concurrentConsumers (consumer) | JMS から消費する場合の同時コンシューマーのデフォルト数を指定します (JMS を介した要求/応答ではありません)。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。JMS を介して要求/応答を行う場合は、オプション replyToConcurrentConsumers を使用して、応答メッセージリスナーの同時コンシューマーの数を制御します。 | 1 | int |
| maxConcurrentConsumers (consumer) | JMS から消費する場合の同時コンシューマーの最大数を指定します (JMS を介した要求/応答ではありません)。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。JMS を介して要求/応答を行う場合は、オプション replyToMaxConcurrentConsumers を使用して、応答メッセージリスナーの同時コンシューマーの数を制御します。 | int | |
| replyTo (consumer) | Message.getJMSReplyTo() の着信値をオーバーライドする明示的な ReplyTo 宛先を提供します。 | String | |
| replyToDeliveryPersistent (consumer) | 返信に対してデフォルトで永続的な配信を使用するかどうかを指定します。 | true | boolean |
| selector (consumer) | 使用する JMS セレクターを設定します。 | String | |
| subscriptionDurable (consumer) | サブスクリプションを永続化するかどうかを設定します。使用する永続サブスクリプション名は、subscriptionName プロパティーで指定できます。デフォルトは false です。通常、subscriptionName 値と組み合わせて永続的なサブスクリプションを登録するには、これを true に設定します (メッセージリスナークラス名がサブスクリプション名として十分でない場合)。トピック (pub-sub ドメイン) をリッスンする場合にのみ意味があるため、このメソッドは pubSubDomain フラグも切り替えます。 | false | boolean |
| subscriptionName (consumer) | 作成するサブスクリプションの名前を設定します。共有または永続的なサブスクリプションを持つトピック (pub-sub ドメイン) の場合に適用されます。サブスクリプション名は、このクライアントの JMS クライアント ID 内で一意である必要があります。デフォルトは、指定されたメッセージリスナーのクラス名です。注: 共有サブスクリプション (JMS 2.0 が必要) を除き、サブスクリプションごとに 1 つの同時コンシューマー (このメッセージリスナコンテナーのデフォルト) のみが許可されます。 | String | |
| subscriptionShared (consumer) | サブスクリプションを共有するかどうかを設定します。使用する共有サブスクリプション名は、subscriptionName プロパティーで指定できます。デフォルトは false です。通常は subscriptionName 値と組み合わせて共有サブスクリプションを登録するには、これを true に設定します (メッセージリスナークラス名がサブスクリプション名として十分でない場合)。共有サブスクリプションも永続的である可能性があるため、このフラグを subscriptionDurable と組み合わせることもできます (多くの場合は組み合わせます)。トピック (pub-sub ドメイン) をリッスンする場合にのみ意味があるため、このメソッドは pubSubDomain フラグも切り替えます。JMS 2.0 互換のメッセージブローカーが必要です。 | false | boolean |
| acceptMessagesWhileStopping (consumer) | コンシューマーが停止中にメッセージを受け入れるかどうかを指定します。実行時に JMS ルートを開始および停止するが、キューにメッセージが入れられている場合は、このオプションを有効にすることを検討してください。このオプションが false の場合は、JMS ルートを停止すると、メッセージが拒否される可能性があり、JMS ブローカは再配信を試行する必要がありますが、これも拒否される可能性があり、最終的にメッセージはJMS ブローカー上のデッドレターキューに移動される可能性があります。これを回避するには、このオプションを有効にすることをお勧めします。 | false | boolean |
| allowReplyManagerQuickStop (consumer) | JmsConfiguration#isAcceptMessagesWhileStopping が有効で、org.apache.camel.CamelContext が現在停止している場合に、要求/応答メッセージングのリプライマネージャーで使用される DefaultMessageListenerContainer が、DefaultMessageListenerContainer.runningAllowed フラグを迅速に停止できるようにするかどうか。このクイック停止機能は、通常の JMS コンシューマーではデフォルトで有効になっていますが、応答マネージャーを有効にするには、このフラグを有効にする必要があります。 | false | boolean |
| consumerType (consumer) | 使用するコンシューマータイプ。Simple、Default、または Custom のいずれかです。コンシューマータイプによって、使用する Spring JMS リスナーが決まります。デフォルトは org.springframework.jms.listener.DefaultMessageListenerContainer を使用し、Simple は org.springframework.jms.listener.SimpleMessageListenerContainer を使用します。Custom を指定した場合は、messageListenerContainerFactory オプションで定義された MessageListenerContainerFactory によって、使用する org.springframework.jms.listener.AbstractMessageListenerContainer が決まります。 | デフォルト | ConsumerType |
| defaultTaskExecutorType (consumer) | コンシューマーエンドポイントとプロデューサエンドポイントの ReplyTo コンシューマーの両方に対して、DefaultMessageListenerContainer で使用するデフォルトの TaskExecutor タイプを指定します。可能な値: SimpleAsync (Spring の SimpleAsyncTaskExecutor を使用) または ThreadPool (Spring の ThreadPoolTaskExecutor を最適な値で使用 - キャッシュされたスレッドプールのようなもの)。設定されていない場合は、デフォルトで以前の動作になり、コンシューマーエンドポイントにはキャッシュされたスレッドプールが使用され、応答コンシューマーには SimpleAsync が使用されます。ThreadPool の使用は、同時コンシューマーが動的に増減するエラスティック設定でスレッドのゴミを減らすために推奨されます。 | DefaultTaskExecutor Type | |
| eagerLoadingOfProperties (consumer) | メッセージが読み込まれるとすぐに JMS プロパティーの先行読み込みを有効にします。これは、JMS プロパティーが必要ない場合があるため一般的に非効率的ですが、基盤となる JMS プロバイダーと JMS プロパティーの使用に関する問題を早期に発見できる場合があります。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| exposeListenerSession (consumer) | メッセージを消費するときにリスナーセッションを公開するかどうかを指定します。 | false | boolean |
| replyToSameDestination Allowed (consumer) | JMS コンシューマーが、コンシューマーが使用しているのと同じ宛先に応答メッセージを送信できるかどうか。これにより、同じメッセージを消費してそれ自体に送り返すことで、無限ループが回避されます。 | false | boolean |
| taskExecutor (consumer) | メッセージを消費するためのカスタムタスクエグゼキュータを指定できます。 | TaskExecutor | |
| deliveryDelay (producer) | JMS の送信呼び出しに使用する配信遅延を設定します。このオプションには、JMS 2.0 準拠のブローカーが必要です。 | -1 | long |
| deliveryMode (producer) | 使用する配信モードを指定します。可能な値は、javax.jms.DeliveryMode によって定義された値です。NON_PERSISTENT = 1 および PERSISTENT = 2。 | Integer | |
| deliveryPersistent (producer) | デフォルトで永続配信を使用するかどうかを指定します。 | true | boolean |
| explicitQosEnabled (producer) | メッセージの送信時に、deliveryMode、priority、または timeToLive のサービス品質を使用する必要があるかどうかを設定します。このオプションは、Spring の JmsTemplate に基づいています。deliveryMode、priority、および timeToLive オプションは、現在のエンドポイントに適用されます。これは、メッセージの粒度で動作し、Camel In メッセージヘッダーから排他的に QoS プロパティーを読み取る preserveMessageQos オプションとは対照的です。 | false | Boolean |
| formatDateHeadersToIso8601 (producer) | JMS 日付プロパティーを ISO 8601 標準に従ってフォーマットするかどうかを設定します。 | false | boolean |
| preserveMessageQos (producer) | JMS エンドポイントの QoS 設定ではなく、メッセージで指定された QoS 設定を使用してメッセージを送信する場合は、true に設定します。次の 3 つのヘッダーは、JMSPriority、JMSDeliveryMode、および JMSExpiration と見なされます。それらのすべてまたは一部のみを指定できます。指定されていない場合、Camel は代わりにエンドポイントからの値を使用するようにフォールバックします。したがって、このオプションを使用すると、ヘッダーはエンドポイントからの値をオーバーライドします。対照的に、explicitQosEnabled オプションは、エンドポイントに設定されたオプションのみを使用し、メッセージヘッダーの値は使用しません。 | false | boolean |
| priority (producer) | 1 より大きい値は、送信時のメッセージの優先度を指定します (0 が最低の優先度で、9 が最高の優先度です)。このオプションを有効にするには、explicitQosEnabled オプションも有効にする必要があります。 | 4 | int |
| replyToConcurrentConsumers (producer) | JMS を介して要求/応答を行うときの同時コンシューマーのデフォルト数を指定します。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。 | 1 | int |
| replyToMaxConcurrent Consumers (producer) | JMS を介した要求/応答を使用する場合の同時コンシューマーの最大数を指定します。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。 | int | |
| replyToOnTimeoutMax ConcurrentConsumers (producer) | JMS 経由の要求/応答を使用するときにタイムアウトが発生したときに、ルーティングを継続するための同時コンシューマーの最大数を指定します。 | 1 | int |
| replyToOverride (producer) | JMS メッセージで明示的な ReplyTo 宛先を提供します。これは、replyTo の設定をオーバーライドします。メッセージをリモート Queue に転送し、ReplyTo 宛先から応答メッセージを受け取る場合に便利です。 | String | |
| replyToType (producer) | JMS を介して要求/応答を行うときに、replyTo キューに使用する戦略の種類を明示的に指定できます。可能な値は、Temporary、Shared、または Exclusive です。デフォルトでは、Camel は一時キューを使用します。ただし、replyTo が設定されている場合は、デフォルトで Shared が使用されます。このオプションを使用すると、共有キューの代わりに専用キューを使用できます。詳細については、Camel JMS のドキュメントを参照してください。特に、クラスター化された環境で実行する場合の影響に関する注意事項と、共有応答キューは代替の一時および排他的キューよりもパフォーマンスが低いという事実を参照してください。 | ReplyToType | |
| requestTimeout (producer) | InOut Exchange パターン使用時の応答待ちタイムアウト (ミリ秒単位)。デフォルトは 20 秒です。ヘッダー CamelJmsRequestTimeout を含めて、このエンドポイントで設定されたタイムアウト値をオーバーライドし、メッセージごとに個別のタイムアウト値を持つことができます。requestTimeoutCheckerInterval オプションも参照してください。 | 20000 | long |
| timeToLive (producer) | メッセージの送信時に、メッセージの有効期限をミリ秒単位で指定します。 | -1 | long |
| allowAdditionalHeaders (producer) | このオプションは、JMS 仕様に従って無効な値を持つ可能性がある追加のヘッダーを許可するために使用されます。たとえば、WMQ などの一部のメッセージシステムは、バイト配列またはその他の無効な型の値を含む接頭辞 JMS_IBM_MQMD_ を使用するヘッダー名でこれを行います。コンマで区切られた複数のヘッダー名を指定し、ワイルドカードマッチングの接尾辞として使用できます。 | String | |
| allowNullBody (producer) | ボディーのないメッセージの送信を許可するかどうか。このオプションが false でメッセージボディーが null の場合は、JMSException が出力されます。 | true | boolean |
| alwaysCopyMessage (producer) | true の場合、メッセージがプロデューサーに渡されて送信されると、Camel は常にメッセージの JMS メッセージコピーを作成します。replyToDestinationSelectorName が設定されている場合など、状況によってはメッセージのコピーが必要です (また、replyToDestinationSelectorName が設定されている場合、Camel は alwaysCopyMessage オプションを true に設定します)。 | false | boolean |
| correlationProperty (producer) | InOut 交換パターンを使用する場合、JMSCorrelationID JMS プロパティーの代わりにこの JMS プロパティーを使用してメッセージを関連付けます。設定されたメッセージがこのプロパティーの値のみに関連付けられる場合、JMSCorrelationID プロパティーは無視され、Camel によって設定されません。 | String | |
| disableTimeToLive (producer) | このオプションを使用して、有効期限を強制的に無効にします。たとえば、JMS を介して要求/応答を行う場合、Camel はデフォルトで、送信されるメッセージの存続時間として requestTimeout 値を使用します。問題は、送信側システムと受信側システムのクロックを同期させる必要があるため、同期していることです。これをアーカイブするのは必ずしも簡単ではありません。したがって、disableTimeToLive=true を使用して、送信されたメッセージに有効期限の値を設定しないようにすることができます。その後、メッセージは受信側システムで期限切れになりません。詳細については、以下の生存時間についてのセクションを参照してください。 | false | boolean |
| forceSendOriginalMessage (producer) | mapJmsMessage=false を使用すると、ルート中にヘッダーに触れると (get または set)、Camel は新しい JMS メッセージを作成して新しい JMS 宛先に送信します。Camel が受信した元の JMS メッセージを強制的に送信するには、このオプションを true に設定します。 | false | boolean |
| includeSentJMSMessageID (producer) | InOnly を使用して JMS 宛先に送信する場合にのみ適用されます (例: ファイアアンドフォーゲット)。このオプションを有効にすると、メッセージが JMS 宛先に送信されたときに JMS クライアントによって使用された実際の JMSMessageID で Camel Exchange が強化されます。 | false | boolean |
| replyToCacheLevelName (producer) | JMS を介して要求/応答を行うときに、応答コンシューマーのキャッシュレベルを名前で設定します。このオプションは、固定応答キュー (一時的ではない) を使用する場合にのみ適用されます。Camel はデフォルトで次を使用します: 排他的または replyToSelectorName と共有の CACHE_CONSUMER。そして、replyToSelectorName なしで共有するための CACHE_SESSION。IBM WebSphere などの一部の JMS ブローカーは、replyToCacheLevelName=CACHE_NONE を機能させるために設定する必要がある場合があります。注: 一時キューを使用する場合、CACHE_NONE は許可されず、CACHE_CONSUMER や CACHE_SESSION などのより高い値を使用する必要があります。 | String | |
| replyToDestinationSelector Name (producer) | 使用する固定名を使用して JMS セレクターを設定し、共有キューを使用している場合 (つまり、一時的な応答キューを使用していない場合) に、他の応答から自分の応答を除外できるようにします。 | String | |
| streamMessageTypeEnabled (producer) | StreamMessage タイプを有効にするかどうかを設定します。ファイル、InputStream などのストリーミングの種類のメッセージペイロードは、BytesMessage または StreamMessage として送信されます。このオプションは、どの種類が使用されるかを制御します。デフォルトでは、BytesMessage が使用され、メッセージペイロード全体がメモリーに読み込まれます。このオプションを有効にすると、メッセージペイロードがチャンク単位でメモリーに読み込まれ、データがなくなるまで各チャンクが StreamMessage に書き込まれます。 | false | boolean |
| allowSerializedHeaders (advanced) | シリアル化されたヘッダーを含めるかどうかを制御します。transferExchange が true の場合にのみ適用されます。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアル化できないオブジェクトを除外し、WARN レベルでログに記録します。 | false | boolean |
| asyncStartListener (advanced) | ルートの開始時に JmsConsumer メッセージリスナーを非同期で開始するかどうか。たとえば、JmsConsumer がリモート JMS ブローカーへの接続を取得できない場合は、再試行中やフェイルオーバー中にブロックされる可能性があります。これにより、ルートの開始時に Camel がブロックされます。このオプションを true に設定すると、ルートの起動を許可します。一方、JmsConsumer は非同期モードで専用のスレッドを使用して JMS ブローカーに接続します。このオプションを使用する場合は、接続を確立できない場合は例外が WARN レベルでログに記録され、コンシューマーはメッセージを受信できず、ルートを再起動して再試行できます。 | false | boolean |
| asyncStopListener (advanced) | ルートを停止するときに、JmsConsumer メッセージリスナーを非同期的に停止するかどうか。 | false | boolean |
| destinationResolver (advanced) | 独自のリゾルバーを使用できるようにするプラグ可能な org.springframework.jms.support.destination.DestinationResolver (たとえば、JNDI レジストリーで実際の宛先を検索するため)。 | DestinationResolver | |
| errorHandler (advanced) | Message の処理中にキャッチされない例外が出力された場合に呼び出される org.springframework.util.ErrorHandler を指定します。デフォルトでは、errorHandler が設定されていない場合、これらの例外は WARN レベルでログに記録されます。errorHandlerLoggingLevel および errorHandlerLogStackTrace オプションを使用して、ログレベルとスタックトレースをログに記録するかどうかを設定できます。これにより、カスタム errorHandler をコーディングするよりも設定がはるかに簡単になります。 | ErrorHandler | |
| exceptionListener (advanced) | 基礎となる JMS 例外の通知を受ける JMS 例外リスナーを指定します。 | ExceptionListener | |
| headerFilterStrategy (advanced) | カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。 | HeaderFilterStrategy | |
| idleConsumerLimit (advanced) | 常にアイドル状態にできるコンシューマーの数の制限を指定します。 | 1 | int |
| idleTaskExecutionLimit (advanced) | 実行中にメッセージを受信していない、受信タスクのアイドル実行の制限を指定します。この制限に達すると、タスクはシャットダウンし、他の実行中のタスクに受信を任せます (動的スケジューリングの場合。maxConcurrentConsumers 設定を参照してください)。Spring から入手できる追加のドキュメントがあります。 | 1 | int |
| includeAllJMSXProperties (advanced) | JMS から Camel Message へのマッピング時に JMSXxxx プロパティーをすべて含めるかどうか。これを true に設定すると、JMSXAppID や JMSXUserID などのプロパティーが含まれます。注記: カスタムの headerFilterStrategy を使用している場合、このオプションは適用されません。 | false | boolean |
| jmsKeyFormatStrategy (advanced) | JMS 仕様に準拠できるように、JMS キーをエンコードおよびデコードするためのプラグ可能な戦略。Camel は、追加設定なしで、default と passthrough の 2 つの実装を提供します。デフォルトのストラテジーでは、ドットとハイフン(. および -)を安全にマーシャリングします。パススルー戦略では、キーはそのまま残ります。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、# 表記を使用して参照できます。 | String | |
| mapJmsMessage (advanced) | Camel が受信した JMS メッセージを適切なペイロードタイプ (javax.jms.TextMessage を文字列など) に自動マップするかどうかを指定します。 | true | boolean |
| maxMessagesPerTask (advanced) | タスクあたりのメッセージ数。-1 は無制限です。同時コンシューマーの範囲 (例: min max) を使用する場合、このオプションを使用して値を 100 などに設定し、必要な作業が少ない場合にコンシューマーが縮小する速度を制御できます。 | -1 | int |
| messageConverter (advanced) | カスタム Spring org.springframework.jms.support.converter.MessageConverter を使用して、javax.jms.Message との間でどのようにマッピングするかを制御できるようにします。 | MessageConverter | |
| messageCreatedStrategy (advanced) | Camel が JMS メッセージを送信しているときに、Camel が javax.jms.Message オブジェクトの新しいインスタンスを作成するときに呼び出される、指定された MessageCreatedStrategy を使用します。 | MessageCreatedStrategy | |
| messageIdEnabled (advanced) | 送信時に、メッセージ ID を追加するかどうかを指定します。これは、JMS ブローカへの単なるヒントです。JMS プロバイダーがこのヒントを受け入れる場合には、これらのメッセージはメッセージ ID を null に設定する必要があります。プロバイダーがヒントを無視する場合には、メッセージ ID は通常の一意の値に設定する必要があります | true | boolean |
| messageListenerContainer Factory (advanced) | メッセージを消費するために使用する org.springframework.jms.listener.AbstractMessageListenerContainer を決定するために使用される MessageListenerContainerFactory のレジストリー ID。これを設定すると、consumerType が自動的に Custom に設定されます。 | MessageListener ContainerFactory | |
| messageTimestampEnabled (advanced) | メッセージの送信時にデフォルトでタイムスタンプを有効にするかどうかを指定します。これは、JMS ブローカへの単なるヒントです。JMS プロバイダーがこのヒントを受け入れる場合には、これらのメッセージのタイムスタンプはゼロに設定する必要があります。プロバイダーがヒントを無視する場合には、タイムスタンプを通常の値に設定する必要があります | true | boolean |
| pubSubNoLocal (advanced) | 独自の接続によってパブリッシュされたメッセージの配信を禁止するかどうかを指定します。 | false | boolean |
| receiveTimeout (advanced) | メッセージ受信のタイムアウト (ミリ秒単位)。 | 1000 | long |
| recoveryInterval (advanced) | リカバリーの試行の間隔を指定します。つまり、接続が更新されるタイミング(ミリ秒単位)を指定します。デフォルトは 5000 ミリ秒、つまり 5 秒です。 | 5000 | long |
| requestTimeoutChecker Interval (advanced) | JMS を介してリクエスト/リプライを行うときに、Camel がタイムアウトになった Exchange をチェックする頻度を設定します。デフォルトでは、Camel は 1 秒に 1 回確認します。ただし、タイムアウトが発生したときに迅速に対応する必要がある場合は、この間隔を短くして、より頻繁にチェックすることができます。タイムアウトは、オプション requestTimeout によって決定されます。 | 1000 | long |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| transferException (advanced) | 有効で、Request Reply メッセージング (InOut) を使用していて、Exchange がコンシューマー側で失敗した場合、原因となった例外が javax.jms.ObjectMessage として応答で返されます。クライアントが Camel の場合、返された Exception は再出力されます。これにより、Camel JMS をルーティングのブリッジとして使用できます。たとえば、永続的なキューを使用して堅牢なルーティングを有効にできます。transferExchange も有効にしている場合は、このオプションが優先されることに注意してください。キャッチされた例外はシリアライズ可能である必要があります。コンシューマー側の元の Exception は、プロデューサーに返されるときに org.apache.camel.RuntimeCamelException などの外部例外にラップできます。 | false | boolean |
| transferExchange (advanced) | 本文とヘッダーだけでなく、電信送金で交換を転送できます。次のフィールドが転送されます: In body、Out body、Fault body、In ヘッダー、Out ヘッダー、Fault ヘッダー、交換プロパティー、交換例外。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアル化できないオブジェクトを除外し、WARN レベルでログに記録します。プロデューサ側とコンシューマー側の両方でこのオプションを有効にする必要があるため、Camel はペイロードが Exchange であり、通常のペイロードではないことを認識します。 | false | boolean |
| transferFault (advanced) | これを有効にし、Request Reply メッセージング (InOut) を使用していて、Exchange がコンシューマー側で SOAP エラー (例外ではない) で失敗した場合には、Message#isFault() のエラーフラグが応答で、org.apache.camel.component.jms.JmsConstants#JMS_TRANSFER_FAULT#JMS_TRANSFER_FAULT のキーを含んだ JMS ヘッダーとして送り返されます。クライアントが Camel の場合には、返される障害フラグは org.apache.camel.Message#setFault (boolean) に設定されます。cxf や spring-ws などの SOAP ベースなどの障害をサポートする Camel コンポーネントを使用する場合、これを有効できます。 | false | boolean |
| useMessageIDAsCorrelation ID (advanced) | InOut メッセージの JMSCorrelationID として JMSMessageID を常に使用するかどうかを指定します。 | false | boolean |
| waitForProvisionCorrelation ToBeUpdatedCounter (advanced) | JMS を介して要求/応答を行う場合、およびオプション useMessageIDAsCorrelationID が有効な場合に、暫定相関 ID が実際の相関 ID に更新されるのを待機する回数。 | 50 | int |
| waitForProvisionCorrelation ToBeUpdatedThreadSleeping Time (advanced) | 暫定相関 ID が更新されるのを待機するたびにスリープする間隔 (ミリ単位)。 | 100 | long |
| errorHandlerLoggingLevel (logging) | キャッチされていない例外をログに記録するためのデフォルトの errorHandler ログレベルを設定できます。 | WARN | LoggingLevel |
| errorHandlerLogStackTrace (logging) | デフォルトの errorHandler でスタックトレースをログに記録するかどうかを制御できます。 | true | boolean |
| password (security) | ConnectionFactory で使用するパスワード。また、ConnectionFactory でユーザー名およびパスワードを直接設定することもできます。 | String | |
| username (security) | ConnectionFactory で使用するユーザー名。また、ConnectionFactory でユーザー名およびパスワードを直接設定することもできます。 | String | |
| 取引済み (取引) | トランザクションモードを使用するかどうかを指定します | false | boolean |
| lazyCreateTransaction Manager (トランザクション) | true の場合、オプション transacted=true のときに transactionManager が挿入されていない場合、Camel は JmsTransactionManager を作成します。 | true | boolean |
| transactionManager (トランザクション) | 使用する Spring トランザクションマネージャー。 | PlatformTransaction Manager | |
| transactionName (トランザクション) | 使用するトランザクションの名前。 | String | |
| transactionTimeout (トランザクション) | トランザクションモードを使用している場合の、トランザクションのタイムアウト値 (秒単位)。 | -1 | int |
5.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 81 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.amqp.accept-messages-while-stopping | コンシューマーが停止中にメッセージを受け入れるかどうかを指定します。実行時に JMS ルートを開始および停止するが、キューにメッセージが入れられている場合は、このオプションを有効にすることを検討してください。このオプションが false の場合は、JMS ルートを停止すると、メッセージが拒否される可能性があり、JMS ブローカは再配信を試行する必要がありますが、これも拒否される可能性があり、最終的にメッセージはJMS ブローカー上のデッドレターキューに移動される可能性があります。これを回避するには、このオプションを有効にすることをお勧めします。 | false | Boolean |
| camel.component.amqp.acknowledgement-mode | 整数として定義された JMS 確認応答モード。確認モードにベンダー固有の拡張を設定できます。通常のモードでは、代わりに acknowledgementModeName を使用することをお勧めします。 | Integer | |
| camel.component.amqp.acknowledgement-mode-name | JMS 確認応答名。SESSION_TRANSACTED、CLIENT_ACKNOWLEDGE、AUTO_ACKNOWLEDGE、DUPS_OK_ACKNOWLEDGE のいずれかです。 | AUTO_ ACKNOWLEDGE | String |
| camel.component.amqp.allow-additional-headers | このオプションは、JMS 仕様に従って無効な値を持つ可能性がある追加のヘッダーを許可するために使用されます。たとえば、WMQ などの一部のメッセージシステムは、バイト配列またはその他の無効な型の値を含む接頭辞 JMS_IBM_MQMD_ を使用するヘッダー名でこれを行います。コンマで区切られた複数のヘッダー名を指定し、ワイルドカードマッチングの接尾辞として使用できます。 | String | |
| camel.component.amqp.allow-null-body | ボディーのないメッセージの送信を許可するかどうか。このオプションが false でメッセージボディーが null の場合は、JMSException が出力されます。 | true | Boolean |
| camel.component.amqp.allow-reply-manager-quick-stop | JmsConfiguration#isAcceptMessagesWhileStopping が有効で、org.apache.camel.CamelContext が現在停止している場合に、要求/応答メッセージングのリプライマネージャーで使用される DefaultMessageListenerContainer が、DefaultMessageListenerContainer.runningAllowed フラグを迅速に停止できるようにするかどうか。このクイック停止機能は、通常の JMS コンシューマーではデフォルトで有効になっていますが、応答マネージャーを有効にするには、このフラグを有効にする必要があります。 | false | Boolean |
| camel.component.amqp.always-copy-message | true の場合、メッセージがプロデューサーに渡されて送信されると、Camel は常にメッセージの JMS メッセージコピーを作成します。replyToDestinationSelectorName が設定されている場合など、状況によってはメッセージのコピーが必要です (また、replyToDestinationSelectorName が設定されている場合、Camel は alwaysCopyMessage オプションを true に設定します)。 | false | Boolean |
| camel.component.amqp.async-consumer | JmsConsumer が Exchange を非同期的に処理するかどうか。有効にすると、JmsConsumer は JMS キューから次のメッセージを取得できますが、前のメッセージは (非同期ルーティングエンジンによって) 非同期に処理されます。これは、メッセージが 100% 厳密に順序どおりに処理されない可能性があることを意味します。無効になっている場合 (デフォルト)、JmsConsumer が JMS キューから次のメッセージを取得する前に Exchange が完全に処理されます。transactioned が有効になっている場合、トランザクションは同期的に実行する必要があるため、asyncConsumer=true は非同期的に実行されないことに注意してください (Camel 3.0 は非同期トランザクションをサポートする場合があります)。 | false | Boolean |
| camel.component.amqp.async-start-listener | ルートの開始時に JmsConsumer メッセージリスナーを非同期で開始するかどうか。たとえば、JmsConsumer がリモート JMS ブローカーへの接続を取得できない場合は、再試行中やフェイルオーバー中にブロックされる可能性があります。これにより、ルートの開始時に Camel がブロックされます。このオプションを true に設定すると、ルートの起動を許可します。一方、JmsConsumer は非同期モードで専用のスレッドを使用して JMS ブローカーに接続します。このオプションを使用する場合は、接続を確立できない場合は例外が WARN レベルでログに記録され、コンシューマーはメッセージを受信できず、ルートを再起動して再試行できます。 | false | Boolean |
| camel.component.amqp.async-stop-listener | ルートを停止するときに、JmsConsumer メッセージリスナーを非同期的に停止するかどうか。 | false | Boolean |
| camel.component.amqp.auto-startup | コンシューマーコンテナーを自動起動するかどうかを指定します。 | true | Boolean |
| camel.component.amqp.cache-level | 基礎となる JMS リソースの ID によってキャッシュレベルを設定します。詳細は、cacheLevelName オプションを参照してください。 | Integer | |
| camel.component.amqp.cache-level-name | 基礎となる JMS リソースのキャッシュレベルを名前で設定します。可能な値は、CACHE_AUTO、CACHE_CONNECTION、CACHE_CONSUMER、CACHE_NONE、および CACHE_SESSION です。デフォルト設定は CACHE_AUTO です。詳細は、Spring のドキュメントとトランザクションキャッシュレベルを参照してください。 | CACHE_AUTO | String |
| camel.component.amqp.client-id | 使用する JMS クライアント ID を設定します。この値を指定する場合は、一意である必要があり、単一の JMS 接続インスタンスでのみ使用できることに注意してください。通常、永続的なトピックサブスクリプションの場合にのみ必要です。Apache ActiveMQ を使用している場合は、代わりに仮想トピックを使用することをお勧めします。 | String | |
| camel.component.amqp.concurrent-consumers | JMS から消費する場合の同時コンシューマーのデフォルト数を指定します (JMS を介した要求/応答ではありません)。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。JMS を介して要求/応答を行う場合は、オプション replyToConcurrentConsumers を使用して、応答メッセージリスナーの同時コンシューマーの数を制御します。 | 1 | Integer |
| camel.component.amqp.configuration | 共有 JMS 設定を使用するには。オプションは org.apache.camel.component.jms.JmsConfiguration タイプです。 | String | |
| camel.component.amqp.connection-factory | 使用する接続ファクトリー。コンポーネントまたはエンドポイントで接続ファクトリーを設定する必要があります。オプションは javax.jms.ConnectionFactory タイプです。 | String | |
| camel.component.amqp.correlation-property | JMSCorrelationID プロパティーの代わりに、この JMS プロパティーを使用して、InOut 交換パターン (要求 - 応答) でメッセージを関連付けます。これにより、JMSCorrelationID JMS プロパティーを使用してメッセージと相関性のないシステムとメッセージを交換できます。JMSCorrelationID を使用すると、Camel によって使用または設定されません。ここで指定されたプロパティーの値は、同じ名前でメッセージのヘッダーに指定されていない場合に生成されます。 | String | |
| camel.component.amqp.default-task-executor-type | コンシューマーエンドポイントとプロデューサエンドポイントの ReplyTo コンシューマーの両方に対して、DefaultMessageListenerContainer で使用するデフォルトの TaskExecutor タイプを指定します。可能な値: SimpleAsync (Spring の SimpleAsyncTaskExecutor を使用) または ThreadPool (Spring の ThreadPoolTaskExecutor を最適な値で使用 - キャッシュされたスレッドプールのようなもの)。設定されていない場合は、デフォルトで以前の動作になり、コンシューマーエンドポイントにはキャッシュされたスレッドプールが使用され、応答コンシューマーには SimpleAsync が使用されます。ThreadPool の使用は、同時コンシューマーが動的に増減するエラスティック設定でスレッドのゴミを減らすために推奨されます。 | DefaultTaskExecutor Type | |
| camel.component.amqp.delivery-mode | 使用する配信モードを指定します。可能な値は、javax.jms.DeliveryMode によって定義された値です。NON_PERSISTENT = 1 および PERSISTENT = 2。 | Integer | |
| camel.component.amqp.delivery-persistent | デフォルトで永続配信を使用するかどうかを指定します。 | true | Boolean |
| camel.component.amqp.destination-resolver | 独自のリゾルバーを使用できるようにするプラグ可能な org.springframework.jms.support.destination.DestinationResolver (たとえば、JNDI レジストリーで実際の宛先を検索するため)。オプションは org.springframework.jms.support.destination.DestinationResolver 型です。 | String | |
| camel.component.amqp.durable-subscription-name | 永続トピックサブスクリプションを指定するための永続サブスクライバー名。clientId オプションも設定する必要があります。 | String | |
| camel.component.amqp.eager-loading-of-properties | メッセージが読み込まれるとすぐに JMS プロパティーの先行読み込みを有効にします。これは、JMS プロパティーが必要ない場合があるため一般的に非効率的ですが、基盤となる JMS プロバイダーと JMS プロパティーの使用に関する問題を早期に発見できる場合があります。 | false | Boolean |
| camel.component.amqp.enabled | amqp コンポーネントを有効にします。 | true | Boolean |
| camel.component.amqp.error-handler | Message の処理中にキャッチされない例外が出力された場合に呼び出される org.springframework.util.ErrorHandler を指定します。デフォルトでは、errorHandler が設定されていない場合、これらの例外は WARN レベルでログに記録されます。errorHandlerLoggingLevel および errorHandlerLogStackTrace オプションを使用して、ログレベルとスタックトレースをログに記録するかどうかを設定できます。これにより、カスタム errorHandler をコーディングするよりも設定がはるかに簡単になります。オプションは org.springframework.util.ErrorHandler 型です。 | String | |
| camel.component.amqp.error-handler-log-stack-trace | デフォルトの errorHandler でスタックトレースをログに記録するかどうかを制御できます。 | true | Boolean |
| camel.component.amqp.error-handler-logging-level | キャッチされていない例外をログに記録するためのデフォルトの errorHandler ログレベルを設定できます。 | LoggingLevel | |
| camel.component.amqp.exception-listener | 基礎となる JMS 例外の通知を受ける JMS 例外リスナーを指定します。オプションは javax.jms.ExceptionListener 型です。 | String | |
| camel.component.amqp.explicit-qos-enabled | メッセージの送信時に、deliveryMode、priority、または timeToLive のサービス品質を使用する必要があるかどうかを設定します。このオプションは、Spring の JmsTemplate に基づいています。deliveryMode、priority、および timeToLive オプションは、現在のエンドポイントに適用されます。これは、メッセージの粒度で動作し、Camel In メッセージヘッダーから排他的に QoS プロパティーを読み取る preserveMessageQos オプションとは対照的です。 | false | Boolean |
| camel.component.amqp.expose-listener-session | メッセージを消費するときにリスナーセッションを公開するかどうかを指定します。 | false | Boolean |
| camel.component.amqp.force-send-original-message | mapJmsMessage=false を使用すると、ルート中にヘッダーに触れると (get または set)、Camel は新しい JMS メッセージを作成して新しい JMS 宛先に送信します。Camel が受信した元の JMS メッセージを強制的に送信するには、このオプションを true に設定します。 | false | Boolean |
| camel.component.amqp.format-date-headers-to-iso8601 | 日付ヘッダーを ISO 8601 標準に従ってフォーマットするかどうかを設定します。 | false | Boolean |
| camel.component.amqp.header-filter-strategy | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。このオプションは org.apache.camel.spi.HeaderFilterStrategy タイプです。 | String | |
| camel.component.amqp.idle-consumer-limit | 常にアイドル状態にできるコンシューマーの数の制限を指定します。 | 1 | Integer |
| camel.component.amqp.idle-task-execution-limit | 実行中にメッセージを受信していない、受信タスクのアイドル実行の制限を指定します。この制限に達すると、タスクはシャットダウンし、他の実行中のタスクに受信を任せます (動的スケジューリングの場合。maxConcurrentConsumers 設定を参照してください)。Spring から入手できる追加のドキュメントがあります。 | 1 | Integer |
| camel.component.amqp.include-all-j-m-s-x-properties | JMS から Camel Message へのマッピング時に JMSXxxx プロパティーをすべて含めるかどうか。これを true に設定すると、JMSXAppID や JMSXUserID などのプロパティーが含まれます。注記: カスタムの headerFilterStrategy を使用している場合、このオプションは適用されません。 | false | Boolean |
| camel.component.amqp.include-sent-j-m-s-message-i-d | InOnly を使用して JMS 宛先に送信する場合にのみ適用されます (例: ファイアアンドフォーゲット)。このオプションを有効にすると、メッセージが JMS 宛先に送信されたときに JMS クライアントによって使用された実際の JMSMessageID で Camel Exchange が強化されます。 | false | Boolean |
| camel.component.amqp.jms-key-format-strategy | JMS 仕様に準拠できるように、JMS キーをエンコードおよびデコードするためのプラグ可能な戦略。Camel は、追加設定なしで、default と passthrough の 2 つの実装を提供します。デフォルトのストラテジーでは、ドットとハイフン(. および -)を安全にマーシャリングします。パススルー戦略では、キーはそのまま残ります。JMS ヘッダーキーに不正な文字が含まれているかどうかは問題にならない JMS ブローカーに使用できます。org.apache.camel.component.jms.JmsKeyFormatStrategy の独自の実装を提供し、# 表記を使用して参照できます。オプションは org.apache.camel.component.jms.JmsKeyFormatStrategy タイプです。 | String | |
| camel.component.amqp.jms-operations | org.springframework.jms.core.JmsOperations インターフェイスの独自の実装を使用できるようにします。Camel はデフォルトで JmsTemplate を使用します。テスト目的で使用できますが、Spring API ドキュメントに記載されているほどは使用されません。オプションは org.springframework.jms.core.JmsOperations タイプです。 | String | |
| camel.component.amqp.lazy-create-transaction-manager | true の場合、オプション transacted=true のときに transactionManager が挿入されていない場合、Camel は JmsTransactionManager を作成します。 | true | Boolean |
| camel.component.amqp.map-jms-message | Camel が受信した JMS メッセージを適切なペイロードタイプ (javax.jms.TextMessage を文字列など) に自動マップするかどうかを指定します。 | true | Boolean |
| camel.component.amqp.max-concurrent-consumers | JMS から消費する場合の同時コンシューマーの最大数を指定します (JMS を介した要求/応答ではありません)。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。JMS を介して要求/応答を行う場合は、オプション replyToMaxConcurrentConsumers を使用して、応答メッセージリスナーの同時コンシューマーの数を制御します。 | Integer | |
| camel.component.amqp.max-messages-per-task | タスクあたりのメッセージ数。-1 は無制限です。同時コンシューマーの範囲 (例: min max) を使用する場合、このオプションを使用して値を 100 などに設定し、必要な作業が少ない場合にコンシューマーが縮小する速度を制御できます。 | -1 | Integer |
| camel.component.amqp.message-converter | カスタム Spring org.springframework.jms.support.converter.MessageConverter を使用して、javax.jms.Message との間でどのようにマッピングするかを制御できるようにします。オプションは org.springframework.jms.support.converter.MessageConverter 型です。 | String | |
| camel.component.amqp.message-created-strategy | Camel が JMS メッセージを送信しているときに、Camel が javax.jms.Message オブジェクトの新しいインスタンスを作成するときに呼び出される、指定された MessageCreatedStrategy を使用します。オプションは org.apache.camel.component.jms.MessageCreatedStrategy タイプです。 | String | |
| camel.component.amqp.message-id-enabled | 送信時に、メッセージ ID を追加するかどうかを指定します。これは、JMS ブローカへの単なるヒントです。JMS プロバイダーがこのヒントを受け入れる場合には、これらのメッセージはメッセージ ID を null に設定する必要があります。プロバイダーがヒントを無視する場合には、メッセージ ID は通常の一意の値に設定する必要があります | true | Boolean |
| camel.component.amqp.message-timestamp-enabled | メッセージの送信時にデフォルトでタイムスタンプを有効にするかどうかを指定します。これは、JMS ブローカへの単なるヒントです。JMS プロバイダーがこのヒントを受け入れる場合には、これらのメッセージのタイムスタンプはゼロに設定する必要があります。プロバイダーがヒントを無視する場合には、タイムスタンプを通常の値に設定する必要があります | true | Boolean |
| camel.component.amqp.password | ConnectionFactory で使用するパスワード。また、ConnectionFactory でユーザー名およびパスワードを直接設定することもできます。 | String | |
| camel.component.amqp.preserve-message-qos | JMS エンドポイントの QoS 設定ではなく、メッセージで指定された QoS 設定を使用してメッセージを送信する場合は、true に設定します。次の 3 つのヘッダーは、JMSPriority、JMSDeliveryMode、および JMSExpiration と見なされます。それらのすべてまたは一部のみを指定できます。指定されていない場合、Camel は代わりにエンドポイントからの値を使用するようにフォールバックします。したがって、このオプションを使用すると、ヘッダーはエンドポイントからの値をオーバーライドします。対照的に、explicitQosEnabled オプションは、エンドポイントに設定されたオプションのみを使用し、メッセージヘッダーの値は使用しません。 | false | Boolean |
| camel.component.amqp.priority | 1 より大きい値は、送信時のメッセージの優先度を指定します (0 が最低の優先度で、9 が最高の優先度です)。このオプションを有効にするには、explicitQosEnabled オプションも有効にする必要があります。 | 4 | Integer |
| camel.component.amqp.pub-sub-no-local | 独自の接続によってパブリッシュされたメッセージの配信を禁止するかどうかを指定します。 | false | Boolean |
| camel.component.amqp.queue-browse-strategy | キューを参照するときにカスタム QueueBrowseStrategy を使用するには。オプションは org.apache.camel.component.jms.QueueBrowseStrategy タイプです。 | String | |
| camel.component.amqp.receive-timeout | メッセージ受信のタイムアウト (ミリ秒単位)。 | 1000 | Long |
| camel.component.amqp.recovery-interval | リカバリーの試行の間隔を指定します。つまり、接続が更新されるタイミング(ミリ秒単位)を指定します。デフォルトは 5000 ミリ秒、つまり 5 秒です。 | 5000 | Long |
| camel.component.amqp.reply-on-timeout-to-max-concurrent-consumers | JMS 経由の要求/応答を使用するときにタイムアウトが発生したときに、ルーティングを継続するための同時コンシューマーの最大数を指定します。 | 1 | Integer |
| camel.component.amqp.reply-to-cache-level-name | JMS を介して要求/応答を行うときに、応答コンシューマーのキャッシュレベルを名前で設定します。このオプションは、固定応答キュー (一時的ではない) を使用する場合にのみ適用されます。Camel はデフォルトで次を使用します: 排他的または replyToSelectorName と共有の CACHE_CONSUMER。そして、replyToSelectorName なしで共有するための CACHE_SESSION。IBM WebSphere などの一部の JMS ブローカーは、replyToCacheLevelName=CACHE_NONE を機能させるために設定する必要がある場合があります。注: 一時キューを使用する場合、CACHE_NONE は許可されず、CACHE_CONSUMER や CACHE_SESSION などのより高い値を使用する必要があります。 | String | |
| camel.component.amqp.reply-to-concurrent-consumers | JMS を介して要求/応答を行うときの同時コンシューマーのデフォルト数を指定します。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。 | 1 | Integer |
| camel.component.amqp.reply-to-max-concurrent-consumers | JMS を介した要求/応答を使用する場合の同時コンシューマーの最大数を指定します。スレッドの動的なスケールアップ/ダウンを制御するには、maxMessagesPerTask オプションも参照してください。 | Integer | |
| camel.component.amqp.reply-to-type | JMS を介して要求/応答を行うときに、replyTo キューに使用する戦略の種類を明示的に指定できます。可能な値は、Temporary、Shared、または Exclusive です。デフォルトでは、Camel は一時キューを使用します。ただし、replyTo が設定されている場合は、デフォルトで Shared が使用されます。このオプションを使用すると、共有キューの代わりに専用キューを使用できます。詳細については、Camel JMS のドキュメントを参照してください。特に、クラスター化された環境で実行する場合の影響に関する注意事項と、共有応答キューは代替の一時および排他的キューよりもパフォーマンスが低いという事実を参照してください。 | ReplyToType | |
| camel.component.amqp.request-timeout | InOut Exchange パターン使用時の応答待ちタイムアウト (ミリ秒単位)。デフォルトは 20 秒です。ヘッダー CamelJmsRequestTimeout を含めて、このエンドポイントで設定されたタイムアウト値をオーバーライドし、メッセージごとに個別のタイムアウト値を持つことができます。requestTimeoutCheckerInterval オプションも参照してください。 | 20000 | Long |
| camel.component.amqp.request-timeout-checker-interval | JMS を介してリクエスト/リプライを行うときに、Camel がタイムアウトになった Exchange をチェックする頻度を設定します。デフォルトでは、Camel は 1 秒に 1 回確認します。ただし、タイムアウトが発生したときに迅速に対応する必要がある場合は、この間隔を短くして、より頻繁にチェックすることができます。タイムアウトは、オプション requestTimeout によって決定されます。 | 1000 | Long |
| camel.component.amqp.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.amqp.stream-message-type-enabled | StreamMessage タイプを有効にするかどうかを設定します。ファイル、InputStream などのストリーミングの種類のメッセージペイロードは、BytesMessage または StreamMessage として送信されます。このオプションは、どの種類が使用されるかを制御します。デフォルトでは、BytesMessage が使用され、メッセージペイロード全体がメモリーに読み込まれます。このオプションを有効にすると、メッセージペイロードがチャンク単位でメモリーに読み込まれ、データがなくなるまで各チャンクが StreamMessage に書き込まれます。 | false | Boolean |
| camel.component.amqp.subscription-durable | サブスクリプションを永続化するかどうかを設定します。使用する永続サブスクリプション名は、subscriptionName プロパティーで指定できます。デフォルトは false です。通常、subscriptionName 値と組み合わせて永続的なサブスクリプションを登録するには、これを true に設定します (メッセージリスナークラス名がサブスクリプション名として十分でない場合)。トピック (pub-sub ドメイン) をリッスンする場合にのみ意味があるため、このメソッドは pubSubDomain フラグも切り替えます。 | false | Boolean |
| camel.component.amqp.subscription-name | 作成するサブスクリプションの名前を設定します。共有または永続的なサブスクリプションを持つトピック (pub-sub ドメイン) の場合に適用されます。サブスクリプション名は、このクライアントの JMS クライアント ID 内で一意である必要があります。デフォルトは、指定されたメッセージリスナーのクラス名です。注: 共有サブスクリプション (JMS 2.0 が必要) を除き、サブスクリプションごとに 1 つの同時コンシューマー (このメッセージリスナコンテナーのデフォルト) のみが許可されます。 | String | |
| camel.component.amqp.subscription-shared | サブスクリプションを共有するかどうかを設定します。使用する共有サブスクリプション名は、subscriptionName プロパティーで指定できます。デフォルトは false です。通常は subscriptionName 値と組み合わせて共有サブスクリプションを登録するには、これを true に設定します (メッセージリスナークラス名がサブスクリプション名として十分でない場合)。共有サブスクリプションも永続的である可能性があるため、このフラグを subscriptionDurable と組み合わせることもできます (多くの場合は組み合わせます)。トピック (pub-sub ドメイン) をリッスンする場合にのみ意味があるため、このメソッドは pubSubDomain フラグも切り替えます。JMS 2.0 互換のメッセージブローカーが必要です。 | false | Boolean |
| camel.component.amqp.task-executor | メッセージを消費するためのカスタムタスクエグゼキュータを指定できます。オプションは org.springframework.core.task.TaskExecutor 型です。 | String | |
| camel.component.amqp.test-connection-on-startup | 起動時に接続をテストするかどうかを指定します。これにより、Camel の起動時に、すべての JMS コンシューマーが JMS ブローカーへの有効な接続を持つことが保証されます。接続を許可できない場合、Camel は起動時に例外を出力します。これにより、接続に失敗した状態で Camel が開始されなくなります。JMS プロデューサーもテストされています。 | false | Boolean |
| camel.component.amqp.time-to-live | メッセージの送信時に、メッセージの有効期限をミリ秒単位で指定します。 | -1 | Long |
| camel.component.amqp.transacted | トランザクションモードを使用するかどうかを指定します | false | Boolean |
| camel.component.amqp.transaction-manager | 使用する Spring トランザクションマネージャー。オプションは org.springframework.transaction.PlatformTransactionManager 型です。 | String | |
| camel.component.amqp.transaction-name | 使用するトランザクションの名前。 | String | |
| camel.component.amqp.transaction-timeout | トランザクションモードを使用している場合の、トランザクションのタイムアウト値 (秒単位)。 | -1 | Integer |
| camel.component.amqp.transfer-exception | 有効で、Request Reply メッセージング (InOut) を使用していて、Exchange がコンシューマー側で失敗した場合、原因となった例外が javax.jms.ObjectMessage として応答で返されます。クライアントが Camel の場合、返された Exception は再出力されます。これにより、Camel JMS をルーティングのブリッジとして使用できます。たとえば、永続的なキューを使用して堅牢なルーティングを有効にできます。transferExchange も有効にしている場合は、このオプションが優先されることに注意してください。キャッチされた例外はシリアライズ可能である必要があります。コンシューマー側の元の Exception は、プロデューサーに返されるときに org.apache.camel.RuntimeCamelException などの外部例外にラップできます。 | false | Boolean |
| camel.component.amqp.transfer-exchange | 本文とヘッダーだけでなく、電信送金で交換を転送できます。次のフィールドが転送されます: In body、Out body、Fault body、In ヘッダー、Out ヘッダー、Fault ヘッダー、交換プロパティー、交換例外。これには、オブジェクトがシリアライズ可能である必要があります。Camel はシリアル化できないオブジェクトを除外し、WARN レベルでログに記録します。プロデューサ側とコンシューマー側の両方でこのオプションを有効にする必要があるため、Camel はペイロードが Exchange であり、通常のペイロードではないことを認識します。 | false | Boolean |
| camel.component.amqp.transfer-fault | これを有効にし、Request Reply メッセージング (InOut) を使用していて、Exchange がコンシューマー側で SOAP エラー (例外ではない) で失敗した場合には、Message#isFault() のエラーフラグが応答で、org.apache.camel.component.jms.JmsConstants#JMS_TRANSFER_FAULT#JMS_TRANSFER_FAULT のキーを含んだ JMS ヘッダーとして送り返されます。クライアントが Camel の場合には、返される障害フラグは org.apache.camel.Message#setFault (boolean) に設定されます。cxf や spring-ws などの SOAP ベースなどの障害をサポートする Camel コンポーネントを使用する場合、これを有効できます。 | false | Boolean |
| camel.component.amqp.use-message-i-d-as-correlation-i-d | InOut メッセージの JMSCorrelationID として JMSMessageID を常に使用するかどうかを指定します。 | false | Boolean |
| camel.component.amqp.username | ConnectionFactory で使用するユーザー名。また、ConnectionFactory でユーザー名およびパスワードを直接設定することもできます。 | String | |
| camel.component.amqp.wait-for-provision-correlation-to-be-updated-counter | JMS を介して要求/応答を行う場合、およびオプション useMessageIDAsCorrelationID が有効な場合に、暫定相関 ID が実際の相関 ID に更新されるのを待機する回数。 | 50 | Integer |
| camel.component.amqp.wait-for-provision-correlation-to-be-updated-thread-sleeping-time | 暫定相関 ID が更新されるのを待機するたびにスリープする間隔 (ミリ単位)。 | 100 | Long |
5.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
AMQP コンポーネントは JMS コンポーネントから継承されるため、前者の使用法は後者とほぼ同じです。
AMQP コンポーネントの使用
5.5. AMQP コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.16.1 以降では 、AMQPComponent#amqp10Component (String connectionURI) ファクトリーメソッドを使用して、事前設定されたトピックの接頭辞を付けて AMQP 1.0 コンポーネントを返すこともできます。
AMQP 1.0 コンポーネントの作成
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
Camel 2.17 以降、AMQPComponent#amqp10Component (String connectionURI) ファクトリーメソッドが非推奨になり、AMQPComponent#amqpComponent (String connectionURI) が後継となったことに注意してください。
AMQP 1.0 コンポーネントの作成
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
Camel 2.17 以降、AMQP コンポーネントを自動的に設定するために、org.apache.camel.component.amqp.AMQPConnectionDetails のインスタンスをレジストリーに追加することもできます。たとえば、Spring Boot の場合には、Bean を定義するだけです。
AMQP 接続の詳細の自動設定
同様に、Camel-CDI を使用する場合は、CDI プロデューサーメソッドも使用できます。
CDI の AMQP 接続の詳細の自動設定
@Produces
AMQPConnectionDetails amqpConnection() {
return new AMQPConnectionDetails("amqp://localhost:5672");
}
@Produces
AMQPConnectionDetails amqpConnection() {
return new AMQPConnectionDetails("amqp://localhost:5672");
}
Camel プロパティー を利用して、AMQP 接続の詳細を読み取ることもできます。ファクトリーメソッド AMQPConnectionDetails.discoverAMQP() は、以下のスニペットで示されているように、Kubernetes に似た規則で Camel プロパティーを読み取ろうとします。
AMQP 接続の詳細の自動設定
AMQP 固有のオプションを有効にする
たとえば、amqp.traceFrames を有効にする必要がある場合は、次の例のように、オプションを URI に追加することで有効にできます。
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
参考までに、QPID JMS クライアント設定 を参照してください。
5.6. トピックの使用 リンクのコピーリンクがクリップボードにコピーされました!
camel-amqp でトピックを使用するには、以下に示すように、topic:// をトピック接頭辞として使用するようにコンポーネントを設定する必要があります。
AMQPComponent#amqpComponent() メソッドと AMQPConnectionDetails の両方がトピック接頭辞を使用してコンポーネントを事前設定するので、明示的に設定する必要がないことに注意してください。
5.7. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
第6章 APNS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.8 以降で利用可能
apns コンポーネントは、iOS デバイスに通知を送信するために使用されます。apns コンポーネントは javapns ライブラリーを使用します。
このコンポーネントは、Apple Push Notification Servers (APNS) への通知送信と、サーバーからのフィードバックの消費をサポートしています。
Apple Push Notification Servers からのフィードバックストリームは、たまに消費することがベストプラクティスであるので、デフォルトでは、コンシューマーのポーリングは 3600 秒に設定されています。例: サーバーのフラッディングを避けるために 1 時間ごと。
フィードバックストリームは、アクティブではないデバイスに関する情報を提供します。モバイルアプリケーションが頻繁に使用されていない場合は、数時間ごとにこの情報を取得するだけで済みます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
6.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
通知を送信するには、以下を実行します。
apns:notify[?options]
apns:notify[?options]
フィードバックを利用するには、以下を実行します。
apns:consumer[?options]
apns:consumer[?options]
6.2. オプション リンクのコピーリンクがクリップボードにコピーされました!
APNS コンポーネントは、次に示す 2 つのオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| apnsService (common) | 必須 使用する ApnsService。org.apache.camel.component.apns.factory.ApnsServiceFactory を使用して ApnsService を構築できます | ApnsService | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
APNS エンドポイントは、URI 構文を使用して設定されます。
apns:name
apns:name
パスおよびクエリーパラメーターを使用します。
6.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| name | エンドポイントの名前 | String |
6.2.2. クエリーパラメーター (20 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| tokens (common) | 通知するデバイスに関連するトークンを静的に宣言する場合は、このプロパティーを設定します。トークンはコンマで区切られます。 | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
6.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 3 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.apns.apns-service | 使用する ApnsService。org.apache.camel.component.apns.factory.ApnsServiceFactory を使用して ApnsService を構築できます。オプションは com.notnoop.apns.ApnsService タイプです。 | String | |
| camel.component.apns.enabled | apns コンポーネントを有効にします。 | true | Boolean |
| camel.component.apns.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
URI には、?option=value&option=value&… の形式でクエリーオプションを追加できます。
6.3.1. コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ApnsComponent は com.notnoop.apns.ApnsService で設定する必要があります。サービスは、org.apache.camel.component.apns.factory.ApnsServiceFactory を使用して作成および設定できます。例については、以下を参照してください。また、テストソースコード でも同様です。
6.3.1.1. SSL 設定 リンクのコピーリンクがクリップボードにコピーされました!
安全な接続を使用するには、コンポーネントの設定に使用される org.apache.camel.component.apns.factory.ApnsServiceFactory に org.apache.camel.util.jsse.SSLContextParameters のインスタンスを注入する必要があります。例については、テストリソースを参照してください。SSL の例
6.4. Exchange データ形式 リンクのコピーリンクがクリップボードにコピーされました!
Camel がアクティブではないデバイスに対応するフィードバックデータを取得するタイミングで、InactiveDevice オブジェクトのリストを取得します。取得されたリストの各 InactiveDevice オブジェクトは In ボディーとして設定され、コンシューマーエンドポイントによって処理されます。
6.5. メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
Camel Apns はこれらのヘッダーを使用します。
| プロパティー | デフォルト | 説明 |
|---|---|---|
|
| デフォルトでは空です。 | |
|
|
| メッセージタイプに PAYLOAD を選択した場合には、メッセージは APNS ペイロードと見なされ、そのまま送信されます。STRING を選択した場合には、メッセージは APNS ペイロードとして変換されます。Camel 2.16 以降では、メッセージボディーを com.notnoop.apns.ApnsNotification タイプとして送信するために APNS_NOTIFICATION が使用されます。 |
6.6. ApnsServiceFactory builder callback リンクのコピーリンクがクリップボードにコピーされました!
ApnsServiceFactory には、デフォルトの ApnsServiceBuilder インスタンスを設定 (または置換) するために使用できる空のコールバックメソッドが付属しています。メソッドのシグネチャーは次のようになります。
protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder);
protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder);
そして、次のように使用できます。
6.7. サンプル リンクのコピーリンクがクリップボードにコピーされました!
6.7.1. Camel Xml ルート リンクのコピーリンクがクリップボードにコピーされました!
6.7.2. Camel Java ルート リンクのコピーリンクがクリップボードにコピーされました!
camel コンテキストを作成し、apns コンポーネントをプログラムで宣言する
[[APNS-ApnsProducer-iOStargetdevicedynamicallyconfiguredviaheader:"CamelApnsTokens"]] ApnsProducer - ヘッダー経由で動的に設定された iOS ターゲットデバイス: " CamelApnsTokens "
ApnsProducer - URI を介して静的に設定された iOS ターゲットデバイス
ApnsConsumer
from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
.to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
.to("mock:result");
from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
.to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
.to("mock:result");
6.8. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第7章 ASN.1 File DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
ASN.1 データ形式 Data Format Intoduction to ASN.1(https://www.itu.int/en/ITU-T/asn1/Pages/introduction.aspx) は、Bouncy に基づく Camel Frameworks のデータ形式の実装です。Castle の bcprov-jdk15on ライブラリーと jASN.1 の Java コンパイラーは、アプリケーションが複雑であろうと非常に単純であろうと、言語実装やこれらのデータの物理表現に関係なく、通信プロトコルによって送信されるデータを記述するために使用される正式な表記法に使用されます。メッセージはプレーン Java オブジェクトに非整列化 (単純な Java POJO への変換) できます。Camel のルーティングエンジンとデータ変換の助けを借りて、POJO を操作し、カスタマイズされた書式を適用し、他の Camel コンポーネントを呼び出してメッセージを変換し、上流のシステムに送信することができます。
7.1. ASN.1 データ形式オプション リンクのコピーリンクがクリップボードにコピーされました!
ASN.1 ファイルのデータ形式は、以下に示す 3 個のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| usingIterator |
|
| asn1 ファイルに複数のエントリーがある場合には、このオプションを true に設定すると、スプリッター EIP を使用して、ストリーミングモードで反復子を使用してデータを分割できます。 |
| clazzName |
| アンマーシャリング時に使用するクラスの名前 | |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
7.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 4 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.dataformat.asn1.clazz-name | アンマーシャリング時に使用するクラスの名前 | String | |
| camel.dataformat.asn1.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.asn1.enabled | asn1 データ形式の自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.dataformat.asn1.using-iterator | asn1 ファイルに複数のエントリーがある場合には、このオプションを true に設定すると、スプリッター EIP を使用して、ストリーミングモードで反復子を使用してデータを分割できます。 | false | Boolean |
ND
7.3. Unmarshal リンクのコピーリンクがクリップボードにコピーされました!
ASN.1 構造化メッセージを非整列化するには、3 つの異なる方法があります。(通常はバイナリーファイル)
この最初の例では、BER ファイルペイロードを OutputStream にアンマーシャリングし、モックエンドポイントに送信します。
from("direct:unmarshal").unmarshal(asn1).to("mock:unmarshal");
from("direct:unmarshal").unmarshal(asn1).to("mock:unmarshal");
2 番目の例では、Split EIP を使用して BER ファイルペイロードをバイト配列に非整列化します。分割 EIP を適用する理由は、通常、各 BER ファイルまたは (ASN.1 構造化ファイル) には処理する複数のレコードが含まれており、分割 EIP はファイル内の各レコードを実際に ASN1Primitive のインスタンスであるバイト配列として取得するのに役立つためです (bcprov-jdk15on ライブラリーでの Bouncy Castle の ASN.1 サポート) 次に、(ASN1Primitive.fromByteArray) の public static メソッドを使用して、バイト配列を ASN1Primitive に変換できます。このような例では、usingIterator=true を設定する必要があることに注意してください。
from("direct:unmarshal").unmarshal(asn1).split(body(Iterator.class)).streaming().to("mock:unmarshal");
from("direct:unmarshal").unmarshal(asn1).split(body(Iterator.class)).streaming().to("mock:unmarshal");
最後の例では、分割 EIP を使用して BER ファイルペイロードをプレーンな古い Java オブジェクトに非整列化します。分割 EIP を適用する理由は、前の例ですでに説明されています。その理由に注意して覚えておいてください。このような例では、クラスの完全修飾名または <YourObject>.class 参照をデータ形式で設定する必要もあります。ここで注意すべき重要なことは、オブジェクトは、ASN.1 構造の Java オブジェクト表現を生成する優れたツールである jasn1 コンパイラーによって生成されている必要があるということです。jasn1 コンパイラーの参照用法については、JASN.1 プロジェクトページ (https://www.openmuc.org/asn1/) を参照してください。また、maven の exec プラグインを使用してコンパイラーを呼び出す方法も参照してください。たとえば、このデータ形式の単体テストでは、サンプルの ASN.1 構造体 (TestSMSBerCdr.asn1) が src/test/resources/asn1_structure に追加されます。jasn1 コンパイラーが呼び出され、Java オブジェクトの表現 が ${basedir}/target/generated/src/test/java に生成されます。
from("direct:unmarshaldsl")
.unmarshal()
.asn1("org.apache.camel.dataformat.asn1.model.testsmscbercdr.SmsCdr")
.split(body(Iterator.class)).streaming()
.to("mock:unmarshaldsl");
from("direct:unmarshaldsl")
.unmarshal()
.asn1("org.apache.camel.dataformat.asn1.model.testsmscbercdr.SmsCdr")
.split(body(Iterator.class)).streaming()
.to("mock:unmarshaldsl");
7.4. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
camel ルートで ASN.1 データ形式を使用するには、このデータ形式を実装する camel-asn1 に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加するだけで、バージョン番号を最新かつ最高のリリースに置き換えます (最新バージョンのダウンロードページを参照してください)。
第8章 AS2 Component リンクのコピーリンクがクリップボードにコピーされました!
Karaf の camel-as2 コンポーネントは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。
テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Camel バージョン 2.22 以降で利用可能
AS2 コンポーネントは、RFC4130 で指定されている HTTP 転送プロトコルを使用して、EDI メッセージの転送を提供します。
このコンポーネントは現在進行中です。このコンポーネントの将来のバージョンでは、URI オプションとパスおよびクエリーパラメーターが変更されることが予想されます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
8.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
as2://apiName/methodName
as2://apiName/methodName
apiName は次のいずれかです。
- クライアント
- server
8.2. AS2 オプション リンクのコピーリンクがクリップボードにコピーされました!
AS2 コンポーネントは、以下に示す 2 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有設定を使用するには | AS2Configuration | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AS2 エンドポイントは、URI 構文を使用して設定されます。
as2:apiName
as2:apiName
パスおよびクエリーパラメーターを使用します。
8.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| apiName | 必須 操作の種類 | AS2ApiName |
8.2.2. クエリーパラメーター (30 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| as2From (common) | AS2 メッセージの AS2From ヘッダーの値。 | String | |
| as2MessageStructure (common) | AS2 メッセージの構造。PLAIN - 暗号化なし、署名なし、SIGNED - 暗号化なし、署名、ENCRYPTED - 暗号化あり、署名なし、ENCRYPTED_SIGNED - 暗号化あり、署名 | AS2MessageStructure | |
| as2To (common) | AS2 メッセージの AS2To ヘッダーの値。 | String | |
| as2Version (common) | AS2 プロトコルのバージョン。 | 1.1 | String |
| clientFqdn (common) | クライアントの完全修飾ドメイン名 (FQDN)。エンドポイントによって送信されるメッセージ ID で使用されます。 | camel.apache.org | String |
| dispositionNotificationTo (common) | Disposition-Notification-To ヘッダーの値。このパラメーターに値を割り当てると、AS2 メッセージのメッセージ処理通知 (MDN) が要求されます。 | String | |
| ediMessageTransferEncoding (common) | EDI メッセージの転送エンコーディング。 | String | |
| ediMessageType (common) | EDI メッセージのコンテンツタイプ。application/edifact、application/edi-x12、application/edi-consent のいずれか | ContentType | |
| encryptingAlgorithm (common) | EDI メッセージの暗号化に使用されるアルゴリズム。 | AS2EncryptionAlgorithm | |
| encryptingCertificateChain (common) | EDI メッセージの暗号化に使用される証明書のチェーン。 | Certificate[] | |
| encryptingPrivateKey (common) | EDI メッセージの暗号化に使用されるキー。 | PrivateKey | |
| from (common) | AS2 メッセージの From ヘッダーの値。 | String | |
| inBody (common) | ボディにて交換で渡されるパラメーターの名前を設定します。 | String | |
| methodName (common) | 必須: 選択した操作に使用するサブ操作 | String | |
| requestUri (common) | EDI メッセージのリクエスト URI。 | / | String |
| server (common) | AS2 サーバーを識別するサーバーメッセージヘッダーに含まれる値。 | Camel AS2 サーバーエンドポイント | String |
| serverFqdn (common) | サーバーの完全修飾ドメイン名 (FQDN)。エンドポイントによって送信されるメッセージ ID で使用されます。 | camel.apache.org | String |
| serverPortNumber (common) | サーバーのポート番号。 | Integer | |
| signedReceiptMicAlgorithms (common) | メッセージ破棄通知 (MDN) で返されるメッセージ整合性チェック (MIC) を生成するために要求されたアルゴリズムのリスト (優先順)。 | String[] | |
| signingAlgorithm (common) | EDI メッセージの署名に使用されるアルゴリズム。 | AS2SignatureAlgorithm | |
| signingCertificateChain (common) | EDI メッセージの署名に使用される証明書のチェーン。 | Certificate[] | |
| signingPrivateKey (common) | EDI メッセージの署名に使用される鍵。 | PrivateKey | |
| subject (common) | AS2 メッセージの Subject ヘッダーの値。 | String | |
| targetHostname (common) | ターゲットホストのホスト名 (IP または DNS 名)。 | String | |
| targetPortNumber (common) | ターゲットホストのポート番号。-1 はスキームのデフォルトポートを示します。 | Integer | |
| userAgent (common) | AS2 ユーザーエージェントを識別する User-Agent メッセージヘッダーに含まれる値。 | Camel AS2 クライアントエンドポイント | String |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
8.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 28 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.as2.configuration.api-name | 実行する操作の種類 | AS2ApiName | |
| camel.component.as2.configuration.as2-from | AS2 メッセージの AS2From ヘッダーの値。 | String | |
| camel.component.as2.configuration.as2-message-structure | AS2 メッセージの構造。PLAIN - 暗号化なし、署名なし、SIGNED - 暗号化なし、署名、ENCRYPTED - 暗号化あり、署名なし、ENCRYPTED_SIGNED - 暗号化あり、署名 | AS2MessageStructure | |
| camel.component.as2.configuration.as2-to | AS2 メッセージの AS2To ヘッダーの値。 | String | |
| camel.component.as2.configuration.as2-version | AS2 プロトコルのバージョン。 | 1.1 | String |
| camel.component.as2.configuration.client-fqdn | クライアントの完全修飾ドメイン名 (FQDN)。エンドポイントによって送信されるメッセージ ID で使用されます。 | camel.apache.org | String |
| camel.component.as2.configuration.disposition-notification-to | Disposition-Notification-To ヘッダーの値。このパラメーターに値を割り当てると、AS2 メッセージのメッセージ処理通知 (MDN) が要求されます。 | String | |
| camel.component.as2.configuration.edi-message-transfer-encoding | EDI メッセージの転送エンコーディング。 | String | |
| camel.component.as2.configuration.edi-message-type | EDI メッセージのコンテンツタイプ。application/edifact、application/edi-x12、application/edi-consent のいずれか | ContentType | |
| camel.component.as2.configuration.encrypting-algorithm | EDI メッセージの暗号化に使用されるアルゴリズム。 | AS2EncryptionAlgorithm | |
| camel.component.as2.configuration.encrypting-certificate-chain | EDI メッセージの暗号化に使用される証明書のチェーン。 | Certificate[] | |
| camel.component.as2.configuration.encrypting-private-key | EDI メッセージの暗号化に使用されるキー。 | PrivateKey | |
| camel.component.as2.configuration.from | AS2 メッセージの From ヘッダーの値。 | String | |
| camel.component.as2.configuration.method-name | 選択した操作に使用するサブ操作 | String | |
| camel.component.as2.configuration.request-uri | EDI メッセージのリクエスト URI。 | / | String |
| camel.component.as2.configuration.server | AS2 サーバーを識別するサーバーメッセージヘッダーに含まれる値。 | Camel AS2 サーバーエンドポイント | String |
| camel.component.as2.configuration.server-fqdn | サーバーの完全修飾ドメイン名 (FQDN)。エンドポイントによって送信されるメッセージ ID で使用されます。 | camel.apache.org | String |
| camel.component.as2.configuration.server-port-number | サーバーのポート番号。 | Integer | |
| camel.component.as2.configuration.signed-receipt-mic-algorithms | メッセージ破棄通知 (MDN) で返されるメッセージ整合性チェック (MIC) を生成するために要求されたアルゴリズムのリスト (優先順)。 | String[] | |
| camel.component.as2.configuration.signing-algorithm | EDI メッセージの署名に使用されるアルゴリズム。 | AS2SignatureAlgorithm | |
| camel.component.as2.configuration.signing-certificate-chain | EDI メッセージの署名に使用される証明書のチェーン。 | Certificate[] | |
| camel.component.as2.configuration.signing-private-key | EDI メッセージの署名に使用される鍵。 | PrivateKey | |
| camel.component.as2.configuration.subject | AS2 メッセージの Subject ヘッダーの値。 | String | |
| camel.component.as2.configuration.target-hostname | ターゲットホストのホスト名 (IP または DNS 名)。 | String | |
| camel.component.as2.configuration.target-port-number | ターゲットホストのポート番号。-1 はスキームのデフォルトポートを示します。 | Integer | |
| camel.component.as2.configuration.user-agent | AS2 ユーザーエージェントを識別する User-Agent メッセージヘッダーに含まれる値。 | Camel AS2 クライアントエンドポイント | String |
| camel.component.as2.enabled | as2 コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.as2.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
8.4. クライアントエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
クライアントエンドポイントは、エンドポイント 接頭辞 client の後にメソッドの名前と次に説明する関連オプションを使用します。エンドポイント URI には接頭辞 client が含まれている必要があります。
as2://client/method?[options]
as2://client/method?[options]
必須ではないエンドポイントオプションは [] で示されます。エンドポイントに必須のオプションがない場合、[] オプションのセットの 1 つを提供する必要があります。プロデューサエンドポイントは、特別なオプション inBody を 使用することもできます。このオプションには、値が Camel Exchange In メッセージに含まれるエンドポイントオプションの名前が含まれている必要があります。
エンドポイントオプションは、エンドポイント URI またはメッセージヘッダーで動的に指定できます。メッセージヘッダー名は CamelAS2.<option> の形式である必要があります。inBody オプションはメッセージヘッダーをオーバーライドすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelAS2.option ヘッダーをオーバーライドします。
エンドポイント URI またはメッセージヘッダーのオプション defaultRequest に値が指定されていない場合は、null と見なされます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
AS2 API エラーの場合、エンドポイントは org.apache.http.HttpException から生成された例外が原因で RuntimeCamelException を出力します。
| メソッド | オプション | 結果ボディーのタイプ |
|---|---|---|
| send | ediMessage、requestUri、subject、from、as2From、as2To、as2MessageStructure、ediMessageContentType、ediMessageTransferEncoding、dispositionNotificationTo、signedReceiptMicAlgorithms | org.apache.http.protocol.HttpCoreContext |
クライアント の URI オプション
| 名前 | タイプ |
|---|---|
| ediMessage | String |
| requestUri | String |
| subject | String |
| from | String |
| as2From | String |
| as2To | String |
| as2MessageStructure | org.apache.camel.component.as2.api.AS2MessageStructure |
| ediMessageContentType | String |
| ediMessageTransferEncoding | String |
| dispositionNotificationTo | String |
| signedReceiptMicAlgorithms | String[] |
8.5. サーバーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
サーバーエンドポイントは、エンドポイント 接頭辞 server を使用し、その後にメソッドの名前と次に説明する関連オプションを続けます。エンドポイント URI には、接頭辞 server が 含まれている必要があります。
as2://server/method?[options]
as2://server/method?[options]
必須ではないエンドポイントオプションは [] で示されます。エンドポイントに必須のオプションがない場合、[] オプションのセットの 1 つを提供する必要があります。プロデューサエンドポイントは、特別なオプション inBody を 使用することもできます。このオプションには、値が Camel Exchange In メッセージに含まれるエンドポイントオプションの名前が含まれている必要があります。
エンドポイントオプションは、エンドポイント URI またはメッセージヘッダーで動的に指定できます。メッセージヘッダー名は CamelAS2.<option> の形式である必要があります。inBody オプションはメッセージヘッダーをオーバーライドすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelAS2.option ヘッダーをオーバーライドします。
エンドポイント URI またはメッセージヘッダーのオプション defaultRequest に値が指定されていない場合は、null と見なされます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
AS2 API エラーの場合、エンドポイントは org.apache.http.HttpException から生成された例外が原因で RuntimeCamelException を出力します。
| メソッド | オプション | 結果ボディーのタイプ |
|---|---|---|
| listen | requestUriPattern | org.apache.http.protocol.HttpCoreContext |
サーバー の URI オプション
| 名前 | タイプ |
|---|---|
| requestUriPattern | String |
第9章 アスタリスクコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.18 以降で利用可能
asterisk: コンポーネントを使用すると、asterisk-java を使用して、Asterisk PBX サーバー http://www.asterisk.org/ を簡単に操作できます。
このコンポーネントは、Asterisk Manager Interface とのインターフェイスに役立ちます
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
9.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
asterisk:name[?options]
asterisk:name[?options]
9.2. オプション リンクのコピーリンクがクリップボードにコピーされました!
Asterisk コンポーネントにはオプションがありません。
Asterisk エンドポイントは、URI 構文を使用して設定されます。
asterisk:name
asterisk:name
パスおよびクエリーパラメーターを使用します。
9.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| name | 必須 論理名 | String |
9.2.2. クエリーパラメーター (8 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| hostname (common) | 必須 アスタリスクサーバーのホスト名 | String | |
| password (common) | 必須 ログインパスワード | String | |
| username (common) | 必須 ログインユーザー名 | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| action (producer) | キューのステータス、sip ピア、または拡張状態の取得など、実行するアクション。 | AsteriskAction | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
9.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.asterisk.enabled | アスタリスクコンポーネントを有効にする | true | Boolean |
| camel.component.asterisk.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
9.4. アクション リンクのコピーリンクがクリップボードにコピーされました!
サポートされているアクションは次のとおりです。
- QUEUE_STATUS、キューのステータス
- SIP_PEERS、SIP ピアの一覧表示
- EXTENSION_STATE、拡張ステータスをチェック
第10章 Atmos コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.15 以降で利用可能
Camel-Atmos は、Atmos Client を使用して ViPR オブジェクトデータサービスを操作できるようにする Apache Camel コンポーネントです。
from("atmos:foo/get?remotePath=/path").to("mock:test");
from("atmos:foo/get?remotePath=/path").to("mock:test");
10.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
Atmos コンポーネントは、次に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| fullTokenId (security) | Atmos クライアントに渡すトークン ID | String | |
| secretKey (security) | Atmos クライアントに渡す秘密鍵 | String | |
| uri (advanced) | Atmos クライアントが接続するサーバーの URI | String | |
| sslValidation (security) | Atmos クライアントが SSL 検証を実行する必要があるかどうか | false | boolean |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atmos エンドポイントは、URI 構文を使用して設定されます。
atmos:name/operation
atmos:name/operation
パスおよびクエリーパラメーターを使用します。
10.1.1. パスパラメーター (2 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| name | Atmos 名 | String | |
| operation | 実行するために 必要な 操作 | AtmosOperation |
10.1.2. クエリーパラメーター (12 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| enableSslValidation (common) | Atmos SSL 検証 | false | boolean |
| fullTokenId (common) | Atmos クライアントの fullTokenId | String | |
| localPath (common) | ファイルを置くローカルパス | String | |
| newRemotePath (common) | ファイル移動時の Atmos 上の新しいパス | String | |
| query (common) | Atmos での検索クエリー | String | |
| remotePath (common) | Atmos でファイルを配置する場所 | String | |
| secretKey (common) | Atmos 共有シークレット | String | |
| uri (common) | Atomos サーバー uri | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
10.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に示す 6 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atmos.enabled | atmos コンポーネントを有効にする | true | Boolean |
| camel.component.atmos.full-token-id | Atmos クライアントに渡すトークン ID | String | |
| camel.component.atmos.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.atmos.secret-key | Atmos クライアントに渡す秘密鍵 | String | |
| camel.component.atmos.ssl-validation | Atmos クライアントが SSL 検証を実行する必要があるかどうか | false | Boolean |
| camel.component.atmos.uri | Atmos クライアントが接続するサーバーの URI | String |
10.3. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
camel ルートで Atmos を使用するには、このデータ形式を実装する camel-atmos に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加するだけで、バージョン番号を最新かつ最高のリリースに置き換えます (最新バージョンのダウンロードページを参照してください)。
10.4. 統合 リンクのコピーリンクがクリップボードにコピーされました!
atmos の統合を見ると、ScheduledPollConsumer の一種である GetConsumer という 1 つのタイプのコンシューマーがあります。
-
Get
一方、生産者には 4 つのタイプがあります。
-
Get -
Del -
Move -
Put
10.5. 例 リンクのコピーリンクがクリップボードにコピーされました!
これらの例は、テストから取得されます。
from("atmos:foo/get?remotePath=/path").to("mock:test");
from("atmos:foo/get?remotePath=/path").to("mock:test");
ここでは、これはコンシューマーの例です。remotePath は、データが読み取られる場所からのパスを表し、camel exchange をプロデューサに渡します。その下で、このコンポーネントは、この操作と他のすべての操作に atmos クライアント API を使用します。
from("direct:start")
.to("atmos://get?remotePath=/dummy/dummy.txt")
.to("mock:result");
from("direct:start")
.to("atmos://get?remotePath=/dummy/dummy.txt")
.to("mock:result");
これがプロデューサーのサンプルです。remotePath は、ViPR オブジェクトデータサービスで操作が発生するパスを表します。プロデューサーでは、操作 (Get、Del、Move、Put) が ViPR オブジェクトデータサービスで実行され、結果が camel exchange のヘッダーに設定されます。
操作に関しては、次のヘッダーが camel exchange に設定されています
DOWNLOADED_FILE, DOWNLOADED_FILES, UPLOADED_FILE, UPLOADED_FILES, FOUND_FILES, DELETED_PATH, MOVED_PATH;
DOWNLOADED_FILE, DOWNLOADED_FILES, UPLOADED_FILE, UPLOADED_FILES, FOUND_FILES, DELETED_PATH, MOVED_PATH;
10.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
第11章 Atmosphere Websocket コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.14 以降で利用可能
Attention-websocket: コンポーネントは、Websocket を介して外部クライアントと通信するサーブレットに Websocket ベースのエンドポイントを提供します (外部クライアントからの Websocket 接続を受け入れるサーブレットとして)。
このコンポーネントは、SERVLET コンポーネントを使用し、Atmosphere ライブラリーを使用して、さまざまなサーブレットコンテナー (Jetty、Tomcat など) で Websocket トランスポートをサポートします。
組み込みの Jetty サーバーを起動する Websocket コンポーネントとは異なり、このコンポーネントはコンテナーのサーブレットプロバイダーを使用します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
11.1. Atmosphere-Websocket オプション リンクのコピーリンクがクリップボードにコピーされました!
Atmosphere Websocket コンポーネントは、以下に示す 9 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| servletName (consumer) | 使用するサーブレットのデフォルト名。デフォルト名は CamelServlet です。 | CamelServlet | String |
| httpRegistry (consumer) | カスタム org.apache.camel.component.servlet.HttpRegistry を使用します。 | HttpRegistry | |
| attachmentMultipart Binding (consumer) | Camel エクスチェンジで multipart/form-data を添付として自動的にバインドするかどうか。オプション attachmentMultipartBinding=true と disableStreamCache=false は一緒に使用できません。AttachmentMultipartBinding を使用するには、disableStreamCache を削除します。サーブレットの使用時にこれを有効にするには、サーブレット固有の設定が必要になる場合があるため、これはデフォルトでオフになっています。 | false | boolean |
| fileNameExtWhitelist (consumer) | アップロードされたファイルを受け入れるための受け入れられたファイル名拡張子のホワイトリスト。複数の拡張子は、txt、xml のようにコンマで区切ることができます。 | String | |
| httpBinding (advanced) | カスタム HttpBinding を使用して、Camel メッセージと HttpClient との間のマッピングを制御します。 | HttpBinding | |
| httpConfiguration (advanced) | 共有 HttpConfiguration を基本設定として使用するには、以下を行います。 | HttpConfiguration | |
| allowJavaSerialized Object (advanced) | リクエストが context-type=application/x-java-serialized-object を使用する場合に Java シリアル化を許可するかどうか。これは、デフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | boolean |
| headerFilterStrategy (filter) | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。 | HeaderFilterStrategy | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atmosphere Websocket エンドポイントは、URI 構文を使用して設定されます。
atmosphere-websocket:servicePath
atmosphere-websocket:servicePath
パスおよびクエリーパラメーターを使用します。
11.1.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| servicePath | 必須 Websocket エンドポイントの名前 | String |
11.1.2. クエリーパラメーター (38 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| chunked (common) | このオプションが false の場合、サーブレットは HTTP ストリーミングを無効にし、応答に content-length ヘッダーを設定します。 | true | boolean |
| disableStreamCache (common) | サーブレットからの生の入力ストリームがキャッシュされるかどうかを決定します (Camel はストリームをメモリー内/ファイルへのオーバーフロー、ストリームキャッシュに読み込みます)。デフォルトでは、Camel はサーブレット入力ストリームをキャッシュして複数回の読み取りをサポートし、Camel がストリームからすべてのデータを取得できるようにします。ただし、ファイルやその他の永続ストアに直接ストリーミングするなど、生のストリームにアクセスする必要がある場合は、このオプションを true に設定できます。ストリームの複数回の読み取りをサポートするためにこのオプションが false の場合、DefaultHttpBinding は要求入力ストリームをストリームキャッシュにコピーし、それをメッセージ本文に入れます。サーブレットを使用してエンドポイントをブリッジ/プロキシーする場合、メッセージペイロードを複数回読み取る必要がない場合は、このオプションを有効にしてパフォーマンスを向上させることを検討してください。http/http4 プロデューサーは、デフォルトでレスポンスボディーストリームをキャッシュします。このオプションを true に設定すると、プロデューサは応答本文ストリームをキャッシュせず、応答ストリームをそのままメッセージ本文として使用します。 | false | boolean |
| headerFilterStrategy (common) | カスタムの HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルタリングします。 | HeaderFilterStrategy | |
| sendToAll (common) | すべてに送信する (ブロードキャスト) か、単一の受信者に送信するか。 | false | boolean |
| transferException (common) | 有効にすると、エクスチェンジがコンシューマー側で処理に失敗し、発生した例外が application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合に、例外がシリアライズされました。プロデューサー側では、例外がデシリアライズされ、HttpOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。これは、デフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | boolean |
| useStreaming (common) | ストリーミングを有効にして、データを複数のテキストフラグメントとして送信します。 | false | boolean |
| httpBinding (common) | カスタム HttpBinding を使用して、Camel メッセージと HttpClient との間のマッピングを制御します。 | HttpBinding | |
| async (consumer) | 非同期モードで動作するようにコンシューマーを設定します | false | boolean |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| httpMethodRestrict (consumer) | GET/POST/PUT など、HttpMethod が一致する場合にのみ消費を許可するために使用されます。複数のメソッドをコンマで区切って指定できます。 | String | |
| matchOnUriPrefix (consumer) | 完全に一致するものが見つからない場合に、コンシューマーが URI 接頭辞を照合してターゲットコンシューマーを見つけようとするかどうか。 | false | boolean |
| responseBufferSize (consumer) | javax.servlet.ServletResponse. | Integer | |
| servletName (consumer) | 使用するサーブレットの名前 | CamelServlet | String |
| attachmentMultipartBinding (consumer) | Camel エクスチェンジで multipart/form-data を添付として自動的にバインドするかどうか。オプション attachmentMultipartBinding=true と disableStreamCache=false は一緒に使用できません。AttachmentMultipartBinding を使用するには、disableStreamCache を削除します。サーブレットの使用時にこれを有効にするには、サーブレット固有の設定が必要になる場合があるため、これはデフォルトでオフになっています。 | false | boolean |
| eagerCheckContentAvailable (consumer) | content-length ヘッダーが 0 または存在しない場合に、HTTP リクエストにコンテンツがあるかどうかを先行チェックするかどうか。これは、HTTP クライアントがストリーミングデータを送信しない場合に有効にすることができます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| fileNameExtWhitelist (consumer) | アップロードされたファイルを受け入れるための受け入れられたファイル名拡張子のホワイトリスト。複数の拡張子は、txt、xml のようにコンマで区切ることができます。 | String | |
| optionsEnabled (consumer) | このサーブレットコンシューマーに対して HTTP OPTIONS を有効にするかどうかを指定します。デフォルトでは、OPTIONS はオフになっています。 | false | boolean |
| traceEnabled (consumer) | このサーブレットコンシューマーに対して HTTP TRACE を有効にするかどうかを指定します。デフォルトでは、TRACE はオフになっています。 | false | boolean |
| bridgeEndpoint (producer) | オプションが true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、エンドポイントの URI を要求に使用します。オプション throwExceptionOnFailure を false に設定して、HttpProducer がすべての障害応答を送り返すようにすることもできます。 | false | boolean |
| connectionClose (producer) | Connection Close ヘッダーを HTTP 要求に追加する必要があるかどうかを指定します。デフォルトでは、connectionClose は false です。 | false | boolean |
| copyHeaders (producer) | このオプションが true の場合、IN 交換ヘッダーは、コピー戦略に従って OUT 交換ヘッダーにコピーされます。これを false に設定すると、HTTP 応答からのヘッダーのみを含めることができます (IN ヘッダーは伝播されません)。 | true | boolean |
| httpMethod (producer) | 使用する HTTP メソッドを設定します。設定されている場合、HttpMethod ヘッダーはこのオプションをオーバーライドできません。 | HttpMethods | |
| ignoreResponseBody (producer) | このオプションが true の場合、http プロデューサーは応答本文を読み取らず、入力ストリームをキャッシュしません。 | false | boolean |
| preserveHostHeader (producer) | オプションが true の場合、HttpProducer は Host ヘッダーを現在の Exchange Host ヘッダーに含まれる値に設定します。これは、ダウンストリームサーバーが受信した Host ヘッダーにアップストリームクライアントが呼び出した URL を反映させたいリバースプロキシーアプリケーションで役立ちます。Host ヘッダーを使用するアプリケーションが、プロキシーされたサービスの正確な URL を生成できるようにします。 | false | boolean |
| throwExceptionOnFailure (producer) | リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。 | true | boolean |
| cookieHandler (producer) | HTTP セッションを維持するようにクッキーハンドラーを設定します。 | CookieHandler | |
| okStatusCodeRange (producer) | 正常な応答と見なされるステータスコード。値は含まれます。複数の範囲をコンマで区切って定義できます (例: 200-204,209,301-304)。各範囲は、ダッシュを含む 1 つの数字または from-to である必要があります。 | 200-299 | String |
| urlRewrite (producer) | 非推奨 カスタム org.apache.camel.component.http.UrlRewrite を参照して、エンドポイントをブリッジ/プロキシーするときに URL を書き換えることができます。詳細は、http://camel.apache.org/urlrewrite.html を参照してください。 | UrlRewrite | |
| mapHttpMessageBody (advanced) | このオプションが true の場合、交換の IN exchange ボディは HTTP ボディにマップされます。これを false に設定すると、HTTP マッピングが回避されます。 | true | boolean |
| mapHttpMessageFormUrl EncodedBody (advanced) | このオプションが true の場合、交換の IN exchange Form Encoded ボディは HTTP にマップされます。これを false に設定すると、HTTP Form Encoded ボディマッピングが回避されます。 | true | boolean |
| mapHttpMessageHeaders (advanced) | このオプションが true の場合、交換の IN exchange ヘッダーは HTTP ヘッダーにマップされます。これを false に設定すると、HTTP ヘッダーのマッピングが回避されます。 | true | boolean |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| proxyAuthScheme (proxy) | 使用するプロキシー認証スキーム | String | |
| proxyHost (proxy) | 使用するプロキシーホスト名 | String | |
| proxyPort (proxy) | 使用するプロキシーポート | int | |
| authHost (security) | NTML で使用する認証ホスト | String |
11.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に示す 10 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atmosphere-websocket.allow-java-serialized-object | リクエストが context-type=application/x-java-serialized-object を使用する場合に Java シリアル化を許可するかどうか。これは、デフォルトでオフになっています。これを有効にすると、Java が受信データをリクエストから Java にデシリアライズし、セキュリティー上のリスクが生じる可能性があることに注意してください。 | false | Boolean |
| camel.component.atmosphere-websocket.attachment-multipart-binding | Camel エクスチェンジで multipart/form-data を添付として自動的にバインドするかどうか。オプション attachmentMultipartBinding=true と disableStreamCache=false は一緒に使用できません。AttachmentMultipartBinding を使用するには、disableStreamCache を削除します。サーブレットの使用時にこれを有効にするには、サーブレット固有の設定が必要になる場合があるため、これはデフォルトでオフになっています。 | false | Boolean |
| camel.component.atmosphere-websocket.enabled | atmosphere -websocket コンポーネントを有効にする | true | Boolean |
| camel.component.atmosphere-websocket.file-name-ext-whitelist | アップロードされたファイルを受け入れるための受け入れられたファイル名拡張子のホワイトリスト。複数の拡張子は、txt、xml のようにコンマで区切ることができます。 | String | |
| camel.component.atmosphere-websocket.header-filter-strategy | カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。このオプションは org.apache.camel.spi.HeaderFilterStrategy タイプです。 | String | |
| camel.component.atmosphere-websocket.http-binding | カスタム HttpBinding を使用して、Camel メッセージと HttpClient との間のマッピングを制御します。オプションは org.apache.camel.http.common.HttpBinding タイプです。 | String | |
| camel.component.atmosphere-websocket.http-configuration | 共有 HttpConfiguration を基本設定として使用するには、以下を行います。オプションは org.apache.camel.http.common.HttpConfiguration タイプです。 | String | |
| camel.component.atmosphere-websocket.http-registry | カスタム org.apache.camel.component.servlet.HttpRegistry を使用します。オプションは org.apache.camel.component.servlet.HttpRegistry タイプです。 | String | |
| camel.component.atmosphere-websocket.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.atmosphere-websocket.servlet-name | 使用するサーブレットのデフォルト名。デフォルト名は CamelServlet です。 | CamelServlet | String |
11.3. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atmosphere-websocket:///relative path[?options]
atmosphere-websocket:///relative path[?options]
11.4. Websocket を介したデータの読み取りと書き込み リンクのコピーリンクがクリップボードにコピーされました!
atmopshere-websocket エンドポイントは、エンドポイントがそれぞれプロデューサーまたはコンシューマーとして設定されているかどうかに応じて、ソケットにデータを書き込むか、ソケットから読み取ることができます。
11.5. データを読み書きするための URI の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下のルートでは、Camel は指定された websocket 接続から読み取ります。
from("atmosphere-websocket:///servicepath")
.to("direct:next");
from("atmosphere-websocket:///servicepath")
.to("direct:next");
同等の Spring の例:
以下のルートでは、Camel は指定された websocket 接続から読み取ります。
from("direct:next")
.to("atmosphere-websocket:///servicepath");
from("direct:next")
.to("atmosphere-websocket:///servicepath");
同等の Spring の例:
11.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
第12章 Atom コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 1.2 以降で利用可能
atom: コンポーネントは、Atom フィードのポーリングに使用されます。
デフォルトでは、Camel は 60 秒ごとにフィードをポーリングします。
注記: コンポーネントは現在、ポーリング (consuming) フィードのみをサポートしています。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
12.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atom://atomUri[?options]
atom://atomUri[?options]
atomUri は、ポーリングする Atom フィードへの URI です。
12.2. オプション リンクのコピーリンクがクリップボードにコピーされました!
Atom コンポーネントにはオプションがありません。
Atom エンドポイントは、URI 構文を使用して設定されます。
atom:feedUri
atom:feedUri
パスおよびクエリーパラメーターを使用します。
12.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| feedUri | 必須 ポーリングするフィードへの URI。 | String |
12.2.2. クエリーパラメーター ( 27 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| feedHeader (consumer) | フィードオブジェクトをヘッダーとして追加するかどうかを設定します | true | boolean |
| filter (consumer) | エントリーのフィルタリングを使用するかどうかを設定します。 | true | boolean |
| lastUpdate (consumer) | Atom フィードからのエントリーのフィルタリングに使用するタイムスタンプを設定します。このオプションは、splitEntries と組み合わせてのみ使用できます。 | Date | |
| password (consumer) | HTTP フィードからのポーリング時に Basic 認証に使用するパスワードを設定します | String | |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| sortEntries (consumer) | エントリーを公開日順にソートするかどうかを設定します。splitEntries = true の場合のみ機能します。 | false | boolean |
| splitEntries (consumer) | エントリーを個別に送信するか、フィード全体を 1 つのメッセージとして送信するかを設定します | true | boolean |
| throttleEntries (consumer) | 1 回のフィードポーリングで識別されたすべてのエントリーをすぐに配信するかどうかを設定します。true の場合、consumer.delay ごとに 1 つのエントリーのみが処理されます。splitEntries = true の場合にのみ適用されます。 | true | boolean |
| username (consumer) | HTTP フィードからのポーリング時に Basic 認証に使用されるユーザー名を設定します | String | |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
12.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atom.enabled | atom コンポーネントを有効にする | true | Boolean |
| camel.component.atom.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
URI には、?option=value&option=value&… の形式でクエリーオプションを追加できます。
12.4. Exchange データ形式 リンクのコピーリンクがクリップボードにコピーされました!
Camel は、返された Exchange の In ボディーにエントリーを設定します。splitEntries フラグに応じて、Camel は 1 つの Entry または List<Entry> を返します。
| オプション | 値 | 動作 |
|---|---|---|
|
|
|
現在処理中のフィードから 1 つのエントリーのみが設定されます: |
|
|
|
フィードからのエントリーの全リストが設定されます: |
Camel は、In ヘッダーに Feed オブジェクトを設定できます (これを無効にするには、feedHeader オプションを参照してください)。
12.5. メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
Camel atom はこれらのヘッダーを使用します。
| ヘッダー | 説明 |
|---|---|
|
|
|
12.6. サンプル リンクのコピーリンクがクリップボードにコピーされました!
このサンプルでは、James Strachan のブログを調査します。
from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
このサンプルでは、SEDA キューで気に入った良いブログのみをフィルタリングします。このサンプルは、コンテナーで実行したり、Spring を使用したりせずに、Camel をスタンドアロンでセットアップする方法も示しています。
12.7. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- RSS
第13章 Atomix マップコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
camel atomix-map コンポーネントを使用する と、Atomix の分散マップ コレクションを操作できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
13.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atomix-map:mapName
atomix-map:mapName
13.2. オプション リンクのコピーリンクがクリップボードにコピーされました!
Atomix Map コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有コンポーネントの設定 | AtomixMapConfiguration | |
| atomix (common) | 共有 AtomixClient インスタンス | AtomixClient | |
| nodes (common) | AtomixClient が接続する必要のあるノード | List | |
| configurationUri (common) | AtomixClient 設定へのパス | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atomix Map エンドポイントは、URI 構文を使用して設定されます。
atomix-map:resourceName
atomix-map:resourceName
パスおよびクエリーパラメーターを使用します。
13.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| resourceName | 必須 分散リソース名 | String |
13.2.2. クエリーパラメーター (18 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| atomix (common) | 使用する Atomix インスタンス | Atomix | |
| configurationUri (common) | Atomix 設定 uri。 | String | |
| defaultAction (common) | これがデフォルト動作です。 | PUT | Action |
| key (common) | ヘッダーに何も設定されていない場合に使用するキー、または特定のキーのイベントをリッスンするキー。 | Object | |
| nodes (common) | クラスターを設定するノードのアドレス。 | String | |
| resultHeader (common) | 結果を届けるヘッダー。 | String | |
| transport (common) | Atomix トランスポートを設定します。 | io.atomix.catalyst.transport.netty.NettyTransport | トランスポート |
| ttl (common) | リソース ttl。 | long | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| defaultResourceConfig (advanced) | クラスター全体のデフォルトのリソース設定。 | Properties | |
| defaultResourceOptions (advanced) | ローカルのデフォルトリソースオプション。 | Properties | |
| ephemeral (advanced) | ローカルメンバーが PersistentMember としてグループに参加するかどうかを設定します。ephemeral に設定すると、ローカルメンバーは自動生成された ID を受け取るため、ローカルメンバーは無視されます。 | false | boolean |
| readConsistency (advanced) | 読み取り一貫性レベル。 | ReadConsistency | |
| resourceConfigs (advanced) | クラスター全体のリソース設定。 | Map | |
| resourceOptions (advanced) | ローカルリソースの設定 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
13.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、以下に示す 9 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atomix-map.atomix | 共有 AtomixClient インスタンス。オプションは io.atomix.AtomixClient タイプです。 | String | |
| camel.component.atomix-map.configuration-uri | AtomixClient 設定へのパス | String | |
| camel.component.atomix-map.configuration.default-action | これがデフォルト動作です。 | AtomixMap$Action | |
| camel.component.atomix-map.configuration.key | ヘッダーに何も設定されていない場合に使用するキー、または特定のキーのイベントをリッスンするキー。 | Object | |
| camel.component.atomix-map.configuration.result-header | 結果を届けるヘッダー。 | String | |
| camel.component.atomix-map.configuration.ttl | リソース ttl。 | Long | |
| camel.component.atomix-map.enabled | atomix-map コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.atomix-map.nodes | AtomixClient が接続する必要のあるノード | List | |
| camel.component.atomix-map.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
13.4. ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 値 | 説明 |
|---|---|---|---|
| CamelAtomixResourceAction | AtomixMap.Action |
| 実行する動作 |
| CamelAtomixResourceKey | Object | - | 操作するキー |
| CamelAtomixResourceValue | Object | - | Missing In Body が使用されている場合の値 |
| CamelAtomixResourceOldValue | Object | - | 古い値 |
| CamelAtomixResourceTTL | String / long | - | エントリー TTL |
| CamelAtomixResourceReadConsistency | ReadConsistency |
| 読み取りの一貫性レベル |
13.5. Atomix クラスターに接続するためのコンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
参加する Atomix クラスターのノードは、以下の例のように、エンドポイントまたはコンポーネントレベル (推奨) で設定できます。
エンドポイント:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンポーネント:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.6. 使用例: リンクのコピーリンクがクリップボードにコピーされました!
TTL が 1 秒の要素を PUT します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第14章 Atomix メッセージングコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
camel atomix-messaging コンポーネントを使用すると、Atomix の Group Messaging を操作できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
14.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atomix-messaging:group
atomix-messaging:group
Atomix Messaging コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有コンポーネントの設定 | AtomixMessaging 設定 | |
| atomix (common) | 共有 AtomixClient インスタンス | AtomixClient | |
| nodes (common) | AtomixClient が接続する必要のあるノード | List | |
| configurationUri (common) | AtomixClient 設定へのパス | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atomix メッセージングエンドポイントは、URI 構文を使用して設定されます。
atomix-messaging:resourceName
atomix-messaging:resourceName
パスおよびクエリーパラメーターを使用します。
14.1.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| resourceName | 必須 分散リソース名 | String |
14.1.2. クエリーパラメーター (19 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| atomix (common) | 使用する Atomix インスタンス | Atomix | |
| broadcastType (common) | ブロードキャストタイプ。 | ALL | BroadcastType |
| channelName (common) | メッセージングチャネル名 | String | |
| configurationUri (common) | Atomix 設定 uri。 | String | |
| defaultAction (common) | これがデフォルト動作です。 | DIRECT | Action |
| memberName (common) | Atomix グループのメンバー名 | String | |
| nodes (common) | クラスターを設定するノードのアドレス。 | String | |
| resultHeader (common) | 結果を届けるヘッダー。 | String | |
| transport (common) | Atomix トランスポートを設定します。 | io.atomix.catalyst.transport.netty.NettyTransport | トランスポート |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| defaultResourceConfig (advanced) | クラスター全体のデフォルトのリソース設定。 | Properties | |
| defaultResourceOptions (advanced) | ローカルのデフォルトリソースオプション。 | Properties | |
| ephemeral (advanced) | ローカルメンバーが PersistentMember としてグループに参加するかどうかを設定します。ephemeral に設定すると、ローカルメンバーは自動生成された ID を受け取るため、ローカルメンバーは無視されます。 | false | boolean |
| readConsistency (advanced) | 読み取り一貫性レベル。 | ReadConsistency | |
| resourceConfigs (advanced) | クラスター全体のリソース設定。 | Map | |
| resourceOptions (advanced) | ローカルリソースの設定 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
14.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に示す 10 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atomix-messaging.atomix | 共有 AtomixClient インスタンス。オプションは io.atomix.AtomixClient タイプです。 | String | |
| camel.component.atomix-messaging.configuration-uri | AtomixClient 設定へのパス | String | |
| camel.component.atomix-messaging.configuration.broadcast-type | ブロードキャストタイプ。 | AtomixMessaging$ BroadcastType | |
| camel.component.atomix-messaging.configuration.channel-name | メッセージングチャネル名 | String | |
| camel.component.atomix-messaging.configuration.default-action | これがデフォルト動作です。 | AtomixMessaging$Action | |
| camel.component.atomix-messaging.configuration.member-name | Atomix グループのメンバー名 | String | |
| camel.component.atomix-messaging.configuration.result-header | 結果を届けるヘッダー。 | String | |
| camel.component.atomix-messaging.enabled | atomix-messaging コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.atomix-messaging.nodes | AtomixClient が接続する必要のあるノード | List | |
| camel.component.atomix-messaging.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
第15章 Atomix MultiMap Component リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
camel atomix-multimap コンポーネントを使用すると、Atomix の Distributed MultiMap コレクションを操作できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
15.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atomix-multimap:multiMapName
atomix-multimap:multiMapName
Atomix MultiMap コンポーネントは、以下に示す 5個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (consumer) | 共有コンポーネントの設定 | AtomixMultiMap Configuration | |
| atomix (consumer) | 共有 AtomixClient インスタンス | AtomixClient | |
| nodes (consumer) | AtomixClient が接続する必要のあるノード | List | |
| configurationUri (consumer) | AtomixClient 設定へのパス | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atomix MultiMap エンドポイントは、URI 構文を使用して設定されます。
atomix-multimap:resourceName
atomix-multimap:resourceName
パスおよびクエリーパラメーターを使用します。
15.1.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| resourceName | 必須 分散リソース名 | String |
15.1.2. クエリーパラメーター (18 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| atomix (consumer) | 使用する Atomix インスタンス | Atomix | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| configurationUri (consumer) | Atomix 設定 uri。 | String | |
| defaultAction (consumer) | これがデフォルト動作です。 | PUT | Action |
| key (consumer) | ヘッダーに何も設定されていない場合に使用するキー、または特定のキーのイベントをリッスンするキー。 | Object | |
| nodes (consumer) | クラスターを設定するノードのアドレス。 | String | |
| resultHeader (consumer) | 結果を届けるヘッダー。 | String | |
| transport (consumer) | Atomix トランスポートを設定します。 | io.atomix.catalyst.transport.netty.NettyTransport | トランスポート |
| ttl (consumer) | リソース ttl。 | long | |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| defaultResourceConfig (advanced) | クラスター全体のデフォルトのリソース設定。 | Properties | |
| defaultResourceOptions (advanced) | ローカルのデフォルトリソースオプション。 | Properties | |
| ephemeral (advanced) | ローカルメンバーが PersistentMember としてグループに参加するかどうかを設定します。ephemeral に設定すると、ローカルメンバーは自動生成された ID を受け取るため、ローカルメンバーは無視されます。 | false | boolean |
| readConsistency (advanced) | 読み取り一貫性レベル。 | ReadConsistency | |
| resourceConfigs (advanced) | クラスター全体のリソース設定。 | Map | |
| resourceOptions (advanced) | ローカルリソースの設定 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
15.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、以下に示す 9 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atomix-multimap.atomix | 共有 AtomixClient インスタンス。オプションは io.atomix.AtomixClient タイプです。 | String | |
| camel.component.atomix-multimap.configuration-uri | AtomixClient 設定へのパス | String | |
| camel.component.atomix-multimap.configuration.default-action | これがデフォルト動作です。 | AtomixMultiMap$Action | |
| camel.component.atomix-multimap.configuration.key | ヘッダーに何も設定されていない場合に使用するキー、または特定のキーのイベントをリッスンするキー。 | Object | |
| camel.component.atomix-multimap.configuration.result-header | 結果を届けるヘッダー。 | String | |
| camel.component.atomix-multimap.configuration.ttl | リソース ttl。 | Long | |
| camel.component.atomix-multimap.enabled | atomix-multimap コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.atomix-multimap.nodes | AtomixClient が接続する必要のあるノード | List | |
| camel.component.atomix-multimap.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
第16章 Atomix キューコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
camel atomix-queue コンポーネントを使用すると、Atomix の 分散キュー コレクションを操作できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
16.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atomix-queue:queueName
atomix-queue:queueName
Atomix Queue コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有コンポーネントの設定 | AtomixQueue Configuration | |
| atomix (common) | 共有 AtomixClient インスタンス | AtomixClient | |
| nodes (common) | AtomixClient が接続する必要のあるノード | List | |
| configurationUri (common) | AtomixClient 設定へのパス | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atomix キューエンドポイントは、URI 構文を使用して設定されます。
atomix-queue:resourceName
atomix-queue:resourceName
パスおよびクエリーパラメーターを使用します。
16.1.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| resourceName | 必須 分散リソース名 | String |
16.1.2. クエリーパラメーター (16 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| atomix (common) | 使用する Atomix インスタンス | Atomix | |
| configurationUri (common) | Atomix 設定 uri。 | String | |
| defaultAction (common) | これがデフォルト動作です。 | 追加 | Action |
| nodes (common) | クラスターを設定するノードのアドレス。 | String | |
| resultHeader (common) | 結果を届けるヘッダー。 | String | |
| transport (common) | Atomix トランスポートを設定します。 | io.atomix.catalyst.transport.netty.NettyTransport | トランスポート |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| defaultResourceConfig (advanced) | クラスター全体のデフォルトのリソース設定。 | Properties | |
| defaultResourceOptions (advanced) | ローカルのデフォルトリソースオプション。 | Properties | |
| ephemeral (advanced) | ローカルメンバーが PersistentMember としてグループに参加するかどうかを設定します。ephemeral に設定すると、ローカルメンバーは自動生成された ID を受け取るため、ローカルメンバーは無視されます。 | false | boolean |
| readConsistency (advanced) | 読み取り一貫性レベル。 | ReadConsistency | |
| resourceConfigs (advanced) | クラスター全体のリソース設定。 | Map | |
| resourceOptions (advanced) | ローカルリソースの設定 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
16.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 7 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atomix-queue.atomix | 共有 AtomixClient インスタンス。オプションは io.atomix.AtomixClient タイプです。 | String | |
| camel.component.atomix-queue.configuration-uri | AtomixClient 設定へのパス | String | |
| camel.component.atomix-queue.configuration.default-action | これがデフォルト動作です。 | AtomixQueue$Action | |
| camel.component.atomix-queue.configuration.result-header | 結果を届けるヘッダー。 | String | |
| camel.component.atomix-queue.enabled | atomix-queue コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.atomix-queue.nodes | AtomixClient が接続する必要のあるノード | List | |
| camel.component.atomix-queue.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
第17章 Atomix セットコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
camel atomix-set コンポーネントを使用すると、Atomix の 分散セット コレクションを操作できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
17.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atomix-set:setName
atomix-set:setName
Atomix Set コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有コンポーネントの設定 | AtomixSetConfiguration | |
| atomix (common) | 共有 AtomixClient インスタンス | AtomixClient | |
| nodes (common) | AtomixClient が接続する必要のあるノード | List | |
| configurationUri (common) | AtomixClient 設定へのパス | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atomix Set エンドポイントは、URI 構文を使用して設定されます。
atomix-set:resourceName
atomix-set:resourceName
パスおよびクエリーパラメーターを使用します。
17.1.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| resourceName | 必須 分散リソース名 | String |
17.1.2. クエリーパラメーター (17 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| atomix (common) | 使用する Atomix インスタンス | Atomix | |
| configurationUri (common) | Atomix 設定 uri。 | String | |
| defaultAction (common) | これがデフォルト動作です。 | 追加 | Action |
| nodes (common) | クラスターを設定するノードのアドレス。 | String | |
| resultHeader (common) | 結果を届けるヘッダー。 | String | |
| transport (common) | Atomix トランスポートを設定します。 | io.atomix.catalyst.transport.netty.NettyTransport | トランスポート |
| ttl (common) | リソース ttl。 | long | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| defaultResourceConfig (advanced) | クラスター全体のデフォルトのリソース設定。 | Properties | |
| defaultResourceOptions (advanced) | ローカルのデフォルトリソースオプション。 | Properties | |
| ephemeral (advanced) | ローカルメンバーが PersistentMember としてグループに参加するかどうかを設定します。ephemeral に設定すると、ローカルメンバーは自動生成された ID を受け取るため、ローカルメンバーは無視されます。 | false | boolean |
| readConsistency (advanced) | 読み取り一貫性レベル。 | ReadConsistency | |
| resourceConfigs (advanced) | クラスター全体のリソース設定。 | Map | |
| resourceOptions (advanced) | ローカルリソースの設定 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
17.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 8 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atomix-set.atomix | 共有 AtomixClient インスタンス。オプションは io.atomix.AtomixClient タイプです。 | String | |
| camel.component.atomix-set.configuration-uri | AtomixClient 設定へのパス | String | |
| camel.component.atomix-set.configuration.default-action | これがデフォルト動作です。 | AtomixSet$Action | |
| camel.component.atomix-set.configuration.result-header | 結果を届けるヘッダー。 | String | |
| camel.component.atomix-set.configuration.ttl | リソース ttl。 | Long | |
| camel.component.atomix-set.enabled | atomix-set コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.atomix-set.nodes | AtomixClient が接続する必要のあるノード | List | |
| camel.component.atomix-set.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
第18章 Atomix Value コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
camel atomix-value コンポーネントを使用すると、Atomix の Distributed Value を操作できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-atomix</artifactId>
<version>${camel-version}</version>
</dependency>
18.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
atomix-value:valueName
atomix-value:valueName
Atomix Value コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有コンポーネントの設定 | AtomixValue Configuration | |
| atomix (common) | 共有 AtomixClient インスタンス | AtomixClient | |
| nodes (common) | AtomixClient が接続する必要のあるノード | List | |
| configurationUri (common) | AtomixClient 設定へのパス | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Atomix Value エンドポイントは、URI 構文を使用して設定されます。
atomix-value:resourceName
atomix-value:resourceName
パスおよびクエリーパラメーターを使用します。
18.1.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| resourceName | 必須 分散リソース名 | String |
18.1.2. クエリーパラメーター (17 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| atomix (common) | 使用する Atomix インスタンス | Atomix | |
| configurationUri (common) | Atomix 設定 uri。 | String | |
| defaultAction (common) | これがデフォルト動作です。 | SET | Action |
| nodes (common) | クラスターを設定するノードのアドレス。 | String | |
| resultHeader (common) | 結果を届けるヘッダー。 | String | |
| transport (common) | Atomix トランスポートを設定します。 | io.atomix.catalyst.transport.netty.NettyTransport | トランスポート |
| ttl (common) | リソース ttl。 | long | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| defaultResourceConfig (advanced) | クラスター全体のデフォルトのリソース設定。 | Properties | |
| defaultResourceOptions (advanced) | ローカルのデフォルトリソースオプション。 | Properties | |
| ephemeral (advanced) | ローカルメンバーが PersistentMember としてグループに参加するかどうかを設定します。ephemeral に設定すると、ローカルメンバーは自動生成された ID を受け取るため、ローカルメンバーは無視されます。 | false | boolean |
| readConsistency (advanced) | 読み取り一貫性レベル。 | ReadConsistency | |
| resourceConfigs (advanced) | クラスター全体のリソース設定。 | Map | |
| resourceOptions (advanced) | ローカルリソースの設定 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
18.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 8 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.atomix-value.atomix | 共有 AtomixClient インスタンス。オプションは io.atomix.AtomixClient タイプです。 | String | |
| camel.component.atomix-value.configuration-uri | AtomixClient 設定へのパス | String | |
| camel.component.atomix-value.configuration.default-action | これがデフォルト動作です。 | AtomixValue$Action | |
| camel.component.atomix-value.configuration.result-header | 結果を届けるヘッダー。 | String | |
| camel.component.atomix-value.configuration.ttl | リソース ttl。 | Long | |
| camel.component.atomix-value.enabled | atomix-value コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.atomix-value.nodes | AtomixClient が接続する必要のあるノード | List | |
| camel.component.atomix-value.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
第19章 Avro コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.10 以降で利用可能
このコンポーネントは、avro のデータ形式を提供するので、Apache Avro のバイナリーデータ形式を使用したメッセージのシリアル化と逆シリアル化が可能になります。さらに、netty または http 経由で avro を使用するためのプロデューサーとコンシューマーのエンドポイントを提供することにより、Apache Avro の rpc のサポートを提供します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
19.1. Apache Avro の概要 リンクのコピーリンクがクリップボードにコピーされました!
Avro を使用すると、json のような形式を使用してメッセージタイプとプロトコルを定義し、指定したタイプとメッセージの Java コードを生成できます。スキーマがどのように見えるかの例を以下に示します。
Maven、ant などを使用して、スキーマから簡単にクラスを生成できます。詳細には、Apache Avro のドキュメント を参照してください。
ただし、スキーマファーストのアプローチは強制されず、既存のクラスのスキーマを作成できます。2.12 以降、 既存のプロトコルインターフェイスを使用して RCP 呼び出しを行うことができます。プロトコル自体にはインターフェイスを使用し、パラメーターと結果の型には POJO Bean またはプリミティブ/文字列クラスを使用する必要があります。上記のスキーマに対応するクラスの例を次に示します。
注: 既存のクラスは、データ形式ではなく、RPC (以下を参照) にのみ使用できます。
19.2. Avro データ形式の使用 リンクのコピーリンクがクリップボードにコピーされました!
avro データ形式の使用は、ルートでマーシャリングまたはアンマーシャリングするクラスを指定するのと同様に簡単です。
別の方法として、コンテキスト内でデータ形式を指定し、ルートから参照することもできます。
同じ方法で、avro データ形式を使用してアンマーシャリングできます。
19.3. Camel での Avro RPC の使用 リンクのコピーリンクがクリップボードにコピーされました!
前述のように、Avro は http や netty などの複数のトランスポートを介した RPC サポートも提供します。Camel は、これら 2 つのトランスポートのコンシューマーとプロデューサーを提供します。
avro:[transport]:[host]:[port][?options]
avro:[transport]:[host]:[port][?options]
現在サポートされているトランスポート値は http または netty です。
2.12 以降、 URI でメッセージ名を直接指定できます。
avro:[transport]:[host]:[port][/messageName][?options]
avro:[transport]:[host]:[port][/messageName][?options]
コンシューマーの場合、これにより、同じソケットに複数のルートを接続できます。正しいルートへのディスパッチは、avro コンポーネントによって自動的に行われます。messageName が指定されていないルート (存在する場合) がデフォルトとして使用されます。
avro ipc に camel プロデューサーを使用する場合、in メッセージボディーには、avro プロトコルで指定された操作のパラメーターを含める必要があります。応答は、out メッセージの本文に追加されます。
avro ipc に camel avro コンシューマーを使用する場合と同様に、リクエストパラメーターは、作成された exchange の in メッセージ本文内に配置され、exchange が処理されると、out メッセージの本文がレスポンスとして送信されます。.
注記: デフォルトでは、コンシューマーパラメーターは配列にラップされます。パラメーターが 1 つしかない場合は、2.12 以降、singleParameter URI オプションを使用して、配列をラップせずに in メッセージボディーで直接受け取ることができます。
19.4. Avro RPC URI オプション リンクのコピーリンクがクリップボードにコピーされました!
Avro コンポーネントは、以下に示す 2 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | 共有 AvroConfiguration を使用してオプションを 1 回設定する場合 | AvroConfiguration | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Avro エンドポイントは、URI 構文を使用して設定されます。
avro:transport:host:port/messageName
avro:transport:host:port/messageName
パスおよびクエリーパラメーターを使用します。
19.4.1. パスパラメーター (4 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| transport | 使用するトランスポートが 必要です。http または netty のいずれかです。 | AvroTransport | |
| port | 必須 使用するポート番号 | int | |
| host | 使用する 必須 ホスト名 | String | |
| messageName | 送信するメッセージの名前。 | String |
19.4.2. クエリーパラメーター (10 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| protocol (common) | 使用する Avro プロトコル | Protocol | |
| protocolClassName (common) | FQN クラス名で定義された使用する Avro プロトコル | String | |
| protocolLocation (common) | Avro プロトコルのロケーション | String | |
| reflectionProtocol (common) | 指定されたプロトコルオブジェクトがリフレクションプロトコルの場合。protocolClassName ではプロトコルタイプが自動検出されるため、protocol パラメーターでのみ使用する必要があります。 | false | boolean |
| singleParameter (common) | true の場合、consumer パラメーターは配列にラップされません。プロトコルがメッセージに複数のパラメーターを指定すると失敗します | false | boolean |
| uriAuthority (common) | 使用する権限 (ユーザー名とパスワード) | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
19.5. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 15 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.avro.configuration.host | 使用するホスト名 | String | |
| camel.component.avro.configuration.message-name | 送信するメッセージの名前。 | String | |
| camel.component.avro.configuration.port | 使用するポート番号 | Integer | |
| camel.component.avro.configuration.protocol | 使用する Avro プロトコル | Protocol | |
| camel.component.avro.configuration.protocol-class-name | FQN クラス名で定義された使用する Avro プロトコル | String | |
| camel.component.avro.configuration.protocol-location | Avro プロトコルのロケーション | String | |
| camel.component.avro.configuration.reflection-protocol | 指定されたプロトコルオブジェクトがリフレクションプロトコルの場合。protocolClassName ではプロトコルタイプが自動検出されるため、protocol パラメーターでのみ使用する必要があります。 | false | Boolean |
| camel.component.avro.configuration.single-parameter | true の場合、consumer パラメーターは配列にラップされません。プロトコルがメッセージに複数のパラメーターを指定すると失敗します | false | Boolean |
| camel.component.avro.configuration.transport | 使用するトランスポート。http または netty のいずれかです | AvroTransport | |
| camel.component.avro.configuration.uri-authority | 使用する権限 (ユーザー名とパスワード) | String | |
| camel.component.avro.enabled | avro コンポーネントを有効にする | true | Boolean |
| camel.component.avro.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.dataformat.avro.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.avro.enabled | avro データ形式を有効にする | true | Boolean |
| camel.dataformat.avro.instance-class-name | マーシャリングとアンマーシャリングに使用するクラス名 | String |
19.6. Avro RPC ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 |
|---|---|
|
| 送信するメッセージの名前。コンシューマーでは、URI からのメッセージ名をオーバーライドします (存在する場合) |
19.7. 例 リンクのコピーリンクがクリップボードにコピーされました!
http 経由で camel avro プロデューサーを使用する例:
<route>
<from uri="direct:start"/>
<to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
<to uri="log:avro"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="avro:http:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
<to uri="log:avro"/>
</route>
上記の例では、CamelAvroMessageName ヘッダーを入力する必要があります。2.12 以降、次の構文を使用して定数メッセージを呼び出すことができます。
<route>
<from uri="direct:start"/>
<to uri="avro:http:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
<to uri="log:avro"/>
</route>
<route>
<from uri="direct:start"/>
<to uri="avro:http:localhost:{{avroport}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
<to uri="log:avro"/>
</route>
netty 経由で camel avro コンシューマーを使用してメッセージを消費する例:
2.12 以降、同じタスクを実行するために 2 つの異なるルートを設定できます。
上記の例では、get はパラメーターを 1 つだけ受け取るため、singleParameter が使用され、getProcessor は 本体で直接 Value クラスを受け取りますが、putProcessor は 配列の内容として文字列キーと値値が入力されたサイズ 2 の配列を受け取ります。
第20章 Avro DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.14 以降で利用可能
このコンポーネントは、avro のデータ形式を提供するので、Apache Avro のバイナリーデータ形式を使用したメッセージのシリアル化と逆シリアル化が可能になります。さらに、netty または http 経由で avro を使用するためのプロデューサーとコンシューマーのエンドポイントを提供することにより、Apache Avro の rpc のサポートを提供します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
20.1. Apache Avro の概要 リンクのコピーリンクがクリップボードにコピーされました!
Avro を使用すると、json のような形式を使用してメッセージタイプとプロトコルを定義し、指定したタイプとメッセージの Java コードを生成できます。スキーマがどのように見えるかの例を以下に示します。
Maven、ant などを使用して、スキーマから簡単にクラスを生成できます。詳細には、Apache Avro のドキュメント を参照してください。
ただし、スキーマファーストのアプローチは強制されず、既存のクラスのスキーマを作成できます。2.12 以降、 既存のプロトコルインターフェイスを使用して RCP 呼び出しを行うことができます。プロトコル自体にはインターフェイスを使用し、パラメーターと結果の型には POJO Bean またはプリミティブ/文字列クラスを使用する必要があります。上記のスキーマに対応するクラスの例を次に示します。
注: 既存のクラスは、データ形式ではなく、RPC (以下を参照) にのみ使用できます。
20.2. Avro データ形式の使用 リンクのコピーリンクがクリップボードにコピーされました!
avro データ形式の使用は、ルートでマーシャリングまたはアンマーシャリングするクラスを指定するのと同様に簡単です。
別の方法として、コンテキスト内でデータ形式を指定し、ルートから参照することもできます。
同じ方法で、avro データ形式を使用してアンマーシャリングできます。
20.3. Avro データ形式オプション リンクのコピーリンクがクリップボードにコピーされました!
Avro データ形式は、以下にリストされている 2 つのオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| instanceClassName |
| マーシャリングとアンマーシャリングに使用するクラス名 | |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
20.4. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 15 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.avro.configuration.host | 使用するホスト名 | String | |
| camel.component.avro.configuration.message-name | 送信するメッセージの名前。 | String | |
| camel.component.avro.configuration.port | 使用するポート番号 | Integer | |
| camel.component.avro.configuration.protocol | 使用する Avro プロトコル | Protocol | |
| camel.component.avro.configuration.protocol-class-name | FQN クラス名で定義された使用する Avro プロトコル | String | |
| camel.component.avro.configuration.protocol-location | Avro プロトコルのロケーション | String | |
| camel.component.avro.configuration.reflection-protocol | 指定されたプロトコルオブジェクトがリフレクションプロトコルの場合。protocolClassName ではプロトコルタイプが自動検出されるため、protocol パラメーターでのみ使用する必要があります。 | false | Boolean |
| camel.component.avro.configuration.single-parameter | true の場合、consumer パラメーターは配列にラップされません。プロトコルがメッセージに複数のパラメーターを指定すると失敗します | false | Boolean |
| camel.component.avro.configuration.transport | 使用するトランスポート。http または netty のいずれかです | AvroTransport | |
| camel.component.avro.configuration.uri-authority | 使用する権限 (ユーザー名とパスワード) | String | |
| camel.component.avro.enabled | avro コンポーネントを有効にする | true | Boolean |
| camel.component.avro.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.dataformat.avro.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.avro.enabled | avro データ形式を有効にする | true | Boolean |
| camel.dataformat.avro.instance-class-name | マーシャリングとアンマーシャリングに使用するクラス名 | String |
ND
第21章 AWS CloudWatch Component リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.11 以降で利用可能
CW コンポーネントを使用すると、メッセージを Amazon CloudWatch メトリクスに送信できます。Amazon API の実装は AWS SDK によって提供されます。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon CloudWatch を使用するためにサインアップしている必要がある。詳細については、Amazon CloudWatch を参照してください。
21.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-cw://namespace[?options]
aws-cw://namespace[?options]
メトリクスが存在しない場合は作成されます。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
21.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS CloudWatch コンポーネントは、以下に示す 15 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS CW のデフォルト設定 | CwConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | CW クライアントが機能する必要があるリージョン。 | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS CloudWatch エンドポイントは、URI 構文を使用して設定されます。
aws-cw:namespace
aws-cw:namespace
パスおよびクエリーパラメーターを使用します。
21.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| namespace | 必須。メトリクス namespace。 | String |
21.2.2. クエリーパラメーター (11 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonCwClient (producer) | AmazonCloudWatch をクライアントとして使用します。 | AmazonCloudWatch | |
| name (producer) | メトリクス名 | String | |
| proxyHost (producer) | CW クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| proxyPort (producer) | CW クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| region (producer) | CW クライアントが機能する必要があるリージョン。 | String | |
| timestamp (producer) | メトリクスのタイムスタンプ。 | Date | |
| unit (producer) | メトリクスユニット | String | |
| value (producer) | メトリクス値 | double | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
21.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 16 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-cw.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-cw.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-cw.configuration.amazon-cw-client | AmazonCloudWatch をクライアントとして使用します。 | AmazonCloudWatch | |
| camel.component.aws-cw.configuration.name | メトリクス名 | String | |
| camel.component.aws-cw.configuration.namespace | メトリック名前空間 | String | |
| camel.component.aws-cw.configuration.proxy-host | CW クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| camel.component.aws-cw.configuration.proxy-port | CW クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| camel.component.aws-cw.configuration.region | CW クライアントが機能する必要があるリージョン。 | String | |
| camel.component.aws-cw.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-cw.configuration.timestamp | メトリクスのタイムスタンプ。 | Date | |
| camel.component.aws-cw.configuration.unit | メトリクスユニット | String | |
| camel.component.aws-cw.configuration.value | メトリクス値 | double | |
| camel.component.aws-cw.enabled | aws-cw コンポーネントを有効にする | true | Boolean |
| camel.component.aws-cw.region | CW クライアントが機能する必要があるリージョン。 | String | |
| camel.component.aws-cw.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-cw.secret-key | Amazon AWS Secret Key | String |
必要な CW コンポーネントオプション
Amazon の CloudWatch にアクセスするには、レジストリーに amazonCwClient を指定するか、accessKey と secretKey を指定する必要があります。
21.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
21.4.1. CW プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| Amazon CW メトリクス名。 |
|
|
| Amazon CW メトリクス値。 |
|
|
| Amazon CW メトリクスユニット。 |
|
|
| Amazon CW メトリクス namespace。 |
|
|
| Amazon CW メトリクスのタイムスタンプ。 |
|
|
| Camel 2.12: Amazon CW メトリクスディメンション名。 |
|
|
| Camel 2.12: Amazon CW メトリクスディメンション値。 |
|
|
| Camel 2.12: ディメンション名とディメンション値のマップ。 |
21.4.2. Advanced AmazonCloudWatch configuration リンクのコピーリンクがクリップボードにコピーされました!
AmazonCloudWatch インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
from("direct:start")
.to("aws-cw://namepsace?amazonCwClient=#client");
from("direct:start")
.to("aws-cw://namepsace?amazonCwClient=#client");
#client は、レジストリー内の AmazonCloudWatch を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
21.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.10 以降) に置き換える必要があります。
21.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第22章 AWS DynamoDB Component リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.10 以降で利用可能
DynamoDB コンポーネントは、Amazon の DynamoDB サービスとの間でのデータの保存と取得をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon DynamoDB を使用するためにサインアップしている必要がある。詳細については、Amazon DynamoDB を参照してください。
22.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ddb://domainName[?options]
aws-ddb://domainName[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
22.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS DynamoDB コンポーネントは 5 のオプションをサポートします。これは以下に記載されています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS DDB のデフォルト設定 | DdbConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | DDB クライアントが機能する必要があるリージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS DynamoDB エンドポイントは、URI 構文を使用して設定します。
aws-ddb:tableName
aws-ddb:tableName
パスおよびクエリーパラメーターを使用します。
22.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| tableName | 必須。現在作業中のテーブルの名前。 | String |
22.2.2. クエリーパラメーター (13 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonDDBClient (producer) | AmazonDynamoDB をクライアントとして使用します | AmazonDynamoDB | |
| consistentRead (producer) | データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 | false | boolean |
| keyAttributeName (producer) | テーブルの作成時の属性名 | String | |
| keyAttributeType (producer) | テーブル作成時の属性タイプ | String | |
| operation (producer) | 実行する操作 | PutItem | DdbOperations |
| proxyHost (producer) | DDB クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| proxyPort (producer) | DDB クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| readCapacity (producer) | テーブルからリソースを読み取るために予約するプロビジョニングされたスループット | Long | |
| region (producer) | DDB クライアントが機能する必要があるリージョン | String | |
| writeCapacity (producer) | テーブルにリソースを書き込むために予約するプロビジョニングされたスループット。 | Long | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
22.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 18 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-ddb.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ddb.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ddb.configuration.amazon-d-d-b-client | AmazonDynamoDB をクライアントとして使用します | AmazonDynamoDB | |
| camel.component.aws-ddb.configuration.consistent-read | データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 | false | Boolean |
| camel.component.aws-ddb.configuration.key-attribute-name | テーブルの作成時の属性名 | String | |
| camel.component.aws-ddb.configuration.key-attribute-type | テーブル作成時の属性タイプ | String | |
| camel.component.aws-ddb.configuration.operation | 実行する操作 | DdbOperations | |
| camel.component.aws-ddb.configuration.proxy-host | DDB クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| camel.component.aws-ddb.configuration.proxy-port | DDB クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| camel.component.aws-ddb.configuration.read-capacity | テーブルからリソースを読み取るために予約するプロビジョニングされたスループット | Long | |
| camel.component.aws-ddb.configuration.region | DDB クライアントが機能する必要があるリージョン | String | |
| camel.component.aws-ddb.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-ddb.configuration.table-name | 現在作業中のテーブルの名前。 | String | |
| camel.component.aws-ddb.configuration.write-capacity | テーブルにリソースを書き込むために予約するプロビジョニングされたスループット。 | Long | |
| camel.component.aws-ddb.enabled | aws-ddb コンポーネントを有効にする | true | Boolean |
| camel.component.aws-ddb.region | DDB クライアントが機能する必要があるリージョン | String | |
| camel.component.aws-ddb.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-ddb.secret-key | Amazon AWS Secret Key | String |
必要な DDB コンポーネントオプション
Amazon の DynamoDB にアクセスするには、レジストリーに amazonDDBClient を指定するか、accessKey と secretKey を指定する必要があります。
22.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
22.4.1. DDB プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| プライマリーキーによって取得するテーブル名と対応する項目のマップ。 |
|
|
| この操作のテーブル名。 |
|
|
| テーブル内の各項目を一意に識別するプライマリーキー。Camel 2.16.0 以降、このヘッダーのタイプは Key ではなく Map<String、AttributeValue> です。 |
|
|
| 変更前または変更後の属性の名前および値のペアを取得する場合は、このパラメーターを使用します (NONE、ALL_OLD、UPDATED_OLD、ALL_NEW、UPDATED_NEW)。 |
|
|
| 条件変更の属性を指定します。 |
|
|
| 属性名が指定されていない場合、すべての属性が返されます。 |
|
|
| true に設定すると、一貫性のある読み取りが発行されます。それ以外の場合は、最終的に一貫性が使用されます。 |
|
|
| 設定されている場合、クエリー操作のセカンダリーインデックスとして使用されます。 |
|
|
| アイテムの属性のマップ。アイテムを定義するプライマリーキー値を含める必要があります。 |
|
|
| true に設定すると、Amazon DynamoDB は、一致する項目とその属性のリストではなく、クエリーパラメーターに一致する項目の総数を返します。Camel 2.16.0 から、このヘッダーはもう存在しません。 |
|
|
| From Camel 2.16.0.このヘッダーはクエリーの選択基準を指定し、2 つの古いヘッダー CamelAwsDdbHashKeyValue および CamelAwsDdbScanRangeKeyCondition をマージします。 |
|
|
| 以前のクエリーを続行するアイテムのプライマリーキー。 |
|
|
| 複合プライマリーキーのハッシュコンポーネントの値。Camel 2.16.0 から、このヘッダーはもう存在しません。 |
|
|
| 返すアイテムの最大数。 |
|
|
| クエリーに使用する属性値と比較演算子のコンテナー。Camel 2.16.0 から、このヘッダーはもう存在しません。 |
|
|
| インデックスの順方向または逆方向のトラバーサルを指定します。 |
|
|
| スキャン結果を評価し、目的の値のみを返します。 |
|
|
| 更新の新しい値とアクションへの属性名のマップ。 |
22.4.2. BatchGetItems 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| テーブル名およびテーブルの各項目属性。 |
|
|
| テーブルのマップと、現在の応答で処理されなかった対応するキーが含まれます。 |
22.4.3. DeleteItem 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
22.4.4. DeleteTable 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
| ||
|
| このテーブルの ProvisionedThroughput プロパティーの値 | |
|
|
| このテーブルの DateTime の作成。 |
|
|
| このテーブルのアイテム数。 |
|
|
| このテーブルのプライマリーキーを識別する KeySchema。Camel 2.16.0 以降、このヘッダーのタイプは List<KeySchemaElement> であり、KeySchema ではありません。 |
|
|
| テーブル名。 |
|
|
| テーブルサイズ(バイト単位)。 |
|
|
| テーブルのステータス: CREATING、UPDATING、DELETING、ACTIVE |
22.4.5. DescribeTable 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
| {{ProvisionedThroughputDescription}} | このテーブルの ProvisionedThroughput プロパティーの値 |
|
|
| このテーブルの DateTime の作成。 |
|
|
| このテーブルのアイテム数。 |
|
| {{KeySchema}} | このテーブルのプライマリーキーを識別する KeySchema。Camel 2.16.0 以降、このヘッダーのタイプは List<KeySchemaElement> であり、KeySchema ではありません。 |
|
|
| テーブル名。 |
|
|
| テーブルサイズ(バイト単位)。 |
|
|
| テーブルのステータス: CREATING、UPDATING、DELETING、ACTIVE |
|
|
| このテーブルの ReadCapacityUnits プロパティー。 |
|
|
| このテーブルの WriteCapacityUnits プロパティー。 |
22.4.6. GetItem 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
22.4.7. PutItem 操作中に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
22.4.8. Query 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
|
|
| 前の結果セットを含む、クエリー操作が停止した項目のプライマリーキー。 |
|
|
| 操作中に消費された、テーブルのプロビジョニングされたスループットのキャパシティーユニットの数。 |
|
|
| 応答のアイテム数。 |
22.4.9. Scan 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
|
|
| 前の結果セットを含む、クエリー操作が停止した項目のプライマリーキー。 |
|
|
| 操作中に消費された、テーブルのプロビジョニングされたスループットのキャパシティーユニットの数。 |
|
|
| 応答のアイテム数。 |
|
|
| フィルターが適用される前の完全なスキャン内のアイテムの数。 |
22.4.10. UpdateItem 操作時に設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
22.4.11. 高度な AmazonDynamoDB 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonDynamoDB インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#client");
from("direct:start")
.to("aws-ddb://domainName?amazonDDBClient=#client");
#client は、レジストリー内の AmazonDynamoDB を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
22.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.10 以降) に置き換える必要があります。
22.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第23章 AWS DynamoDB Streams Component リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.17 以降で利用可能
DynamoDB Stream コンポーネントは、Amazon DynamoDB Stream サービスからのメッセージの受信をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon DynamoDB ストリームを使用するためにサインアップしている必要がある。詳細については、AWS DynamoDB を参照してください。
23.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ddbstream://table-name[?options]
aws-ddbstream://table-name[?options]
ストリームは、使用する前に作成する必要があります。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
23.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS DynamoDB Streams コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS DDB ストリームのデフォルト設定 | DdbStreamConfiguration | |
| accessKey (consumer) | Amazon AWS Access Key | String | |
| secretKey (consumer) | Amazon AWS Secret Key | String | |
| region (consumer) | Amazon AWS リージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS DynamoDB Streams エンドポイントは、URI 構文を使用して設定されます。
aws-ddbstream:tableName
aws-ddbstream:tableName
パスおよびクエリーパラメーターを使用します。
23.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| tableName | 必須 dynamodb テーブルの名前 | String |
23.2.2. クエリーパラメーター(28 パラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonDynamoDbStreams Client (consumer) | このエンドポイントに対するすべての要求に使用する Amazon DynamoDB クライアント | AmazonDynamoDBStreams | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| iteratorType (consumer) | DynaboDB ストリーム内でレコードの取得を開始する場所を定義します。TRIM_HORIZON を使用すると、ストリームがリアルタイムに追いつく前に大幅な遅延が発生する可能性があることに注意してください。AT,AFTER_SEQUENCE_NUMBER を使用する場合は、sequenceNumberProvider を指定する必要があります。 | LATEST | ShardIteratorType |
| maxResultsPerRequest (consumer) | 各ポーリングでフェッチされる最大レコード数。 | int | |
| proxyHost (consumer) | DDBStreams クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| proxyPort (consumer) | DDBStreams クライアントをインスタンス化する際にプロキシーポートを定義します | Integer | |
| region (consumer) | DDBStreams クライアントが機能する必要があるリージョン | String | |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| sequenceNumberProvider (consumer) | 2 つの ShardIteratorType.AT,AFTER_SEQUENCE_NUMBER イテレーター型のいずれかを使用する場合のシーケンス番号のプロバイダー。レジストリー参照またはリテラルシーケンス番号を指定できます。 | SequenceNumberProvider | |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
23.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 15 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-ddbstream.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ddbstream.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ddbstream.configuration.amazon-dynamo-db-streams-client | このエンドポイントに対するすべての要求に使用する Amazon DynamoDB クライアント | AmazonDynamoDBStreams | |
| camel.component.aws-ddbstream.configuration.iterator-type | DynaboDB ストリーム内でレコードの取得を開始する場所を定義します。TRIM_HORIZON を使用すると、ストリームがリアルタイムに追いつく前に大幅な遅延が発生する可能性があることに注意してください。AT,AFTER_SEQUENCE_NUMBER を使用する場合は、sequenceNumberProvider を指定する必要があります。 | ShardIteratorType | |
| camel.component.aws-ddbstream.configuration.max-results-per-request | 各ポーリングでフェッチされる最大レコード数。 | Integer | |
| camel.component.aws-ddbstream.configuration.proxy-host | DDBStreams クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| camel.component.aws-ddbstream.configuration.proxy-port | DDBStreams クライアントをインスタンス化する際にプロキシーポートを定義します | Integer | |
| camel.component.aws-ddbstream.configuration.region | DDBStreams クライアントが機能する必要があるリージョン | String | |
| camel.component.aws-ddbstream.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-ddbstream.configuration.sequence-number-provider | 2 つの ShardIteratorType.AT,AFTER_SEQUENCE_NUMBER イテレーター型のいずれかを使用する場合のシーケンス番号のプロバイダー。レジストリー参照またはリテラルシーケンス番号を指定できます。 | SequenceNumberProvider | |
| camel.component.aws-ddbstream.configuration.table-name | dynamodb テーブルの名前 | String | |
| camel.component.aws-ddbstream.enabled | aws-ddbstream コンポーネントを有効にする | true | Boolean |
| camel.component.aws-ddbstream.region | Amazon AWS リージョン | String | |
| camel.component.aws-ddbstream.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-ddbstream.secret-key | Amazon AWS Secret Key | String |
必須の DynampDBStream コンポーネントオプション
レジストリーに amazonDynamoDbStreamsClient を提供し、プロキシーと関連する認証情報を設定する必要があります。
23.4. シーケンス番号 リンクのコピーリンクがクリップボードにコピーされました!
シーケンス番号としてリテラル文字列を指定するか、レジストリーに Bean を指定できます。Bean を使用する例としては、現在の位置を変更フィードに保存し、Camel の起動時に復元することが挙げられます。
describe-streams の結果で最大のシーケンス番号よりも大きいシーケンス番号を指定すると、AWS 呼び出しが HTTP 400 を返すことになるため、エラーになります。
23.5. バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Batch Consumer を実装します。
これにより、たとえば、このバッチに存在するメッセージの数を知ることができ、たとえば、Aggregator にこの数のメッセージを集約させることができます。
23.6. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
23.6.1. AmazonDynamoDBStreamsClient configuration リンクのコピーリンクがクリップボードにコピーされました!
AmazonDynamoDBStreamsClient のインスタンスを作成し、それをレジストリーに BIND する必要があります。
23.6.2. AWS 認証情報の指定 リンクのコピーリンクがクリップボードにコピーされました!
新しい ClientConfiguration インスタンスを作成するときのデフォルトである DefaultAWSCredentialsProviderChain を使用して認証情報を取得することをお勧めしますが、createClient (…) を呼び出すときに別の AWSCredentialsProvider を指定できます。
23.7. ダウンタイムへの対処 リンクのコピーリンクがクリップボードにコピーされました!
23.7.1. 24 時間未満の AWS DynamoDB ストリームの停止 リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーは最後に確認されたシーケンス番号 (CAMEL-9515 で実装) から再開されるため、停止に DynamoDB 自体が含まれていない限り、大量のイベントをすばやく連続して受信する必要があります。
23.7.2. AWS DynamoDB Streams が 24 時間以上停止する リンクのコピーリンクがクリップボードにコピーされました!
AWS が 24 時間分の変更しか保持しないことを考えると、どのような軽減策が実施されていても、変更イベントを見逃すことになります。
23.8. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.7 以降) に置き換える必要があります。
23.9. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
-
AWS コンポーネント
+
第24章 AWS EC2 コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.16 以降で利用可能
EC2 コンポーネントは、AWS EC2 インスタンスの作成、実行、開始、停止、および終了をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon EC2 を使用するためにサインアップしている必要がある。詳細については、Amazon EC2 を参照してください。
24.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ec2://label[?options]
aws-ec2://label[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
24.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS EC2 コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS EC2 のデフォルト設定 | EC2 設定 | |
| region (producer) | EC2 クライアントが動作する必要があるリージョン | String | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS EC2 エンドポイントは、URI 構文を使用して設定されます。
aws-ec2:label
aws-ec2:label
パスおよびクエリーパラメーターを使用します。
24.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| label | 必須 論理名 | String |
24.2.2. クエリーパラメーター (8 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| accessKey (producer) | Amazon AWS Access Key | String | |
| amazonEc2Client (producer) | 既存の設定済み AmazonEC2Client をクライアントとして使用するには | AmazonEC2Client | |
| operation (producer) | 必須 実行する操作。createAndRunInstances、startInstances、stopInstances、terminateInstances、describeInstances、describeInstancesStatus、rebootInstances、monitorInstances、unmonitorInstances、createTags、または deleteTags のいずれかです。 | EC2 オペレーション | |
| proxyHost (producer) | EC2 クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| proxyPort (producer) | EC2 クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| region (producer) | EC2 クライアントが動作する必要があるリージョン | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
24.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 12 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-ec2.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ec2.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ec2.configuration.amazon-ec2-client | 既存の設定済み AmazonEC2Client をクライアントとして使用するには | AmazonEC2Client | |
| camel.component.aws-ec2.configuration.operation | 実行する操作。createAndRunInstances、startInstances、stopInstances、terminateInstances、describeInstances、describeInstancesStatus、rebootInstances、monitorInstances、unmonitorInstances、createTags、または deleteTags のいずれかです。 | EC2 オペレーション | |
| camel.component.aws-ec2.configuration.proxy-host | EC2 クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| camel.component.aws-ec2.configuration.proxy-port | EC2 クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| camel.component.aws-ec2.configuration.region | EC2 クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-ec2.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-ec2.enabled | aws-ec2 コンポーネントを有効にする | true | Boolean |
| camel.component.aws-ec2.region | EC2 クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-ec2.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-ec2.secret-key | Amazon AWS Secret Key | String |
必要な EC2 コンポーネントオプション
Amazon EC2 サービスにアクセスするには、レジストリーに amazonEc2Client を指定するか、accessKey と secretKey を指定する必要があります。
24.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
24.4.1. EC2 プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| AWS マーケットプレイスのイメージ ID |
|
| com.amazonaws.services.ec2.model.InstanceType | 作成して実行するインスタンスタイプ |
|
|
| 実行する操作 |
|
|
| 実行したいインスタンスの最小数。 |
|
|
| 実行したいインスタンスの最大数。 |
|
| Boolean | 実行中のインスタンスを監視するかどうかを定義します |
|
|
| 作成中のインスタンスが EBS I/O 用に最適化されているかどうかを定義します。 |
|
| コレクション | インスタンスに関連付けるセキュリティーグループ |
|
|
| 開始、停止、記述、および終了操作を実行するインスタンス IDS のコレクション。 |
|
|
| EC2 リソースから追加または削除するタグのコレクション |
依存関係
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.16 以降) に置き換える必要があります。
24.5. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第25章 AWS IAM コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.23 以降で利用可能
KMS コンポーネントは 、AWS IAM インスタンスの作成、実行、開始、停止、終了をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon IAM を使用するためにサインアップしている必要がある。詳細については、Amazon IAM を参照してください。
25.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-kms://label[?options]
aws-kms://label[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
25.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS IAM コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS IAM のデフォルト設定 | IAMConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | IAM クライアントが動作する必要があるリージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS IAM エンドポイントは、URI 構文を使用して設定されます。
aws-iam:label
aws-iam:label
パスおよびクエリーパラメーターを使用します。
25.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| label | 必須 論理名 | String |
25.2.2. クエリーパラメーター (8 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| accessKey (producer) | Amazon AWS Access Key | String | |
| iamClient (producer) | 既存の設定済み AWS IAM をクライアントとして使用する場合 | AmazonIdentity ManagementClient | |
| operation (producer) | 必須 実行する操作 | IAM オペレーション | |
| proxyHost (producer) | KMS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| proxyPort (producer) | KMS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| region (producer) | KMS クライアントが動作する必要があるリージョン | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
25.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 12 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-iam.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-iam.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-iam.configuration.iam-client | 既存の設定済み AWS IAM をクライアントとして使用する場合 | AmazonIdentity ManagementClient | |
| camel.component.aws-iam.configuration.operation | 実行する操作 | IAM オペレーション | |
| camel.component.aws-iam.configuration.proxy-host | KMS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| camel.component.aws-iam.configuration.proxy-port | KMS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| camel.component.aws-iam.configuration.region | KMS クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-iam.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-iam.enabled | aws-iam コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.aws-iam.region | IAM クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-iam.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-iam.secret-key | Amazon AWS Secret Key | String |
必須の IAM コンポーネントオプション
Amazon IAM サービスにアクセスするには、レジストリーに amazonKmsClient を指定するか、accessKey と secretKey を指定する必要があります。
25.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
25.4.1. IAM プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 実行する操作 |
|
|
| 管理するユーザーのユーザー名 |
|
|
| 管理するアクセスキー |
|
|
| 設定する AccessKey のステータス。有効な値と無効な値があります |
25.4.2. IAM プロデューサーの操作 リンクのコピーリンクがクリップボードにコピーされました!
Camel-AWS IAM コンポーネントは、プロデューサー側で次の操作を提供します。
- listAccessKeys
- ユーザーを作成
- deleteUser
- listUsers
- getUser
- createAccessKey
- deleteAccessKey
- updateAccessKey
依存関係
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.16 以降) に置き換える必要があります。
25.5. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第26章 AWS Kinesis コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.17 以降で利用可能
Kinesis コンポーネントは、Amazon Kinesis サービスとのメッセージの送受信をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon Kinesis を使用するためにサインアップしている必要がある。詳細については、AWS Kinesis を参照してください
26.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-kinesis://stream-name[?options]
aws-kinesis://stream-name[?options]
ストリームは、使用する前に作成する必要があります。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
26.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS DynamoDB コンポーネントは 5 個のオプションをサポートします。これは以下に記載されています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS S3 のデフォルト設定 | KinesisConfiguration | |
| accessKey (common) | Amazon AWS Access Key | String | |
| secretKey (common) | Amazon AWS Secret Key | String | |
| region (common) | Amazon AWS リージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Kinesis エンドポイントは、URI 構文を使用して設定します。
aws-kinesis:streamName
aws-kinesis:streamName
パスおよびクエリーパラメーターを使用します。
26.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| streamName | 必須 ストリームの名前。 | String |
26.2.2. クエリーパラメーター (30 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonKinesisClient (common) | このエンドポイントに対するすべての要求に使用する Amazon Kinesis クライアント。 | AmazonKinesis | |
| proxyHost (common) | DDBStreams クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| proxyPort (common) | DDBStreams クライアントをインスタンス化する際にプロキシーポートを定義します | Integer | |
| region (common) | Kinesis クライアントが動作する必要があるリージョン | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| iteratorType (consumer) | Kinesis ストリーム内でレコードの取得を開始する場所を定義します | TRIM_HORIZON | ShardIteratorType |
| maxResultsPerRequest (consumer) | 各ポーリングでフェッチされる最大レコード数。 | 1 | int |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| sequenceNumber (consumer) | ポーリングを開始するシーケンス番号。iteratorType が AFTER_SEQUENCE_NUMBER または AT_SEQUENCE_NUMBER に設定されている場合に必要です。 | String | |
| shardClosed (consumer) | シャード (shard) が閉じられた場合の動作を定義します。設定可能な値は、ignore、silent、fail です。ignore の場合、メッセージはログに記録され、コンシューマーは最初から再起動します。silent の場合は、ログには記録されず、コンシューマーは最初から起動します。fail の場合は、ReachedClosedStateException が発生します。 | ignore | KinesisShardClosed StrategyEnum |
| shardId (consumer) | Kinesis ストリームでどの shardId からレコードを取得するかを定義します。 | String | |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
26.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 17 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-kinesis.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-kinesis.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-kinesis.configuration.amazon-kinesis-client | このエンドポイントに対するすべての要求に使用する Amazon Kinesis クライアント。 | AmazonKinesis | |
| camel.component.aws-kinesis.configuration.iterator-type | Kinesis ストリーム内でレコードの取得を開始する場所を定義します | ShardIteratorType | |
| camel.component.aws-kinesis.configuration.max-results-per-request | 各ポーリングでフェッチされる最大レコード数。 | 1 | Integer |
| camel.component.aws-kinesis.configuration.proxy-host | DDBStreams クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| camel.component.aws-kinesis.configuration.proxy-port | DDBStreams クライアントをインスタンス化する際にプロキシーポートを定義します | Integer | |
| camel.component.aws-kinesis.configuration.region | Kinesis クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-kinesis.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-kinesis.configuration.sequence-number | ポーリングを開始するシーケンス番号。iteratorType が AFTER_SEQUENCE_NUMBER または AT_SEQUENCE_NUMBER に設定されている場合に必要です。 | String | |
| camel.component.aws-kinesis.configuration.shard-closed | シャード (shard) が閉じられた場合の動作を定義します。設定可能な値は、ignore、silent、fail です。ignore の場合、メッセージはログに記録され、コンシューマーは最初から再起動します。silent の場合は、ログには記録されず、コンシューマーは最初から起動します。fail の場合は、ReachedClosedStateException が発生します。 | KinesisShardClosed StrategyEnum | |
| camel.component.aws-kinesis.configuration.shard-id | Kinesis ストリームでどの shardId からレコードを取得するかを定義します。 | String | |
| camel.component.aws-kinesis.configuration.stream-name | ストリームの名前 | String | |
| camel.component.aws-kinesis.enabled | aws-kinesis コンポーネントを有効にする | true | Boolean |
| camel.component.aws-kinesis.region | Amazon AWS リージョン | String | |
| camel.component.aws-kinesis.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-kinesis.secret-key | Amazon AWS Secret Key | String |
必要な Kinesis コンポーネントオプション
プロキシーと関連するクレデンシャル情報が設定された状態で、レジストリーに amazonKinesisClient を提供する必要があります。
26.4. バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Batch Consumer を実装します。
これにより、たとえば、このバッチに存在するメッセージの数を知ることができ、たとえば、Aggregator にこの数のメッセージを集約させることができます。
26.5. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
26.5.1. Kinesis コンシューマーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| このレコードのシーケンス番号。これは、サイズが API によって定義されていないため、文字列として表されます。数値型として使用する場合は、次を使用します |
|
|
| AWS がレコードの到着時間として割り当てた時間。 |
|
|
| データレコードが割り当てられているストリーム内のシャードを識別します。 |
26.5.2. AmazonKinesis の設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonKinesisClient のインスタンスを作成し、それをレジストリーに BIND する必要があります。
次に、amazonKinesisClient URI オプションで AmazonKinesisClient を参照する必要があります。
from("aws-kinesis://mykinesisstream?amazonKinesisClient=#kinesisClient")
.to("log:out?showAll=true");
from("aws-kinesis://mykinesisstream?amazonKinesisClient=#kinesisClient")
.to("log:out?showAll=true");
26.5.3. AWS 認証情報の指定 リンクのコピーリンクがクリップボードにコピーされました!
新しい ClientConfiguration インスタンスを作成するときのデフォルトである DefaultAWSCredentialsProviderChain を使用して認証情報を取得することをお勧めしますが、createClient (…) を呼び出すときに別の AWSCredentialsProvider を指定できます。
26.5.4. Kinesis プロデューサーが Kinesis に書き込むために使用するメッセージヘッダー。プロデューサーは、メッセージ本文が byte[] であることを期待しています。 リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| このレコードを保存するために Kinesis に渡す PartitionKey。 |
|
|
| このレコードのシーケンス番号を示すオプションのパラメーター。 |
26.5.5. レコードの保存が成功したときに Kinesis プロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| Response Syntax で定義されているレコードのシーケンス番号 |
|
|
| レコードが保存された場所のシャード ID |
26.6. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.17 以降) に置き換える必要があります。
26.7. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第27章 AWS Kinesis Firehose コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.19 以降で利用可能
Kinesis Firehose コンポーネントは、Amazon Kinesis Firehose サービスへのメッセージの送信をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon Kinesis Firehose を使用するためにサインアップしている必要がある。詳細については、AWS Kinesis Firehose をご覧ください。
27.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-kinesis-firehose://delivery-stream-name[?options]
aws-kinesis-firehose://delivery-stream-name[?options]
ストリームは、使用する前に作成する必要があります。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
27.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS Kinesis Firehose コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS Kinesis Firehose のデフォルト設定 | KinesisFirehose Configuration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | Amazon AWS リージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Kinesis Firehose エンドポイントは、URI 構文を使用して設定されます。
aws-kinesis-firehose:streamName
aws-kinesis-firehose:streamName
パスおよびクエリーパラメーターを使用します。
27.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| streamName | 必須 ストリームの名前。 | String |
27.2.2. クエリーパラメーター (7 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonKinesisFirehoseClient (producer) | このエンドポイントのすべてのリクエストに使用する Amazon Kinesis Firehose クライアント | AmazonKinesisFirehose | |
| proxyHost (producer) | DDBStreams クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| proxyPort (producer) | DDBStreams クライアントをインスタンス化する際にプロキシーポートを定義します | Integer | |
| region (producer) | Kinesis クライアントが動作する必要があるリージョン | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
27.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 12 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-kinesis-firehose.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-kinesis-firehose.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-kinesis-firehose.configuration.amazon-kinesis-firehose-client | このエンドポイントのすべてのリクエストに使用する Amazon Kinesis Firehose クライアント | AmazonKinesisFirehose | |
| camel.component.aws-kinesis-firehose.configuration.proxy-host | DDBStreams クライアントをインスタンス化する際にプロキシーホストを定義します | String | |
| camel.component.aws-kinesis-firehose.configuration.proxy-port | DDBStreams クライアントをインスタンス化する際にプロキシーポートを定義します | Integer | |
| camel.component.aws-kinesis-firehose.configuration.region | Kinesis クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-kinesis-firehose.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-kinesis-firehose.configuration.stream-name | ストリームの名前 | String | |
| camel.component.aws-kinesis-firehose.enabled | aws-kinesis-firehose コンポーネントを有効にする | true | Boolean |
| camel.component.aws-kinesis-firehose.region | Amazon AWS リージョン | String | |
| camel.component.aws-kinesis-firehose.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-kinesis-firehose.secret-key | Amazon AWS Secret Key | String |
必要な Kinesis Firehose コンポーネントのオプション
プロキシーと関連するクレデンシャル情報が設定された状態で、レジストリーに amazonKinesisClient を提供する必要があります。
27.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
27.4.1. Amazon Kinesis Firehose の設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonKinesisClient のインスタンスを作成し、それをレジストリーに BIND する必要があります。
次に、amazonKinesisFirehoseClient URI オプションで AmazonKinesisFirehoseClient を参照する必要があります。
from("aws-kinesis-firehose://mykinesisdeliverystream?amazonKinesisFirehoseClient=#kinesisClient")
.to("log:out?showAll=true");
from("aws-kinesis-firehose://mykinesisdeliverystream?amazonKinesisFirehoseClient=#kinesisClient")
.to("log:out?showAll=true");
27.4.2. AWS 認証情報の指定 リンクのコピーリンクがクリップボードにコピーされました!
新しい ClientConfiguration インスタンスを作成するときのデフォルトである DefaultAWSCredentialsProviderChain を使用して認証情報を取得することをお勧めしますが、createClient (…) を呼び出すときに別の AWSCredentialsProvider を指定できます。
27.4.3. レコードの保存が成功したときに Kinesis プロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 応答構文 で定義されているレコード ID |
27.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version } は、Camel の実際のバージョン (2.19 以降) に置き換える必要があります。
27.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第28章 AWS KMS コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.21 以降で利用可能
KMS コンポーネントは、AWS KMS インスタンスの作成、実行、開始、停止、および終了をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon KMS を使用するためにサインアップしている必要がある。詳細については、Amazon KMS を参照してください。
28.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-kms://label[?options]
aws-kms://label[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
28.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS KMS コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS KMS のデフォルト設定 | KMSConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | KMS クライアントが動作する必要があるリージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS KMS エンドポイントは、URI 構文を使用して設定されます。
aws-kms:label
aws-kms:label
パスおよびクエリーパラメーターを使用します。
28.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| label | 必須 論理名 | String |
28.2.2. クエリーパラメーター (8 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| accessKey (producer) | Amazon AWS Access Key | String | |
| kmsClient (producer) | 既存の設定済み AWS KMS をクライアントとして使用する場合 | AWSKMS | |
| operation (producer) | 必須 実行する操作 | KMSOperations | |
| proxyHost (producer) | KMS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| proxyPort (producer) | KMS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| region (producer) | KMS クライアントが動作する必要があるリージョン | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
28.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 12 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-kms.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-kms.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-kms.configuration.kms-client | 既存の設定済み AWS KMS をクライアントとして使用する場合 | AWSKMS | |
| camel.component.aws-kms.configuration.operation | 実行する操作 | KMSOperations | |
| camel.component.aws-kms.configuration.proxy-host | KMS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| camel.component.aws-kms.configuration.proxy-port | KMS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| camel.component.aws-kms.configuration.region | KMS クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-kms.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-kms.enabled | aws-kms コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.aws-kms.region | KMS クライアントが動作する必要があるリージョン | String | |
| camel.component.aws-kms.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-kms.secret-key | Amazon AWS Secret Key | String |
必須の KMS コンポーネントオプション
Amazon KMS サービスにアクセスするには、レジストリーに amazonKmsClient を指定するか、accessKey と secretKey を指定する必要があります。
28.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
28.4.1. MQ プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| listKeys 操作の実行中に返されるキーの制限数 |
|
|
| 実行する操作 |
|
|
| createKey 操作の実行中に使用するキーの説明 |
|
|
| キー ID |
28.4.2. KMS プロデューサーの操作 リンクのコピーリンクがクリップボードにコピーされました!
Camel-AWS KMS コンポーネントは、プロデューサー側で次の操作を提供します。
- listKeys
- createKey
- disableKey
- scheduleKeyDeletion
- describeKey
- enableKey
依存関係
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.16 以降) に置き換える必要があります。
28.5. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第29章 AWS Lambda コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.20 以降で利用可能
Lambda コンポーネントは、AWS Lambda 関数の作成、取得、一覧表示、削除、および呼び出しをサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon Lambda を使用するためにサインアップしている必要がある。詳細については、Amazon Lambda を参照してください。
Lambda 関数を作成するときは、少なくとも AWSLambdaBasicExecuteRole ポリシーがアタッチされた IAM ロールを指定する必要があります。
Warning
Lambda は地域サービスです。S3 バケットとは異なり、特定のリージョンで作成された Lambda 関数は他のリージョンでは使用できません。
29.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-lambda://functionName[?options]
aws-lambda://functionName[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
29.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS Lambda コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS Lambda のデフォルト設定 | LambdaConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | Amazon AWS リージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Lambda エンドポイントは、URI 構文を使用して設定されます。
aws-lambda:function
aws-lambda:function
パスおよびクエリーパラメーターを使用します。
29.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| function | 必須 Lambda 関数の名前。 | String |
29.2.2. クエリーパラメーター (8 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| operation (producer) | 必須 実行する操作。listFunctions、getFunction、createFunction、deleteFunction、または invokeFunction のいずれかです | LambdaOperations | |
| region (producer) | Amazon AWS リージョン | String | |
| awsLambdaClient (advanced) | 既存の設定済みの AwsLambdaClient をクライアントとして使用する場合 | AWSLambda | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| proxyHost (proxy) | Lambda クライアントをインスタンス化するときにプロキシーホストを定義します | String | |
| proxyPort (proxy) | Lambda クライアントをインスタンス化するときにプロキシーポートを定義します | Integer | |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
29.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、以下に示す 13 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-lambda.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-lambda.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-lambda.configuration.aws-lambda-client | 既存の設定済みの AwsLambdaClient をクライアントとして使用する場合 | AWSLambda | |
| camel.component.aws-lambda.configuration.function | Lambda 関数の名前。 | String | |
| camel.component.aws-lambda.configuration.operation | 実行する操作。listFunctions、getFunction、createFunction、deleteFunction、または invokeFunction のいずれかです | LambdaOperations | |
| camel.component.aws-lambda.configuration.proxy-host | Lambda クライアントをインスタンス化するときにプロキシーホストを定義します | String | |
| camel.component.aws-lambda.configuration.proxy-port | Lambda クライアントをインスタンス化するときにプロキシーポートを定義します | Integer | |
| camel.component.aws-lambda.configuration.region | Amazon AWS リージョン | String | |
| camel.component.aws-lambda.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-lambda.enabled | aws-lambda コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.aws-lambda.region | Amazon AWS リージョン | String | |
| camel.component.aws-lambda.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-lambda.secret-key | Amazon AWS Secret Key | String |
必要な Lambda コンポーネントオプション
Amazon Lambda サービスにアクセスするには、レジストリーに awsLambdaClient を指定するか、accessKey と secretKey を指定する必要があります
29.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
29.4.1. Lambda プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 操作 | ヘッダー | タイプ | 説明 | 必須 |
|---|---|---|---|---|
| すべて |
|
| 実行する操作。クエリーパラメーターとして渡されたオーバーライド操作 | はい |
| createFunction |
|
| デプロイパッケージを含む .zip ファイルが保存される Amazon S3 バケット名。このバケットは、Lambda 関数を作成しているのと同じ AWS リージョンに存在する必要があります。 | いいえ |
| createFunction |
|
| アップロードする Amazon S3 オブジェクト (デプロイパッケージ) のキー名。 | いいえ |
| createFunction |
| String | アップロードする Amazon S3 オブジェクト (デプロイパッケージ) のバージョン。 | いいえ |
| createFunction |
|
| zip ファイル (デプロイメントパッケージ) のローカルパス。zip ファイルの内容をメッセージ本文に入れることもできます。 | いいえ |
| createFunction |
|
| Lambda が関数を実行して他のアマゾンウェブサービス (AWS) リソースにアクセスするときに引き受ける IAM ロールの Amazon リソースネーム (ARN)。 | はい |
| createFunction |
| String | アップロードする Lambda 関数のランタイム環境。(nodejs、nodejs4.3、nodejs6.10、java8、python2.7、python3.6、dotnetcore1.0、odejs4.3-edge) | はい |
| createFunction |
|
| 実行を開始するために Lambda が呼び出すコード内の関数。Node.js の場合は、関数の module-name.export 値です。Java の場合は、package.class-name::handler または package.class-name にすることができます。 | はい |
| createFunction |
|
| ユーザー提供の説明。 | いいえ |
| createFunction |
|
| Amazon SQS キューまたは Amazon SNS トピックのターゲット ARN (Amazon リソースネーム) を含む親オブジェクト。 | いいえ |
| createFunction |
|
| 関数用に設定したメモリーサイズ (MB 単位)。64 MB の倍数である必要があります。 | いいえ |
| createFunction |
|
| 関数の環境変数を暗号化するために使用される KMS キーの Amazon リソースネーム (ARN)。指定しない場合、AWS Lambda はデフォルトのサービスキーを使用します。 | いいえ |
| createFunction |
|
| このブール値パラメーターを使用して、AWS Lambda に Lambda 関数を作成し、バージョンをアトミック操作として発行するようにリクエストできます。 | いいえ |
| createFunction |
|
| Lambda が関数を終了する関数実行時間。デフォルトは 3 秒です。 | いいえ |
| createFunction |
|
| 関数のトレース設定 (Active または PassThrough)。 | いいえ |
| createFunction |
|
| 環境の設定設定を表すキーと値のペア。 | いいえ |
| createFunction |
|
| 新しい関数に割り当てられたタグ (キーと値のペア) のリスト。 | いいえ |
| createFunction |
|
| Lambda 関数が VPC 内のリソースにアクセスする場合、VPC 内の 1 つ以上のセキュリティーグループ ID のリスト。 | いいえ |
| createFunction |
|
| Lambda 関数が VPC 内のリソースにアクセスする場合、VPC 内の 1 つ以上のサブネット ID のリスト。 | いいえ |
29.5. 利用可能な操作のリスト リンクのコピーリンクがクリップボードにコピーされました!
- listFunctions
- getFunction,
- createFunction
- deleteFunction
- invokeFunction
- updateFunction
- createEventSourceMapping
- deleteEventSourceMapping
- listEventSourceMapping
29.6. 例 リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントがどのように機能するかを完全に理解するには、この 統合テスト を参照してください。
29.7. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.16 以降) に置き換える必要があります。
29.8. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第30章 AWS MQ コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.21 以降で利用可能
EC2 コンポーネントは、AWS MQ インスタンスの作成、実行、開始、停止、および終了をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon MQ を使用するためにサインアップしている必要がある。詳細については、Amazon MQ を参照してください。
30.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-mq://label[?options]
aws-mq://label[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
30.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS MQ コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS MQ のデフォルト設定 | MQConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | MQ クライアントが動作する必要がある地域 | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS MQ エンドポイントは、URI 構文を使用して設定されます。
aws-mq:label
aws-mq:label
パスおよびクエリーパラメーターを使用します。
30.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| label | 必須 論理名 | String |
30.2.2. クエリーパラメーター (8 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| accessKey (producer) | Amazon AWS Access Key | String | |
| amazonMqClient (producer) | 既存の設定済み AmazonMQClient をクライアントとして使用するには | AmazonMQ | |
| operation (producer) | 必須 実行する操作。It can be listBrokers,createBroker,deleteBroker | MQ 操作 | |
| proxyHost (producer) | MQ クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| proxyPort (producer) | MQ クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| region (producer) | MQ クライアントが動作する必要がある地域 | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
30.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 12 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-mq.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-mq.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-mq.configuration.amazon-mq-client | 既存の設定済み AmazonMQClient をクライアントとして使用するには | AmazonMQ | |
| camel.component.aws-mq.configuration.operation | 実行する操作。It can be listBrokers,createBroker,deleteBroker | MQ 操作 | |
| camel.component.aws-mq.configuration.proxy-host | MQ クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| camel.component.aws-mq.configuration.proxy-port | MQ クライアントをインスタンス化する際にプロキシーポートを定義します。 | Integer | |
| camel.component.aws-mq.configuration.region | MQ クライアントが動作する必要がある地域 | String | |
| camel.component.aws-mq.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-mq.enabled | aws-mq コンポーネントの自動設定を有効にするかどうか。これはデフォルトで有効になっています。 | Boolean | |
| camel.component.aws-mq.region | MQ クライアントが動作する必要がある地域 | String | |
| camel.component.aws-mq.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-mq.secret-key | Amazon AWS Secret Key | String |
必要な EC2 コンポーネントオプション
Amazon EC2 サービスにアクセスするには、レジストリーに amazonEc2Client を指定するか、accessKey と secretKey を指定する必要があります。
30.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
30.4.1. MQ プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| listBrokers オペレーションから取得する必要がある結果の数 |
|
|
| ブローカー名 |
|
|
| 実行する操作 |
|
|
| ブローカー ID |
|
|
| createBroker 操作でのブローカーのデプロイメントモード |
|
|
| createBroker オペレーションでの EC2 マシンのインスタンスタイプ |
|
|
| MQ のブローカーエンジン。デフォルトは ACTIVEMQ です |
|
|
| MQ のブローカーエンジンのバージョン。現在、ACTIVEMQ の 5.15.6 と 5.15.0 の間で選択できます。 |
|
|
| MQ のユーザーのリスト |
|
|
| MQ インスタンスを公開する必要があるかどうか。デフォルトは false です。 |
依存関係
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.16 以降) に置き換える必要があります。
30.5. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第31章 AWS S3 ストレージサービスコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.8 以降で利用可能
S3 コンポーネントは、Amazon の S3 サービスとの間でのオブジェクトの保存と取得をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon S3 を使用するためにサインアップしている必要がある。詳細については、Amazon S3 を参照してください。
31.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-s3://bucketNameOrArn[?options]
aws-s3://bucketNameOrArn[?options]
バケットがまだ存在しない場合は作成されます。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
たとえば、バケット helloBucket からファイル hello.txt を読み取るには、次のスニペットを使用します。
from("aws-s3:helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
.to("file:/var/downloaded");
from("aws-s3:helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=hello.txt")
.to("file:/var/downloaded");
31.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS S3 Storage Service コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS S3 のデフォルト設定 | S3 設定 | |
| accessKey (common) | Amazon AWS Access Key | String | |
| secretKey (common) | Amazon AWS Secret Key | String | |
| region (common) | バケットが配置されているリージョン。このオプションは、com.amazonaws.services.s3.model.CreateBucketRequest で使用されます。 | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS S3 Storage Service エンドポイントは、URI 構文を使用して設定されます。
aws-s3:bucketNameOrArn
aws-s3:bucketNameOrArn
パスおよびクエリーパラメーターを使用します。
31.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bucketNameOrArn | 必須 バケット名または ARN | String |
31.2.2. クエリーパラメーター(50 パラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonS3Client (common) | リンクの com.amazonaws.services.sqs.AmazonS3 への参照:https://camel.apache.org/registry.htmlRegistry。 | AmazonS3 | |
| pathStyleAccess (common) | S3 クライアントがパススタイルアクセスを使用するかどうか | false | boolean |
| policy (common) | com.amazonaws.services.s3.AmazonS3#setBucketPolicy() メソッドに設定されるこのキューのポリシー。 | String | |
| proxyHost (common) | SQS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| proxyPort (common) | クライアント定義内で使用されるプロキシーポートを指定します。 | Integer | |
| region (common) | S3 クライアントが機能する必要があるリージョン | String | |
| useIAMCredentials (common) | S3 クライアントが EC2 インスタンスに認証情報をロードすることを期待するか、静的認証情報が渡されることを期待するかを設定します。 | false | boolean |
| encryptionMaterials (common) | 対称/非対称クライアントを使用する場合に使用する暗号化マテリアル | EncryptionMaterials | |
| useEncryption (common) | 暗号化を使用する必要があるかどうかを定義する | false | boolean |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| deleteAfterRead (consumer) | 取得後に S3 からオブジェクトを削除します。削除は、エクスチェンジがコミットされた場合にのみ実行されます。ロールバックが発生すると、オブジェクトは削除されません。このオプションが false の場合、同じオブジェクトがポーリングで繰り返し取得されます。そのため、ルートで Idempotent Consumer EIP を使用して重複を除外する必要があります。S3Constants#BUCKET_NAME および S3Constants#KEY ヘッダー、または S3Constants#KEY ヘッダーのみを使用してフィルタリングできます。 | true | boolean |
| fileName (consumer) | 指定のファイル名を持つバケットからオブジェクトを取得します。 | String | |
| includeBody (consumer) | true の場合、エクスチェンジ本文はファイルの内容へのストリームに設定されます。false の場合、ヘッダーには S3 オブジェクトのメタデータが設定されますが、ボディーは null になります。このオプションは、autocloseBody オプションと密接に関係します。includeBody を true に設定し、autocloseBody を false に設定した場合、S3Object ストリームを閉じるのは呼び出し側が判断します。autocloseBody を true に設定すると、S3Object ストリームが自動的に閉じられます。 | true | boolean |
| maxConnections (consumer) | S3 クライアント設定の maxConnections パラメーターを設定します。 | 60 | int |
| maxMessagesPerPoll (consumer) | 各ポーリングのポーリング制限としてメッセージの最大数を取得します。デフォルトは無制限ですが、0 または負の数を使用して無制限として無効にします。 | 10 | int |
| prefix (consumer) | 対象のオブジェクトのみを消費するために com.amazonaws.services.s3.model.ListObjectsRequest で使用される接頭辞。 | String | |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| autocloseBody (consumer) | このオプションが true で、includeBody が true の場合、エクスチェンジの完了時に S3Object.close() メソッドが呼び出されます。このオプションは includeBody オプションと密接に関係しています。includeBody を true に設定し、autocloseBody を false に設定した場合、S3Object ストリームを閉じるのは呼び出し側が判断します。autocloseBody を true に設定すると、S3Object ストリームが自動的に閉じられます。 | true | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| deleteAfterWrite (producer) | S3 ファイルのアップロード後にファイルオブジェクトを削除します。 | false | boolean |
| multiPartUpload (producer) | true の場合、Camel はマルチパート形式のファイルをアップロードし、パートサイズは partSize のオプションによって決定されます。 | false | boolean |
| operation (producer) | ユーザーがアップロードだけをしたくない場合に行う操作 | S3 オペレーション | |
| partSize (producer) | マルチパートのアップロードで使用される partSize を設定します。デフォルトのサイズは 25M です。 | 26214400 | long |
| serverSideEncryption (producer) | AWS が管理するキーを使用してオブジェクトを暗号化するときに、サーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。 | String | |
| storageClass (producer) | com.amazonaws.services.s3.model.PutObjectRequest リクエストに設定するストレージクラス。 | String | |
| awsKMSKeyId (producer) | KMS が有効になっている場合に使用する KMS キーの ID を定義します。 | String | |
| useAwsKMS (producer) | KMS を使用する必要があるかどうかを定義します。 | false | boolean |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accelerateModeEnabled (advanced) | アクセラレートモードの有効化が true か false かを定義する | false | boolean |
| chunkedEncodingDisabled ( advanced) | 無効化されたチャンクエンコーディングが true か false かを定義します | false | boolean |
| dualstackEnabled (advanced) | Dualstack の有効化が true か false かを定義する | false | boolean |
| forceGlobalBucketAccess Enabled (advanced) | Force Global Bucket Access の有効化が true か false かを定義します | false | boolean |
| payloadSigningEnabled (advanced) | 有効なペイロード署名が true か false かを定義する | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
31.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 34 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-s3.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-s3.configuration.accelerate-mode-enabled | アクセラレートモードの有効化が true か false かを定義する | false | Boolean |
| camel.component.aws-s3.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-s3.configuration.amazon-s3-client | リンクの com.amazonaws.services.sqs.AmazonS3 への参照:https://camel.apache.org/registry.htmlRegistry。 | AmazonS3 | |
| camel.component.aws-s3.configuration.autoclose-body | このオプションが true で、includeBody が true の場合、エクスチェンジの完了時に S3Object.close() メソッドが呼び出されます。このオプションは includeBody オプションと密接に関係しています。includeBody を true に設定し、autocloseBody を false に設定した場合、S3Object ストリームを閉じるのは呼び出し側が判断します。autocloseBody を true に設定すると、S3Object ストリームが自動的に閉じられます。 | true | Boolean |
| camel.component.aws-s3.configuration.aws-k-m-s-key-id | KMS が有効になっている場合に使用する KMS キーの ID を定義します。 | String | |
| camel.component.aws-s3.configuration.bucket-name | バケットの名前。バケットがまだ存在しない場合は作成されます。 | String | |
| camel.component.aws-s3.configuration.chunked-encoding-disabled | 無効化されたチャンクエンコーディングが true か false かを定義します | false | Boolean |
| camel.component.aws-s3.configuration.delete-after-read | 取得後に S3 からオブジェクトを削除します。削除は、エクスチェンジがコミットされた場合にのみ実行されます。ロールバックが発生すると、オブジェクトは削除されません。このオプションが false の場合、同じオブジェクトがポーリングで繰り返し取得されます。そのため、ルートで Idempotent Consumer EIP を使用して重複を除外する必要があります。S3Constants#BUCKET_NAME および S3Constants#KEY ヘッダー、または S3Constants#KEY ヘッダーのみを使用してフィルタリングできます。 | true | Boolean |
| camel.component.aws-s3.configuration.delete-after-write | S3 ファイルのアップロード後にファイルオブジェクトを削除します。 | false | Boolean |
| camel.component.aws-s3.configuration.dualstack-enabled | Dualstack の有効化が true か false かを定義する | false | Boolean |
| camel.component.aws-s3.configuration.encryption-materials | 対称/非対称クライアントを使用する場合に使用する暗号化マテリアル | EncryptionMaterials | |
| camel.component.aws-s3.configuration.file-name | 指定のファイル名を持つバケットからオブジェクトを取得します。 | String | |
| camel.component.aws-s3.configuration.force-global-bucket-access-enabled | Force Global Bucket Access の有効化が true か false かを定義します | false | Boolean |
| camel.component.aws-s3.configuration.include-body | true の場合、エクスチェンジ本文はファイルの内容へのストリームに設定されます。false の場合、ヘッダーには S3 オブジェクトのメタデータが設定されますが、ボディーは null になります。このオプションは、autocloseBody オプションと密接に関係します。includeBody を true に設定し、autocloseBody を false に設定した場合、S3Object ストリームを閉じるのは呼び出し側が判断します。autocloseBody を true に設定すると、S3Object ストリームが自動的に閉じられます。 | true | Boolean |
| camel.component.aws-s3.configuration.multi-part-upload | true の場合、Camel はマルチパート形式のファイルをアップロードし、パートサイズは partSize のオプションによって決定されます。 | false | Boolean |
| camel.component.aws-s3.configuration.operation | ユーザーがアップロードだけをしたくない場合に行う操作 | S3 オペレーション | |
| camel.component.aws-s3.configuration.part-size | マルチパートのアップロードで使用される partSize を設定します。デフォルトのサイズは 25M です。 | 26214400 | Long |
| camel.component.aws-s3.configuration.path-style-access | S3 クライアントがパススタイルアクセスを使用するかどうか | false | Boolean |
| camel.component.aws-s3.configuration.payload-signing-enabled | 有効なペイロード署名が true か false かを定義する | false | Boolean |
| camel.component.aws-s3.configuration.policy | com.amazonaws.services.s3.AmazonS3#setBucketPolicy() メソッドに設定されるこのキューのポリシー。 | String | |
| camel.component.aws-s3.configuration.prefix | 対象のオブジェクトのみを消費するために com.amazonaws.services.s3.model.ListObjectsRequest で使用される接頭辞。 | String | |
| camel.component.aws-s3.configuration.proxy-host | SQS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| camel.component.aws-s3.configuration.proxy-port | クライアント定義内で使用されるプロキシーポートを指定します。 | Integer | |
| camel.component.aws-s3.configuration.region | S3 クライアントが機能する必要があるリージョン | String | |
| camel.component.aws-s3.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-s3.configuration.server-side-encryption | AWS が管理するキーを使用してオブジェクトを暗号化するときに、サーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。 | String | |
| camel.component.aws-s3.configuration.storage-class | com.amazonaws.services.s3.model.PutObjectRequest リクエストに設定するストレージクラス。 | String | |
| camel.component.aws-s3.configuration.use-aws-k-m-s | KMS を使用する必要があるかどうかを定義します。 | false | Boolean |
| camel.component.aws-s3.configuration.use-encryption | 暗号化を使用する必要があるかどうかを定義する | false | Boolean |
| camel.component.aws-s3.enabled | aws-s3 コンポーネントを有効にする | true | Boolean |
| camel.component.aws-s3.region | バケットが配置されているリージョン。このオプションは、com.amazonaws.services.s3.model.CreateBucketRequest で使用されます。 | String | |
| camel.component.aws-s3.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-s3.secret-key | Amazon AWS Secret Key | String |
必須の S3 コンポーネントオプション
Amazon の S3 にアクセスするには、レジストリーに amazonDDBClient を指定するか、accessKey と secretKey を指定する必要があります。
31.4. バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Batch Consumer を実装します。
これにより、たとえば、このバッチに存在するメッセージの数を知ることができ、たとえば、Aggregator にこの数のメッセージを集約させることができます。
31.5. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
31.5.1. S3 プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| このオブジェクトが保存されるバケット名、または現在の操作に使用されるバケット名 |
|
|
| Camel 2.18: 現在の操作に使用されるバケット宛先名。 |
|
|
| このオブジェクトのコンテンツの長さ。 |
|
|
| このオブジェクトのコンテンツタイプ。 |
|
|
| Camel 2.8.2: このオブジェクトのコンテンツコントロール。 |
|
|
| Camel 2.8.2: このオブジェクトのコンテンツ処理。 |
|
|
| Camel 2.8.2: このオブジェクトのコンテンツエンコーディング。 |
|
|
| Camel 2.8.2: このオブジェクトの md5 チェックサム。 |
|
|
| Camel 2.18: 現在の操作に使用される宛先キー。 |
|
|
| このオブジェクトが格納されるキー、または現在の操作に使用されるキー |
|
|
| Camel 2.8.2: このオブジェクトの最終変更タイムスタンプ。 |
|
|
| Camel 2.18 : 実行する操作。許可されている値は、copyObject、deleteObject、listBuckets、deleteBucket、downloadLink、listObjects です。 |
|
|
| Camel 2.8.4: このオブジェクトのストレージクラス。 |
|
|
|
Camel 2.11.0: オブジェクトに適用される既定の ACL。許可されている値については、 |
|
|
|
Camel 2.11.0: 適切に構築された Amazon S3 Access Control List オブジェクト。詳細については、 |
|
|
| Camel 2.15.0 : カスタム objectMetadata ヘッダーの取得または設定をサポート。 |
|
| String | Camel 2.16: AWS が管理するキーを使用してオブジェクトを暗号化するときに、サーバー側の暗号化アルゴリズムを設定します。たとえば、AES256 を使用します。 |
|
|
| 現在の操作から格納または返されるオブジェクトのバージョン ID |
31.5.2. S3 プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 新しくアップロードされたオブジェクトの ETag 値。 |
|
|
| 新しくアップロードされたオブジェクトの オプション のバージョン ID。 |
|
|
| URL ダウンロードリンクの有効期限 (ミリ秒)。リンクは CamelAwsS3DownloadLink レスポンスヘッダーに保存されます。 |
31.5.3. S3 コンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| このオブジェクトが格納されるキー。 |
|
|
| このオブジェクトが含まれるバケットの名前。 |
|
|
| RFC 1864 に従って、関連付けられたオブジェクトの 16 進数でエンコードされた 128 ビット MD5 ダイジェスト。このデータは、呼び出し元によって受信されたデータが Amazon S3 によって送信されたデータと同じであることを確認するための整合性チェックとして使用されます。 |
|
|
| Last-Modified ヘッダーの値。Amazon S3 が関連付けられたオブジェクトへの変更を最後に記録した日時を示します。 |
|
|
| 関連する Amazon S3 オブジェクトのバージョン ID (利用可能な場合)。バージョン ID は、オブジェクトのバージョニングが有効になっている Amazon S3 バケットにオブジェクトがアップロードされた場合にのみ、オブジェクトに割り当てられます。 |
|
|
| 関連付けられたオブジェクトに格納されているコンテンツのタイプを示す Content-Type HTTP ヘッダー。このヘッダーの値は、標準の MIME タイプです。 |
|
|
| RFC 1864 に従って、関連付けられたオブジェクト (ヘッダーを含まないコンテンツ) の base64 でエンコードされた 128 ビット MD5 ダイジェスト。このデータは、Amazon S3 が受信したデータが発信者が送信したデータと同じであることを確認するためのメッセージ整合性チェックとして使用されます。 |
|
|
| 関連付けられたオブジェクトのサイズをバイト単位で示す Content-Length HTTP ヘッダー。 |
|
|
| オブジェクトに適用されたコンテンツエンコーディングと、Content-Type フィールドによって参照されるメディアタイプを取得するために適用する必要があるデコードメカニズムを指定する、オプション の Content-Encoding HTTP ヘッダー。 |
|
|
| オプション の Content-Disposition HTTP ヘッダー。保存するオブジェクトの推奨ファイル名などの表示情報を指定します。 |
|
|
| ユーザーが HTTP 要求/応答チェーンに沿ってキャッシュ動作を指定できるようにする、オプション の Cache-Control HTTP ヘッダー。 |
|
| String | Camel 2.16: AWS が管理するキーを使用してオブジェクトを暗号化するときに、サーバー側の暗号化アルゴリズムを設定します。 |
31.5.4. S3 プロデューサーの操作 リンクのコピーリンクがクリップボードにコピーされました!
Camel-AWS s3 コンポーネントは、プロデューサー側で次の操作を提供します。
- copyObject
- deleteObject
- listBuckets
- deleteBucket
- downloadLink
- listObjects
31.5.5. 高度な AmazonS3 設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel アプリケーションがファイアウォールの背後で実行されている場合、または AmazonS3 インスタンス設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
Camel aws-s3 コンポーネント設定で参照します。
from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
from("aws-s3://MyBucket?amazonS3Client=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
31.5.6. S3 コンポーネントで KMS を使用する リンクのコピーリンクがクリップボードにコピーされました!
AWS インフラストラクチャーを使用して AWS KMS を使用してデータを暗号化/復号化するには、次の例のように 2.21.x で導入されたオプションを使用できます。
from("file:tmp/test?fileName=test.txt")
.setHeader(S3Constants.KEY, constant("testFile"))
.to("aws-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
from("file:tmp/test?fileName=test.txt")
.setHeader(S3Constants.KEY, constant("testFile"))
.to("aws-s3://mybucket?amazonS3Client=#client&useAwsKMS=true&awsKMSKeyId=3f0637ad-296a-3dfe-a796-e60654fb128c");
このようにして、KMS キー 3f0637ad-296a-3dfe-a796-e60654fb128c を使用してファイル test.txt を暗号化するよう S3 に依頼します。このファイルのダウンロードを要求すると、ダウンロードの直前に復号化が行われます。
31.5.7. s3 コンポーネントで useIAMCredentials を使用する リンクのコピーリンクがクリップボードにコピーされました!
AWS IAM クレデンシャルを使用するには、Camel アプリケーションを起動する EC2 に、効果的に実行するためにアタッチされた適切なポリシーを含む IAM ロールが関連付けられていることを最初に確認する必要があります。この機能は、リモートインスタンスでのみ true に設定する必要があることに注意してください。さらに明確にするために、IAM は AWS 固有のコンポーネントであるため、静的認証情報をローカルで使用する必要がありますが、AWS 環境は管理が容易になるはずです。これを実装して理解したら、AWS 環境のクエリーパラメーター useIAMCredentials を true に設定できます。これをローカル環境とリモート環境に基づいて効果的にオンとオフを切り替えるには、システム環境変数でこのクエリーパラメーターを有効にすることを検討できます。たとえば、"isRemote" というシステム環境変数が true に設定されている場合、コードで "useIAMCredentials" クエリーパラメーターを "true" に設定できます (これを行うには他にも多くの方法があり、これは単純な例として機能するはずです)。静的認証情報の必要性が完全になくなるわけではありませんが、AWS 環境で IAM 認証情報を使用すると、リモート環境で更新する必要がなくなり、セキュリティーが大幅に向上します (IAM 認証情報は 6 時間ごとに自動的に更新され、ポリシーが更新されると更新されます)。更新しました)。これは AWS が認証情報を管理するために推奨する方法であるため、できるだけ頻繁に使用する必要があります。
31.6. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.8 以降) に置き換える必要があります。
31.7. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第32章 AWS SimpleDB コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.9 以降で利用可能
sdb コンポーネントは、Amazon の SDB サービスとの間でのデータの保存と取得をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon S3 を使用するためにサインアップしている必要がある。詳細については、Amazon SDB を参照してください。
32.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-sdb://domainName[?options]
aws-sdb://domainName[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
32.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS SimpleDB コンポーネントにはオプションがありません。
AWS SimpleDB エンドポイントは、URI 構文を使用して設定されます。
aws-sdb:domainName
aws-sdb:domainName
パスおよびクエリーパラメーターを使用します。
32.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| domainName | 必須 現在使用しているドメインの名前。 | String |
32.2.2. クエリーパラメーター (10 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| accessKey (producer) | Amazon AWS Access Key | String | |
| amazonSDBClient (producer) | AmazonSimpleDB をクライアントとして使用するには | AmazonSimpleDB | |
| consistentRead (producer) | データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 | false | boolean |
| maxNumberOfDomains (producer) | 返されるドメイン名の最大数。範囲は 1 から 100 です。 | Integer | |
| operation (producer) | 実行する操作 | PutAttributes | SdbOperations |
| proxyHost (producer) | DDB クライアントをインスタンス化する際にプロキシーホストを定義します。 | String | |
| proxyPort (producer) | SQS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| region (producer) | DDB クライアントが機能する必要があるリージョン。 | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
32.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-sdb.enabled | aws-sdb コンポーネントを有効にする | true | Boolean |
| camel.component.aws-sdb.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
必須の SDB コンポーネントオプション
Amazon の SDB にアクセスするには、レジストリーに amazonSDBClient を指定するか、accessKey と secretKey を指定する必要があります。
32.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
32.4.1. SDB プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 作用する属性のリスト。 |
|
|
| 取得する属性の名前。 |
|
|
| データの読み取り時に強力な整合性を適用するべきかどうかを決定します。 |
|
|
| バッチで削除操作を実行するアイテムのリスト。 |
|
|
| 現在使用しているドメインの名前。 |
|
|
| このアイテムの一意のキー |
|
|
| 返されるドメイン名の最大数。範囲は 1 * から 100 です。 |
|
|
| ドメイン/項目名の次のリストの開始位置を指定する文字列。 |
|
|
| URI オプションからの操作をオーバーライドします。 |
|
|
| アイテムに入れる属性のリスト。 |
|
|
| ドメインに入れるアイテムのリスト。 |
|
|
| ドメインのクエリーに使用される式。 |
|
|
| 指定された場合、指定された属性が更新/削除されるかどうかを決定する更新条件。 |
32.4.2. DomainMetadata 操作中に設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| メタデータが計算された日時 (エポック (UNIX) 秒単位)。 |
|
|
| ドメイン内のすべてのアイテムの数。 |
|
|
| ドメイン内の一意の属性名の数。 |
|
|
| ドメイン内のすべての属性の名前と値のペアの数。 |
|
|
| ドメイン内のすべての一意の属性名の合計サイズ (バイト単位)。 |
|
|
| ドメイン内のすべての属性値の合計サイズ (バイト単位)。 |
|
|
| ドメイン内のすべての項目名の合計サイズ (バイト単位)。 |
32.4.3. GetAttributes 操作中に設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 操作によって返される属性の一覧。 |
32.4.4. ListDomains 操作中に設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 式に一致するドメイン名のリスト。 |
|
|
| 指定された MaxNumberOfDomains よりも多くのドメインがまだ利用可能であることを示す不透明なトークン。 |
32.4.5. Select 操作中に設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| select 式に一致するアイテムのリスト。 |
|
|
| MaxNumberOfItems を超えるアイテムが一致したか、応答サイズが 1 メガバイトを超えたか、または実行時間が 5 秒を超えたかを示す不透明なトークン。 |
32.4.6. 高度な AmazonSimpleDB 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSimpleDB インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
from("direct:start")
.to("aws-sdb://domainName?amazonSDBClient=#client");
#client は、レジストリー内の AmazonSimpleDB を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
32.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.8.4 以降) に置き換える必要があります。
32.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第33章 AWS シンプル電子メールサービスコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.9 以降で利用可能
ses コンポーネントは、Amazon の SES サービスを使用したメールの送信をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon SES を使用するためにサインアップしている必要がある。詳細については、Amazon SES を参照してください。
33.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-ses://from[?options]
aws-ses://from[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
33.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS Simple Email Service コンポーネントは、以下に示す 5個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS SES のデフォルト設定 | SesConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | SES クライアントが機能する必要があるリージョン。 | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Simple Email Service エンドポイントは、URI 構文を使用して設定されます。
aws-ses:from
aws-ses:from
パスおよびクエリーパラメーターを使用します。
33.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| from | 必須 送信者の電子メールアドレス。 | String |
33.2.2. クエリーパラメーター (11 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonSESClient (producer) | AmazonSimpleEmailService をクライアントとして使用するには | AmazonSimpleEmail Service | |
| proxyHost (producer) | SNS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| proxyPort (producer) | SES クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| region (producer) | SES クライアントが機能する必要があるリージョン。 | String | |
| replyToAddresses (producer) | メッセージの返信先電子メールアドレスのリスト。CamelAwsSesReplyToAddresses ヘッダーを使用してオーバーライドします。 | List | |
| returnPath (producer) | バウンス通知の転送先の電子メールアドレス。CamelAwsSesReturnPath ヘッダーを使用してオーバーライドします。 | String | |
| subject (producer) | メッセージヘッダー 'CamelAwsSesSubject' が存在しない場合に使用されるサブジェクト。 | String | |
| to (producer) | 宛先メールアドレスのリスト。CamelAwsSesTo ヘッダーでオーバーライドできます。 | List | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
33.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 16 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-ses.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ses.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-ses.configuration.amazon-s-e-s-client | AmazonSimpleEmailService をクライアントとして使用するには | AmazonSimpleEmail Service | |
| camel.component.aws-ses.configuration.from | 送信者の電子メールアドレス。 | String | |
| camel.component.aws-ses.configuration.proxy-host | SNS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| camel.component.aws-ses.configuration.proxy-port | SES クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| camel.component.aws-ses.configuration.region | SES クライアントが機能する必要があるリージョン。 | String | |
| camel.component.aws-ses.configuration.reply-to-addresses | メッセージの返信先電子メールアドレスのリスト。CamelAwsSesReplyToAddresses ヘッダーを使用してオーバーライドします。 | List | |
| camel.component.aws-ses.configuration.return-path | バウンス通知の転送先の電子メールアドレス。CamelAwsSesReturnPath ヘッダーを使用してオーバーライドします。 | String | |
| camel.component.aws-ses.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-ses.configuration.subject | メッセージヘッダー 'CamelAwsSesSubject' が存在しない場合に使用されるサブジェクト。 | String | |
| camel.component.aws-ses.configuration.to | 宛先メールアドレスのリスト。CamelAwsSesTo ヘッダーでオーバーライドできます。 | List | |
| camel.component.aws-ses.enabled | aws-ses コンポーネントを有効にする | true | Boolean |
| camel.component.aws-ses.region | SES クライアントが機能する必要があるリージョン。 | String | |
| camel.component.aws-ses.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-ses.secret-key | Amazon AWS Secret Key | String |
必須の SES コンポーネントオプション
Amazon の SES にアクセスするには、レジストリーに amazonSESClient を指定するか、accessKey と secretKey を指定する必要があります。
33.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
33.4.1. SES プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 送信者の電子メールアドレス。 |
|
|
| このメールの宛先。 |
|
|
| メッセージの件名。 |
|
|
| メッセージの返信先電子メールアドレス。 |
|
|
| バウンス通知の転送先の電子メールアドレス。 |
|
|
| Camel 2.12.3 以降 メールの内容が HTML の場合に表示するフラグ。 |
33.4.2. SES プロデューサによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| Amazon SES メッセージ ID。 |
33.4.3. 高度な AmazonSimpleEmailService 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSimpleEmailService インスタンスの設定をさらに制御する必要がある場合は、独自のインスタンスを作成して URI から参照できます。
from("direct:start")
.to("aws-ses://example@example.com?amazonSESClient=#client");
from("direct:start")
.to("aws-ses://example@example.com?amazonSESClient=#client");
#client は、 レジストリー内の AmazonSimpleEmailService を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
33.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.8.4 以降) に置き換える必要があります。
33.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第34章 AWS シンプル通知システムコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.8 以降で利用可能
SNS コンポーネントを使用すると、メッセージを Amazon Simple Notification Topic に送信できます。Amazon API の実装は AWS SDK によって提供されます。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon Kinesis を使用するためにサインアップしている必要がある。詳細については、Amazon SNS を参照してください。
34.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-sns://topicNameOrArn[?options]
aws-sns://topicNameOrArn[?options]
トピックがまだ存在しない場合は作成されます。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
34.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS Simple Notification System コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS SNS のデフォルト設定 | SnsConfiguration | |
| accessKey (producer) | Amazon AWS Access Key | String | |
| secretKey (producer) | Amazon AWS Secret Key | String | |
| region (producer) | SNS クライアントが機能する必要があるリージョン | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Simple Notification System エンドポイントは、URI 構文を使用して設定されます。
aws-sns:topicNameOrArn
aws-sns:topicNameOrArn
パスおよびクエリーパラメーターを使用します。
34.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| topicNameOrArn | 必須 トピック名または ARN | String |
34.2.2. クエリーパラメーター (11 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonSNSClient (producer) | AmazonSNS をクライアントとして使用します。 | AmazonSNS | |
| headerFilterStrategy (producer) | カスタムの HeaderFilterStrategy を使用して、ヘッダーから Camel または Camel からヘッダーにマッピングします。 | HeaderFilterStrategy | |
| messageStructure (producer) | json などの使用するメッセージ構造。 | String | |
| policy (producer) | このキューのポリシー | String | |
| proxyHost (producer) | SNS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| proxyPort (producer) | SNS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| region (producer) | SNS クライアントが機能する必要があるリージョン | String | |
| subject (producer) | メッセージヘッダー 'CamelAwsSnsSubject' が存在しない場合に使用されるサブジェクト。 | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
34.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 16 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-sns.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-sns.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-sns.configuration.amazon-s-n-s-client | AmazonSNS をクライアントとして使用します。 | AmazonSNS | |
| camel.component.aws-sns.configuration.message-structure | json などの使用するメッセージ構造。 | String | |
| camel.component.aws-sns.configuration.policy | このキューのポリシー | String | |
| camel.component.aws-sns.configuration.proxy-host | SNS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| camel.component.aws-sns.configuration.proxy-port | SNS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| camel.component.aws-sns.configuration.region | SNS クライアントが機能する必要があるリージョン | String | |
| camel.component.aws-sns.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-sns.configuration.subject | メッセージヘッダー 'CamelAwsSnsSubject' が存在しない場合に使用されるサブジェクト。 | String | |
| camel.component.aws-sns.configuration.topic-arn | 作成されたトピックに割り当てられた Amazon リソースネーム (ARN)。 | String | |
| camel.component.aws-sns.configuration.topic-name | トピックの名前。 | String | |
| camel.component.aws-sns.enabled | aws-sns コンポーネントを有効にする | true | Boolean |
| camel.component.aws-sns.region | SNS クライアントが機能する必要があるリージョン | String | |
| camel.component.aws-sns.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-sns.secret-key | Amazon AWS Secret Key | String |
必要な SNS コンポーネントオプション
Amazon の SNS にアクセスするには、レジストリーに amazonDDBClient を指定するか、accessKey と secretKey を指定する必要があります。
34.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
34.4.1. SNS プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
|
Amazon SNS メッセージの件名。設定されていない場合は、 |
34.4.2. SNS プロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| Amazon SNS メッセージ ID。 |
34.4.3. 高度な AmazonSNS 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSNS インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#client");
from("direct:start")
.to("aws-sns://MyTopic?amazonSNSClient=#client");
#client は、レジストリー内の AmazonSNS を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
34.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.8 以降) に置き換える必要があります。
34.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第35章 AWS シンプルキューサービスコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.6 以降で利用可能
sqs コンポーネントは、Amazon の SQS サービス へのメッセージの送受信をサポートしています。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon SQS を使用するためにサインアップしている必要がある。詳細については、Amazon SQS を参照してください。
35.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-sqs://queueNameOrArn[?options]
aws-sqs://queueNameOrArn[?options]
キューがまだ存在しない場合は作成されます。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
35.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS Simple Queue Service コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS SQS のデフォルト設定。 | SqsConfiguration | |
| accessKey (common) | Amazon AWS Access Key | String | |
| secretKey (common) | Amazon AWS Secret Key | String | |
| region (common) | サービス URL を作成するために queueOwnerAWSAccountId で使用できるキューリージョンを指定します。 | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Simple Queue Service エンドポイントは、URI 構文を使用して設定されます。
aws-sqs:queueNameOrArn
aws-sqs:queueNameOrArn
パスおよびクエリーパラメーターを使用します。
35.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| queueNameOrArn | 必須 キュー名または ARN | 文字列 |
35.2.2. クエリーパラメーター (48 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonAWSHost (common) | Amazon AWS クラウドのホスト名。 | amazonaws.com | String |
| amazonSQSClient (common) | AmazonSQS をクライアントとして使用します。 | AmazonSQS | |
| headerFilterStrategy (common) | カスタムの HeaderFilterStrategy を使用して、ヘッダーから Camel または Camel からヘッダーにマッピングします。 | HeaderFilterStrategy | |
| queueOwnerAWSAccountId (common) | 異なるアカウント所有者でキューを接続する必要がある場合は、キュー所有者の aws アカウント ID を指定します。 | String | |
| region (common) | サービス URL を作成するために queueOwnerAWSAccountId で使用できるキューリージョンを指定します。 | 文字列 | |
| attributeNames (consumer) | 消費時に受け取る属性名のリスト。複数の値はコンマで区切ることができます。 | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| concurrentConsumers (consumer) | 複数のスレッドを使用して sqs キューをポーリングし、スループットを向上させることができます。 | 1 | int |
| defaultVisibilityTimeout (consumer) | デフォルトの表示タイムアウト (秒単位)。 | Integer | |
| deleteAfterRead (consumer) | メッセージが読まれた後、SQS からメッセージを削除します。 | true | boolean |
| deleteIfFiltered (consumer) | エクスチェンジがフィルターを通過できなかった場合に、DeleteMessage を SQS キューに送信するかどうか。false でエクスチェンジがルートのアップストリームの Camel フィルターを通過しない場合は、DeleteMessage を送信しないでください。 | true | boolean |
| extendMessageVisibility (consumer) | 有効にすると、スケジュールされたバックグラウンドタスクにより、SQS でのメッセージの可視性が拡張され続けます。これは、メッセージの処理に時間がかかる場合に必要です。true に設定した場合は、defaultVisibilityTimeout を設定する必要があります。詳細については、Amazon ドキュメントを参照してください。 | false | boolean |
| maxMessagesPerPoll (consumer) | 各ポーリングのポーリング制限としてメッセージの最大数を取得します。デフォルトは無制限ですが、0 または負の数を使用して無制限として無効にします。 | int | |
| messageAttributeNames (consumer) | 消費時に受け取るメッセージ属性名のリスト。複数の値はコンマで区切ることができます。 | String | |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| visibilityTimeout (consumer) | 受信したメッセージが、com.amazonaws.services.sqs.model.SetQueueAttributesRequest で設定する ReceiveMessage リクエストによって取得された後、後続の取得リクエストから非表示になる期間 (秒単位)。これは、defaultVisibilityTimeout とは異なる場合にのみ意味があります。キューの可視性タイムアウト属性を永続的に変更します。 | Integer | |
| waitTimeSeconds (consumer) | メッセージがキューに入れられて応答に含まれるまで、ReceiveMessage アクション呼び出しが待機する時間 (0 から 20) です。 | Integer | |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| delaySeconds (producer) | 数秒間メッセージの送信を遅延します。 | Integer | |
| messageDeduplicationId Strategy (producer) | FIFO キューの場合のみ。メッセージに messageDeduplicationId を設定するストラテジー。useExchangeId または useContentBasedDeduplication のいずれかをオプションとして使用できます。useContentBasedDeduplication オプションでは、メッセージに messageDeduplicationId が設定されません。 | useExchangeId | MessageDeduplicationId Strategy |
| messageGroupIdStrategy (producer) | FIFO キューの場合のみ。メッセージに messageGroupId を設定するストラテジー。useConstant、useExchangeId、usePropertyValue のいずれかをオプションとして使用できます。usePropertyValue オプションでは、CamelAwsMessageGroupId プロパティーの値が使用されます。 | MessageGroupIdStrategy | |
| delayQueue (advanced) | delaySeconds オプションをキューまたは単一のメッセージに適用するかどうかを定義します。 | false | boolean |
| queueUrl (advanced) | queueUrl を明示的に定義します。queueUrl に影響を与えるその他のパラメーターはすべて無視されます。このパラメーターは、テストのために SQS の仮実装 (モック) に接続すること目的としています。 | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
| proxyHost (proxy) | SQS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| proxyPort (proxy) | SQS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| maximumMessageSize (キュー) | このキューの SQS メッセージに含めることができる maximumMessageSize (バイト単位)。 | Integer | |
| messageRetentionPeriod (queue) | このキューの SQS によってメッセージが保持される messageRetentionPeriod (秒単位)。 | Integer | |
| ポリシー (キュー) | このキューのポリシー | String | |
| receiveMessageWaitTime Seconds (キュー) | 要求で WaitTimeSeconds を指定しない場合は、キュー属性 ReceiveMessageWaitTimeSeconds を使用して待機時間を決定します。 | Integer | |
| redrivePolicy (キュー) | DeadLetter キューにメッセージを送信するポリシーを指定します。Amazon ドキュメントで詳細を参照してください。 | String | |
| accessKey (security) | Amazon AWS Access Key | String | |
| secretKey (security) | Amazon AWS Secret Key | String |
35.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 31 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-sqs.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-sqs.configuration.access-key | Amazon AWS Access Key | String | |
| camel.component.aws-sqs.configuration.amazon-a-w-s-host | Amazon AWS クラウドのホスト名。 | amazonaws.com | String |
| camel.component.aws-sqs.configuration.amazon-s-q-s-client | AmazonSQS をクライアントとして使用します。 | AmazonSQS | |
| camel.component.aws-sqs.configuration.attribute-names | 消費時に受け取る属性名のリスト。複数の値はコンマで区切ることができます。 | String | |
| camel.component.aws-sqs.configuration.concurrent-consumers | 複数のスレッドを使用して sqs キューをポーリングし、スループットを向上させることができます。 | 1 | Integer |
| camel.component.aws-sqs.configuration.default-visibility-timeout | デフォルトの表示タイムアウト (秒単位)。 | Integer | |
| camel.component.aws-sqs.configuration.delay-queue | delaySeconds オプションをキューまたは単一のメッセージに適用するかどうかを定義します。 | false | Boolean |
| camel.component.aws-sqs.configuration.delay-seconds | 数秒間メッセージの送信を遅延します。 | Integer | |
| camel.component.aws-sqs.configuration.delete-after-read | メッセージが読まれた後、SQS からメッセージを削除します。 | true | Boolean |
| camel.component.aws-sqs.configuration.delete-if-filtered | エクスチェンジがフィルターを通過できなかった場合に、DeleteMessage を SQS キューに送信するかどうか。false でエクスチェンジがルートのアップストリームの Camel フィルターを通過しない場合は、DeleteMessage を送信しないでください。 | true | Boolean |
| camel.component.aws-sqs.configuration.extend-message-visibility | 有効にすると、スケジュールされたバックグラウンドタスクにより、SQS でのメッセージの可視性が拡張され続けます。これは、メッセージの処理に時間がかかる場合に必要です。true に設定した場合は、defaultVisibilityTimeout を設定する必要があります。詳細については、Amazon ドキュメントを参照してください。 | false | Boolean |
| camel.component.aws-sqs.configuration.maximum-message-size | このキューの SQS メッセージに含めることができる maximumMessageSize (バイト単位)。 | Integer | |
| camel.component.aws-sqs.configuration.message-attribute-names | 消費時に受け取るメッセージ属性名のリスト。複数の値はコンマで区切ることができます。 | String | |
| camel.component.aws-sqs.configuration.message-retention-period | このキューの SQS によってメッセージが保持される messageRetentionPeriod (秒単位)。 | Integer | |
| camel.component.aws-sqs.configuration.policy | このキューのポリシー | String | |
| camel.component.aws-sqs.configuration.proxy-host | SQS クライアントをインスタンス化するときにプロキシーホストを定義します。 | String | |
| camel.component.aws-sqs.configuration.proxy-port | SQS クライアントをインスタンス化するときにプロキシーポートを定義します。 | Integer | |
| camel.component.aws-sqs.configuration.queue-name | キューの名前。キューがまだ存在しない場合は作成されます。 | String | |
| camel.component.aws-sqs.configuration.queue-owner-a-w-s-account-id | 異なるアカウント所有者でキューを接続する必要がある場合は、キュー所有者の aws アカウント ID を指定します。 | String | |
| camel.component.aws-sqs.configuration.queue-url | queueUrl を明示的に定義します。queueUrl に影響を与えるその他のパラメーターはすべて無視されます。このパラメーターは、テストのために SQS の仮実装 (モック) に接続すること目的としています。 | String | |
| camel.component.aws-sqs.configuration.receive-message-wait-time-seconds | 要求で WaitTimeSeconds を指定しない場合は、キュー属性 ReceiveMessageWaitTimeSeconds を使用して待機時間を決定します。 | Integer | |
| camel.component.aws-sqs.configuration.redrive-policy | DeadLetter キューにメッセージを送信するポリシーを指定します。Amazon ドキュメントで詳細を参照してください。 | String | |
| camel.component.aws-sqs.configuration.region | サービス URL を作成するために queueOwnerAWSAccountId で使用できるキューリージョンを指定します。 | String | |
| camel.component.aws-sqs.configuration.secret-key | Amazon AWS Secret Key | String | |
| camel.component.aws-sqs.configuration.visibility-timeout | 受信したメッセージが、com.amazonaws.services.sqs.model.SetQueueAttributesRequest で設定する ReceiveMessage リクエストによって取得された後、後続の取得リクエストから非表示になる期間 (秒単位)。これは、defaultVisibilityTimeout とは異なる場合にのみ意味があります。キューの可視性タイムアウト属性を永続的に変更します。 | Integer | |
| camel.component.aws-sqs.configuration.wait-time-seconds | メッセージがキューに入れられて応答に含まれるまで、ReceiveMessage アクション呼び出しが待機する時間 (0 から 20) です。 | Integer | |
| camel.component.aws-sqs.enabled | aws-sqs コンポーネントを有効にする | true | Boolean |
| camel.component.aws-sqs.region | サービス URL を作成するために queueOwnerAWSAccountId で使用できるキューリージョンを指定します。 | String | |
| camel.component.aws-sqs.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-sqs.secret-key | Amazon AWS Secret Key | String |
必須の SQS コンポーネントオプション
Amazon の SQS にアクセスするには、レジストリーに amazonDDBClient を指定するか、accessKey と secretKey を指定する必要があります。
35.4. バッチコンシューマー リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Batch Consumer を実装します。
これにより、たとえば、このバッチに存在するメッセージの数を知ることができ、たとえば、Aggregator にこの数のメッセージを集約させることができます。
35.5. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
35.5.1. SQS プロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| Amazon SQS メッセージの MD5 チェックサム。 |
|
|
| Amazon SQS メッセージ ID。 |
|
|
| Camel 2.11 以降、Amazon SQS メッセージが他のユーザーに表示される遅延秒数。 |
35.5.2. SQS コンシューマーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| Amazon SQS メッセージの MD5 チェックサム。 |
|
|
| Amazon SQS メッセージ ID。 |
|
|
| Amazon SQS メッセージ受信ハンドル。 |
|
|
| Amazon SQS メッセージ属性。 |
35.5.3. 高度な AmazonSQS 設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel アプリケーションがファイアウォールの背後で実行されている場合、または AmazonSQS インスタンス設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
Camel aws-sqs コンポーネント設定で参照します。
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
35.5.4. SQS キューの作成または更新 リンクのコピーリンクがクリップボードにコピーされました!
SQS コンポーネントでは、エンドポイントが開始されると、チェックが実行され、キューの存在に関する情報が取得されます。SQSConfiguration オプションを使用して QueueAttributeName マッピングを介して作成をカスタマイズできます。
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
from("aws-sqs://MyQueue?amazonSQSClient=#client&delay=5000&maxMessagesPerPoll=5")
.to("mock:result");
この例では、AWS で MyQueue キューがまだ作成されていない場合、SQS 設定のデフォルトパラメーターで作成されます。すでに AWS で稼働している場合は、SQS 設定オプションを使用して既存の AWS 設定をオーバーライドします。
35.5.5. 単一メッセージの DelayQueue VS 遅延 リンクのコピーリンクがクリップボードにコピーされました!
2.23.0 から、コンポーネントに新しいオプション delayQueue が追加されました。オプション delayQueue が true に設定されている場合、SQS キューは DelaySeconds オプションが遅延として指定された DelayQueue になります。DelayQueue の詳細については、AWS SQS のドキュメント を参照してください。考慮すべき重要な情報の 1 つは、次のとおりです。
- 標準キューの場合、キューごとの遅延設定は遡及的ではありません。設定を変更しても、すでにキューにあるメッセージの遅延には影響しません。
- FIFO キューの場合、キューごとの遅延設定は遡及的です。設定を変更すると、すでにキューにあるメッセージの遅延に影響します。
公式ドキュメントに記載されているとおりです。単一のメッセージに遅延を指定する場合は、delayQueue オプションを無視できますが、エンキューされたすべてのメッセージに固定遅延を追加する必要がある場合は、このオプションを true に設定できます。
35.6. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.6 以降) に置き換える必要があります。
35.7. JMS スタイルのセレクター リンクのコピーリンクがクリップボードにコピーされました!
SQS ではセレクターを使用できませんが、キャメルフィルター EIP を使用して適切な visibilityTimeout を設定することで効果的にこれを実現できます。SQS がメッセージをディスパッチするとき、DeleteMessage が受信されない限り、可視性タイムアウトまで待機してから、別のコンシューマーにメッセージをディスパッチしようとします。デフォルトでは、ルートが失敗に終わっていない限り、Camel は常にルートの最後に DeleteMessage を送信します。適切なフィルタリングを実現し、ルートが正常に完了した場合でも DeleteMessage を送信しないようにするには、Filter を使用します。
from("aws-sqs://MyQueue?amazonSQSClient=#client&defaultVisibilityTimeout=5000&deleteIfFiltered=false")
.filter("${header.login} == true")
.to("mock:result");
from("aws-sqs://MyQueue?amazonSQSClient=#client&defaultVisibilityTimeout=5000&deleteIfFiltered=false")
.filter("${header.login} == true")
.to("mock:result");
上記のコードでは、交換に適切なヘッダーがない場合、フィルターを通過せず、SQS キューからも削除されません。5000 ミリ秒後、メッセージは他のコンシューマーに表示されます。
35.8. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- AWS コンポーネント
第36章 AWS Simple Workflow コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.13 以降で利用可能
Simple Workflow コンポーネントは、Amazon の Simple Workflow サービスからのワークフローの管理をサポートします。
前提条件
有効な Amazon Web Services 開発者アカウントを持っていて、Amazon Simple Workflow を使用するためにサインアップしている必要がある。詳細については、Amazon Simple Workflow を参照してください。
36.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
aws-swf://<workflow|activity>[?options]
aws-swf://<workflow|activity>[?options]
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
36.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
AWS Simple Workflow コンポーネントは、以下に示す 5 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (advanced) | AWS SWF のデフォルト設定 | SWFConfiguration | |
| accessKey (common) | Amazon AWS Access Key。 | String | |
| secretKey (common) | Amazon AWS Secret Key。 | String | |
| region (common) | Amazon AWS リージョン。 | String | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
AWS Simple Workflow エンドポイントは、URI 構文を使用して設定されます。
aws-swf:type
aws-swf:type
パスおよびクエリーパラメーターを使用します。
36.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| type | 必要な アクティビティーまたはワークフロー | String |
36.2.2. クエリーパラメーター (30 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| amazonSWClient (common) | 指定された AmazonSimpleWorkflowClient をクライアントとして使用する場合 | AmazonSimpleWorkflow Client | |
| dataConverter (common) | データのシリアル化/逆シリアル化に使用する com.amazonaws.services.simpleworkflow.flow.DataConverter のインスタンス。 | DataConverter | |
| domainName (common) | 使用するワークフロードメイン。 | String | |
| eventName (common) | 使用するワークフローまたはアクティビティーイベント名。 | String | |
| region (common) | Amazon AWS リージョン。 | String | |
| version (common) | 使用するワークフローまたはアクティビティーイベントのバージョン。 | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| clientConfiguration Parameters (advanced) | マップのキー/値を使用して ClientConfiguration を設定する場合。 | Map | |
| startWorkflowOptions Parameters (advanced) | マップのキー/値を使用して StartWorkflowOptions を設定する場合。 | Map | |
| sWClientParameters (advanced) | マップのキー/値を使用して AmazonSimpleWorkflowClient を設定する場合。 | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| activityList (activity) | アクティビティーを使用するリスト名。 | String | |
| activitySchedulingOptions (activity) | アクティビティーのスケジュールオプション | アクティビティーのスケジュールオプション | |
| activityThreadPoolSize (activity) | アクティビティーの作業プール内のスレッドの最大数。 | 100 | int |
| activityTypeExecution Options (activity) | アクティビティー実行オプション | ActivityTypeExecution Options | |
| activityTypeRegistration Options (activity) | アクティビティー登録オプション | ActivityType RegistrationOptions | |
| childPolicy (workflow) | ワークフローを終了するときに子ワークフローで使用するポリシー。 | String | |
| executionStartToClose Timeout (workflow) | 実行開始から終了までのタイムアウトを設定します。 | 3600 | String |
| operation (workflow) | ワークフロー操作 | 開始 | String |
| signalName (workflow) | ワークフローに送信するシグナルの名前。 | String | |
| stateResultType (workflow) | ワークフロー状態が照会されたときの結果のタイプ。 | String | |
| taskStartToCloseTimeout (workflow) | タスクの開始から終了までのタイムアウトを設定します。 | 600 | String |
| terminationDetails (workflow) | ワークフローを終了するための詳細。 | String | |
| terminationReason (workflow) | ワークフローを終了する理由。 | String | |
| workflowList (workflow) | ワークフローを使用するリスト名。 | String | |
| workflowTypeRegistration Options (workflow) | ワークフロー登録オプション | WorkflowType RegistrationOptions | |
| accessKey (security) | Amazon AWS Access Key。 | String | |
| secretKey (security) | Amazon AWS Secret Key。 | String |
36.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 32 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.aws-swf.access-key | Amazon AWS Access Key。 | String | |
| camel.component.aws-swf.configuration.access-key | Amazon AWS Access Key。 | String | |
| camel.component.aws-swf.configuration.activity-list | アクティビティーを使用するリスト名。 | String | |
| camel.component.aws-swf.configuration.activity-scheduling-options | アクティビティーのスケジュールオプション | アクティビティーのスケジュールオプション | |
| camel.component.aws-swf.configuration.activity-thread-pool-size | アクティビティーの作業プール内のスレッドの最大数。 | 100 | Integer |
| camel.component.aws-swf.configuration.activity-type-execution-options | アクティビティー実行オプション | ActivityTypeExecution Options | |
| camel.component.aws-swf.configuration.activity-type-registration-options | アクティビティー登録オプション | ActivityType RegistrationOptions | |
| camel.component.aws-swf.configuration.amazon-s-w-client | 指定された AmazonSimpleWorkflowClient をクライアントとして使用する場合 | AmazonSimpleWorkflow Client | |
| camel.component.aws-swf.configuration.child-policy | ワークフローを終了するときに子ワークフローで使用するポリシー。 | String | |
| camel.component.aws-swf.configuration.client-configuration-parameters | マップのキー/値を使用して ClientConfiguration を設定する場合。 | Map | |
| camel.component.aws-swf.configuration.data-converter | データのシリアル化/逆シリアル化に使用する com.amazonaws.services.simpleworkflow.flow.DataConverter のインスタンス。 | DataConverter | |
| camel.component.aws-swf.configuration.domain-name | 使用するワークフロードメイン。 | String | |
| camel.component.aws-swf.configuration.event-name | 使用するワークフローまたはアクティビティーイベント名。 | String | |
| camel.component.aws-swf.configuration.execution-start-to-close-timeout | 実行開始から終了までのタイムアウトを設定します。 | 3600 | String |
| camel.component.aws-swf.configuration.operation | ワークフロー操作 | 開始 | String |
| camel.component.aws-swf.configuration.region | Amazon AWS リージョン。 | String | |
| camel.component.aws-swf.configuration.s-w-client-parameters | マップのキー/値を使用して AmazonSimpleWorkflowClient を設定する場合。 | Map | |
| camel.component.aws-swf.configuration.secret-key | Amazon AWS Secret Key。 | String | |
| camel.component.aws-swf.configuration.signal-name | ワークフローに送信するシグナルの名前。 | String | |
| camel.component.aws-swf.configuration.start-workflow-options-parameters | マップのキー/値を使用して StartWorkflowOptions を設定する場合。 | Map | |
| camel.component.aws-swf.configuration.state-result-type | ワークフロー状態が照会されたときの結果のタイプ。 | String | |
| camel.component.aws-swf.configuration.task-start-to-close-timeout | タスクの開始から終了までのタイムアウトを設定します。 | 600 | String |
| camel.component.aws-swf.configuration.termination-details | ワークフローを終了するための詳細。 | String | |
| camel.component.aws-swf.configuration.termination-reason | ワークフローを終了する理由。 | String | |
| camel.component.aws-swf.configuration.type | アクティビティーまたはワークフロー | String | |
| camel.component.aws-swf.configuration.version | 使用するワークフローまたはアクティビティーイベントのバージョン。 | String | |
| camel.component.aws-swf.configuration.workflow-list | ワークフローを使用するリスト名。 | String | |
| camel.component.aws-swf.configuration.workflow-type-registration-options | ワークフロー登録オプション | WorkflowType RegistrationOptions | |
| camel.component.aws-swf.enabled | aws-swf コンポーネントを有効にする | true | Boolean |
| camel.component.aws-swf.region | Amazon AWS リージョン。 | String | |
| camel.component.aws-swf.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
| camel.component.aws-swf.secret-key | Amazon AWS Secret Key。 | String |
必要な SWF コンポーネントオプション
Amazon の Simple Workflow Service にアクセスするには、レジストリーに amazonSWClient を指定するか、accessKey と secretKey を指定する必要があります。
36.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
36.4.1. SWF ワークフロープロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
ワークフロープロデューサーを使用すると、ワークフローと対話できます。新しいワークフローの実行を開始したり、その状態をクエリーしたり、実行中のワークフローにシグナルを送信したり、ワークフローを終了してキャンセルしたりできます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
|
ワークフローで実行する操作。サポートされている操作は次のとおりです。 |
|
|
| 使用するワークフロー ID。 |
|
|
| 使用するワークフロー実行 ID。 |
|
|
| ワークフロー状態が照会されたときの結果のタイプ。 |
|
|
| 使用するワークフローまたはアクティビティーイベント名。 |
|
|
| 使用するワークフローまたはアクティビティーイベントのバージョン。 |
|
|
| ワークフローを終了する理由。 |
|
|
| ワークフローを終了するための詳細。 |
|
|
| ワークフローを終了するときに子ワークフローで使用するポリシー。 |
36.4.2. SWF ワークフロープロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 使用された、または新しく生成されたワークフロー ID。 |
|
|
| 使用または生成されたワークフロー実行 ID。 |
36.4.3. SWF ワークフローコンシューマーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
ワークフローコンシューマーは、ワークフローロジックを表します。開始されると、ワークフロー決定タスクのポーリングが開始され、それらが処理されます。決定タスクの処理に加えて、ワークフローコンシューマールートはシグナル (ワークフロープロデューサーから送信) または状態クエリーも受信します。ワークフローコンシューマーの主な目的は、アクティビティープロデューサーを使用して実行するアクティビティータスクをスケジュールすることです。実際、アクティビティータスクは、ワークフローコンシューマーによって開始されたスレッドからのみスケジュールできます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 現在のイベントのタイプを示します: CamelSWFActionExecute、CamelSWFSignalReceivedAction、または CamelSWFGetStateAction。 |
|
|
| 現在の決定タスクがリプレイかどうかを示します。 |
|
|
| この決定タスクの開始イベントの時刻。 |
36.4.4. SWF アクティビティープロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
アクティビティープロデューサーを使用すると、アクティビティータスクをスケジュールできます。アクティビティープロデューサーは、ワークフローコンシューマーによって開始されたスレッドからのみ使用できます。つまり、ワークフローコンシューマーによって開始された同期エクスチェンジを処理できます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| スケジュールするアクティビティー名。 |
|
|
| スケジュールするアクティビティーバージョン。 |
36.4.5. SWF アクティビティーコンシューマーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| 手動で完了したタスクの完了を報告するために必要なタスクトークン。 |
36.4.6. 高度な amazonSWClient 設定 リンクのコピーリンクがクリップボードにコピーされました!
AmazonSimpleWorkflowClient インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
#client は、レジストリー内の AmazonSimpleWorkflowClient を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
36.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は、Camel の実際のバージョン (2.13 以降) に置き換える必要があります。
36.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
AWS コンポーネント
第37章 AWS XRay コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.21 以降で利用可能
camel-aws-xray コンポーネントは、AWS XRay を使用して受信および送信 Camel メッセージをトレースおよびタイミングするために使用されます。
イベント (サブセグメント) は、Camel との間で送受信される着信および発信メッセージに対してキャプチャーされます。
37.1. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
AWS XRay サポートを Camel に含めるには、Camel 関連の AWS XRay 関連クラスを含むアーカイブをプロジェクトに追加する必要があります。それに加えて、AWS XRay ライブラリーも利用できる必要があります。
AWS XRay と Camel の両方を含めるには、依存関係で次の Maven インポートを使用します。
37.2. 設定 リンクのコピーリンクがクリップボードにコピーされました!
AWS XRay トレーサーの設定プロパティーは次のとおりです。
| オプション | デフォルト | 説明 |
|---|---|---|
| addExcludePatterns |
| パターンに一致する Camel メッセージのトレースを無効にする除外パターンを設定します。コンテンツは Set<String> で、キーは routeId に一致するパターンです。このパターンは Intercept のルールを使用します。 |
| setTracingStrategy | NoopTracingStrategy |
|
現在、Camel アプリケーションの分散トレースを提供するように AWS XRay トレーサーを設定できる方法は 1 つだけです。
37.2.1. Explicit リンクのコピーリンクがクリップボードにコピーされました!
AWS XRay Tracer に関連付けられた特定の依存関係とともに、camel-aws-xray コンポーネントを POM に含めます。
AWS XRay サポートを明示的に設定するには、XRayTracer をインスタンス化し、camel コンテキストを初期化します。オプションで Tracer を指定することも、代わりに Registry または ServiceLoader を使用して暗黙的に検出することもできます。
XRayTracer xrayTracer = new XRayTracer(); // By default it uses a NoopTracingStrategy, but you can override it with a specific InterceptStrategy implementation. xrayTracer.setTracingStrategy(...); // And then initialize the context xrayTracer.init(camelContext);
XRayTracer xrayTracer = new XRayTracer();
// By default it uses a NoopTracingStrategy, but you can override it with a specific InterceptStrategy implementation.
xrayTracer.setTracingStrategy(...);
// And then initialize the context
xrayTracer.init(camelContext);
XML で XRayTracer を使用するには、AWS XRay トレーサー Bean を定義するだけです。Camel はそれを自動的に検出して使用します。
<bean id="tracingStrategy" class="..."/>
<bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer" />
<property name="tracer" ref="tracingStrategy"/>
</bean>
<bean id="tracingStrategy" class="..."/>
<bean id="aws-xray-tracer" class="org.apache.camel.component.aws.xray.XRayTracer" />
<property name="tracer" ref="tracingStrategy"/>
</bean>
デフォルトの NoopTracingStrategy の場合、エクスチェンジの作成と削除のみが追跡されますが、特定の Bean または EIP パターンの呼び出しは追跡されません。
37.2.2. 包括的なルート実行の追跡 リンクのコピーリンクがクリップボードにコピーされました!
複数のルート間でのエクスチェンジの実行を追跡するために、エクスチェンジの作成時に一意のトレース ID が生成され、対応する値がまだ使用できない場合はヘッダーに格納されます。このトレース ID は、処理された交換の一貫したビューを維持するために、新しいエクスチェンジにコピーされます。
AWS XRay トレースはスレッドローカルベースで機能するため、現在のサブ/セグメントを新しいスレッドにコピーし、AWS XRay のドキュメント で説明されているように設定する必要があります。したがって、Camel AWS XRay コンポーネントは、渡された AWS XRay Entity を新しいスレッドに設定するためにコンポーネントが使用する追加のヘッダーフィールドを提供し、実行されたどのルートとも無関係に見える新しいセグメントを公開するのではなく、ルートへの追跡データを保持します。
コンポーネントは、エクスチェンジのヘッダーにある次の定数を使用します。
| ヘッダー | 説明 |
|---|---|
| Camel-AWS-XRay-Trace-ID |
呼び出されたルートの包括的なビューを提供する AWS XRay |
| Camel-AWS-XRay-Trace-Entity |
新しいスレッドにコピーされる実際の AWS XRay |
AWS XRay Entity (つまり、Segment と Subsegment) はシリアル化できないため、他の JVM プロセスに渡すべきではないことに注意してください。
37.3. 例 リンクのコピーリンクがクリップボードにコピーされました!
このプロジェクトに付随するテスト内で、AWS XRay トレースを設定する方法を示す例を見つけることができます。
第38章 Windows Azure サービスの Camel コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Windows Azure サービス の Camel コンポーネントは、Camel から Azure サービスへの接続を提供します。
| Azure Service | Camel コンポーネント | Camel バージョン | コンポーネントの説明 |
|---|---|---|---|
| 2.9.0 | BLOB の保存と取得をサポート | ||
| 2.9.0 | キューでのメッセージの保存と取得をサポート |
第39章 Azure Storage Blob Service コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.19 以降で利用可能
Azure Blob コンポーネントは、Azure Storage Blob サービスとの間での BLOB の保存と取得をサポートしています。
前提条件
有効な Windows Azure ストレージアカウントが必要です。詳細については、Azure ドキュメントポータル を参照してください。
39.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
azure-blob://accountName/containerName[/blobName][?options]
azure-blob://accountName/containerName[/blobName][?options]
ほとんどの場合、blobName が必要であり、Blob がまだ存在しない場合は作成されます。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
たとえば、camelazure ストレージアカウントの container1 にあるパブリックブロック blob blockBlob から BLOB コンテンツをダウンロードするには、次のスニペットを使用します。
from("azure-blob:/camelazure/container1/blockBlob").
to("file://blobdirectory");
from("azure-blob:/camelazure/container1/blockBlob").
to("file://blobdirectory");
39.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
Azure Storage Blob Service コンポーネントにはオプションがありません。
Azure Storage Blob Service エンドポイントは、URI 構文を使用して設定されます。
azure-blob:containerOrBlobUri
azure-blob:containerOrBlobUri
パスおよびクエリーパラメーターを使用します。
39.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| containerOrBlobUri | 必須 コンテナーまたは BLOB コンパクト Uri | String |
39.2.2. クエリーパラメーター (19 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| azureBlobClient (common) | blob サービスクライアント | CloudBlob | |
| blobOffset (common) | アップロードまたはダウンロード操作の BLOB オフセットを設定します。デフォルトは 0 です。 | 0 | Long |
| blobType (common) | blob タイプを設定します。デフォルトは blockblob です | blockblob | BlobType |
| closeStreamAfterRead (common) | 読み取り後にストリームを閉じるか、開いたままにします。デフォルトは true です。 | true | boolean |
| credentials (common) | ストレージ認証情報を設定します。ほとんどの場合に必要です | StorageCredentials | |
| dataLength (common) | ダウンロード操作またはページ blob アップロード操作のデータ長を設定する | Long | |
| fileDir (common) | ダウンロードした blob が保存されるファイルディレクトリーを設定します | String | |
| publicForRead (common) | ストレージリソースは、コンテンツを読み取るためにパブリックにすることができます。このプロパティーが有効になっている場合、認証情報を設定する必要はありません | false | boolean |
| streamReadSize (common) | blob コンテンツを読み取るときの最小読み取りサイズをバイト単位で設定します | int | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| blobMetadata (producer) | blob メタデータを設定する | Map | |
| blobPrefix (producer) | BLOB の一覧表示に使用できる接頭辞を設定します | String | |
| closeStreamAfterWrite (producer) | 書き込み後にストリームを閉じるか、開いたままにします。デフォルトは true です。 | true | boolean |
| operation (producer) | プロデューサーへの Blob サービス操作のヒント | listBlobs | BlobServiceOperations |
| streamWriteSize (producer) | ブロックおよびページブロックを書き込むためのバッファーのサイズを設定します | int | |
| useFlatListing (producer) | フラットまたは階層的な blob リストを使用するかどうかを指定します | true | boolean |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
39.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.azure-blob.enabled | azure-blob コンポーネントを有効にする | true | Boolean |
| camel.component.azure-blob.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
必須の Azure Storage Blob Service コンポーネントオプション
プライベート blob にアクセスする必要がある場合は、containerOrBlob 名と認証情報を提供する必要があります。
39.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
39.4.1. Azure Storage Blob Service プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
39.4.2. Azure Storage Blob Service プロデューサーによって設定されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| ダウンロードした blob コンテンツのファイル名。 |
39.4.3. Azure Storage Blob Service プロデューサーコンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
|
|
| ダウンロードした blob コンテンツのファイル名。 |
39.4.4. Azure Blob Service の操作 リンクのコピーリンクがクリップボードにコピーされました!
すべてのブロックタイプに共通の操作
| 操作 | 説明 |
|---|---|
|
| ブロブの内容を取得します。この操作の出力をブロブ範囲に制限できます。 |
|
| blob を削除します。 |
|
| blob を一覧表示します。 |
ブロック blob 操作
| 操作 | 説明 |
|---|---|
|
| 新しいブロック blob を作成するか、既存のブロック blob コンテンツを上書きするブロック blob コンテンツを置きます。 |
|
|
最初に blob ブロックのシーケンスを生成し、次にそれらを blob にコミットすることにより、ブロック blob コンテンツをアップロードします。メッセージの CommitBlockListLater プロパティーを有効にすると、後で |
|
|
以前に blob サービスにアップロードしたブロックリストに一連の blob ブロックをコミットします (メッセージ CommitBlockListLater プロパティーを有効にして |
|
| ブロック blob リストを取得します。 |
blob 操作を追加する
| 操作 | 説明 |
|---|---|
|
|
追加ブロックを作成します。デフォルトでは、ブロックがすでに存在する場合はリセットされません。メッセージの AppendBlobCreated プロパティーを有効にし、 |
|
| 新しいコンテンツを blob に追加します。この操作では、blob がまだ存在しない場合、およびメッセージの AppendBlobCreated プロパティーを有効にした場合にも blob が作成されます。 |
ページブロック操作
| 操作 | 説明 |
|---|---|
|
|
ページブロックを作成します。デフォルトでは、ブロックがすでに存在する場合はリセットされません。メッセージの PageBlobCreated プロパティーを有効にし、 |
|
| ページブロックを作成し (メッセージの PageBlobCreated プロパティーを有効にし、同じ名前のブロックがすでに存在する場合を除く)、この blob のコンテンツを設定します。 |
|
| ページ blob のサイズを変更します。 |
|
| ページ blob をクリアします。 |
|
| ページ blob のページ範囲を取得します。 |
39.4.5. Azure Blob クライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel アプリケーションがファイアウォールの背後で実行されている場合、または Azure Blob Client 設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
StorageCredentials credentials = new StorageCredentialsAccountAndKey("camelazure", "thekey");
CloudBlob client = new CloudBlob("camelazure", credentials);
registry.bind("azureBlobClient", client);
StorageCredentials credentials = new StorageCredentialsAccountAndKey("camelazure", "thekey");
CloudBlob client = new CloudBlob("camelazure", credentials);
registry.bind("azureBlobClient", client);
Camel azure-blob コンポーネント設定でそれを参照します。
from("azure-blob:/camelazure/container1/blockBlob?azureBlobClient=#client")
.to("mock:result");
from("azure-blob:/camelazure/container1/blockBlob?azureBlobClient=#client")
.to("mock:result");
39.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-azure</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-azure</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.19.0 以降) に置き換える必要があります。
39.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- Azure コンポーネント
第40章 Azure Storage Queue Service コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.19 以降で利用可能
Azure Queue コンポーネントは、Azure Storage Queue サービスとの間でのメッセージの保存と取得をサポートしています。
前提条件
有効な Microsoft Azure アカウントが必要です。詳細については、Azure ポータル を参照してください。
40.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
azure-queue://accountName/queueName[?options]
azure-queue://accountName/queueName[?options]
キューがまだ存在しない場合は作成されます。
URI には、?options=value&option2=value&… という形式でクエリーオプションを追加できます。
たとえば、camelazure ストレージアカウントのキュー messageQueue からメッセージコンテンツを取得するには、次のスニペットを使用します。
from("azure-queue:/camelazure/messageQueue").
to("file://queuedirectory");
from("azure-queue:/camelazure/messageQueue").
to("file://queuedirectory");
40.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
Azure Storage Queue Service コンポーネントにはオプションがありません。
Azure ストレージキューサービスエンドポイントは、URI 構文を使用して設定されます。
azure-queue:containerAndQueueUri
azure-queue:containerAndQueueUri
パスおよびクエリーパラメーターを使用します。
40.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| containerAndQueueUri | 必須 コンテナーキューのコンパクトな Uri | String |
40.2.2. クエリーパラメーター (10 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| azureQueueClient (common) | キューサービスクライアント | CloudQueue | |
| credentials (common) | ストレージ認証情報を設定します。ほとんどの場合に必要です | StorageCredentials | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| messageTimeToLive (producer) | メッセージの生存時間 (秒) | int | |
| messageVisibilityDelay (producer) | メッセージの可視性の遅延 (秒) | int | |
| operation (プロデューサー) | プロデューサーへのキューサービス操作のヒント。 | listQueues | QueueServiceOperations |
| queuePrefix (producer) | キューの一覧表示に使用できる接頭辞を設定します | String | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
40.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.azure-queue.enabled | azure-queue コンポーネントを有効にする | true | Boolean |
| camel.component.azure-queue.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
必須の Azure Storage Queue Service コンポーネントオプション
containerAndQueue URI と認証情報を提供する必要があります。
40.4. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
40.4.1. Azure Storage Queue Service プロデューサーによって評価されるメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
40.4.2. Azure Storage Queue Service プロデューサーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
40.4.3. Azure Storage Queue Service プロデューサーコンシューマーによって設定されたメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| ヘッダー | タイプ | 説明 |
|---|---|---|
40.4.4. Azure キューサービスの操作 リンクのコピーリンクがクリップボードにコピーされました!
| 操作 | 説明 |
|---|---|
|
| キューを一覧表示します。 |
|
| キューを作成します。 |
|
| キューの削除。 |
|
| メッセージをキューに追加します。 |
|
| キューからメッセージを取得します。 |
|
| たとえば、キュー内のメッセージを表示して、メッセージが正しいキューに到着したかどうかを判断します。 |
|
| キュー内のメッセージを更新します。 |
|
| キュー内のメッセージを削除します。 |
40.4.5. Azure キュークライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
Camel アプリケーションがファイアウォールの背後で実行されている場合、または Azure Queue Client 設定をより詳細に制御する必要がある場合は、独自のインスタンスを作成できます。
StorageCredentials credentials = new StorageCredentialsAccountAndKey("camelazure", "thekey");
CloudQueue client = new CloudQueue("camelazure", credentials);
registry.bind("azureQueueClient", client);
StorageCredentials credentials = new StorageCredentialsAccountAndKey("camelazure", "thekey");
CloudQueue client = new CloudQueue("camelazure", credentials);
registry.bind("azureQueueClient", client);
Camel azure-queue コンポーネント設定でそれを参照します。
from("azure-queue:/camelazure/messageQueue?azureQueueClient=#client")
.to("mock:result");
from("azure-queue:/camelazure/messageQueue?azureQueueClient=#client")
.to("mock:result");
40.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、以下の依存関係を pom.xml に追加する必要があります。
pom.xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-azure</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-azure</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.19.0 以降) に置き換える必要があります。
40.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- Azure コンポーネント
第41章 Barcode DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.14 以降で利用可能
バーコードのデータ形式は zxing ライブラリー に基づいています。このコンポーネントの目的は、文字列 (マーシャル) からバーコードイメージを作成し、バーコードイメージから文字列 (アンマーシャル) を作成することです。zxing が提供するすべての機能を自由に使用できます。
41.1. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
camel ルートでバーコードデータ形式を使用するには、このデータ形式を実装する camel-barcode に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加するだけで、バージョン番号を最新かつ最高のリリースに置き換えます (最新バージョンのダウンロードページを参照してください)。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-barcode</artifactId> <version>x.x.x</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-barcode</artifactId>
<version>x.x.x</version>
</dependency>
41.2. バーコードオプション リンクのコピーリンクがクリップボードにコピーされました!
バーコードデータ形式は、以下に示す 5 個のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| width |
| バーコードの幅 | |
| height |
| バーコードの高さ | |
| imageType |
| png などのバーコードのイメージタイプ | |
| barcodeFormat |
| QR コードなどのバーコード形式 | |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
41.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に示す 6 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.dataformat.barcode.barcode-format | QR コードなどのバーコード形式 | String | |
| camel.dataformat.barcode.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.barcode.enabled | バーコードデータ形式を有効にする | true | Boolean |
| camel.dataformat.barcode.height | バーコードの高さ | Integer | |
| camel.dataformat.barcode.image-type | png などのバーコードのイメージタイプ | String | |
| camel.dataformat.barcode.width | バーコードの幅 | Integer |
ND
41.4. Java DSL を使用 リンクのコピーリンクがクリップボードにコピーされました!
まず、バーコードデータフォーマットクラスを初期化する必要があります。デフォルトのコンストラクター、またはパラメーター化されたコンストラクターのいずれかを使用できます (JavaDoc を参照)。デフォルト値は次のとおりです。
| パラメーター | デフォルト値 |
|---|---|
| image type (BarcodeImageType) | PNG |
| width | 100 px |
| height | 100 px |
| encoding | UTF-8 |
| バーコード形式 (BarcodeFormat) | QR-Code |
// QR-Code default DataFormat code = new BarcodeDataFormat();
// QR-Code default
DataFormat code = new BarcodeDataFormat();
zxing ヒントを使用する場合は、BarcodeDataFormat インスタンスの addToHintMap メソッドを使用できます。
code.addToHintMap(DecodeHintType.TRY_HARDER, Boolean.true);
code.addToHintMap(DecodeHintType.TRY_HARDER, Boolean.true);
考えられるヒントについては、xzing のドキュメントを参照してください。
41.4.1. マーシャリング リンクのコピーリンクがクリップボードにコピーされました!
from("direct://code")
.marshal(code)
.to("file://barcode_out");
from("direct://code")
.marshal(code)
.to("file://barcode_out");
以下を使用して、テストクラスからルートを呼び出すことができます。
template.sendBody("direct://code", "This is a testmessage!");
template.sendBody("direct://code", "This is a testmessage!");
barcode_out フォルダー内に次のイメージがあります。
41.4.2. アンマーシャリング リンクのコピーリンクがクリップボードにコピーされました!
アンマーシャラーは汎用です。アンマーシャリングには、任意の BarcodeDataFormat インスタンスを使用できます。QR コード (生成) 用と PDF417 用の 2 つのインスタンスがある場合、どちらを使用するかは問題ではありません。
from("file://barcode_in?noop=true")
.unmarshal(code) // for unmarshalling, the instance doesn't matter
.to("mock:out");
from("file://barcode_in?noop=true")
.unmarshal(code) // for unmarshalling, the instance doesn't matter
.to("mock:out");
上記の QR コードイメージを barcode_in フォルダーに貼り付けると、モック内に 「This is a testmessage!」 が表示されるはずです。バーコードデータ形式は、ヘッダー変数として見つけることができます。
| 名前 | タイプ | 説明 |
|---|---|---|
| BarcodeFormat | String | com.google.zxing.BarcodeFormat の値。 |
第42章 Base64 DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.11 以降で利用可能
Base64 データ形式は、base64 エンコードおよびデコードに使用されます。
42.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
Base64 データ形式は、以下に示す 4 個のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| lineLength |
|
| エンコードされたデータの最大行長を指定します。デフォルトでは、76 が使用されます。 |
| lineSeparator |
| 使用する行区切り。デフォルトでは改行文字 (CRLF) を使用します。 | |
| urlSafe |
|
| '' と / を発行する代わりに、- と _ をそれぞれ発行します。urlSafe は、エンコード操作にのみ適用されます。デコードは両方のモードをシームレスに処理します。デフォルトでは false です。 |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
42.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に示す 5 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.dataformat.base64.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.base64.enabled | base64 データ形式を有効にする | true | Boolean |
| camel.dataformat.base64.line-length | エンコードされたデータの最大行長を指定します。デフォルトでは、76 が使用されます。 | 76 | Integer |
| camel.dataformat.base64.line-separator | 使用する行区切り。デフォルトでは改行文字 (CRLF) を使用します。 | String | |
| camel.dataformat.base64.url-safe | '' と / を発行する代わりに、- と _ をそれぞれ発行します。urlSafe は、エンコード操作にのみ適用されます。デコードは両方のモードをシームレスに処理します。デフォルトでは false です。 | false | Boolean |
ND
Spring DSL では、次のタグを使用してデータ形式を設定します。
その後、参照して後で使用できます。
<route>
<from uri="direct:startEncode" />
<marshal ref="base64withLineLength64" />
<to uri="mock:result" />
</route>
<route>
<from uri="direct:startEncode" />
<marshal ref="base64withLineLength64" />
<to uri="mock:result" />
</route>
デフォルトのオプションを使用する場合、ほとんどの場合、データ形式を宣言する必要はありません。その場合、以下に示すようにデータ形式をインラインで宣言できます。
42.3. Marshal リンクのコピーリンクがクリップボードにコピーされました!
この例では、ファイルの内容を base64 オブジェクトにマーシャリングします。
from("file://data.bin")
.marshal().base64()
.to("jms://myqueue");
from("file://data.bin")
.marshal().base64()
.to("jms://myqueue");
Spring の DSL では:
<from uri="file://data.bin">
<marshal>
<base64/>
</marshal>
<to uri="jms://myqueue"/>
<from uri="file://data.bin">
<marshal>
<base64/>
</marshal>
<to uri="jms://myqueue"/>
42.4. Unmarshal リンクのコピーリンクがクリップボードにコピーされました!
この例では、newOrder プロセッサーによって処理される前に、ペイロードを JMS キューから byte オブジェクトにアンマーシャリングします。
from("jms://queue/order")
.unmarshal().base64()
.process("newOrder");
from("jms://queue/order")
.unmarshal().base64()
.process("newOrder");
Spring の DSL では:
<from uri="jms://queue/order">
<unmarshal>
<base64/>
</unmarshal>
<to uri="bean:newOrder"/>
<from uri="jms://queue/order">
<unmarshal>
<base64/>
</unmarshal>
<to uri="bean:newOrder"/>
42.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Camel ルートで Base64 を使用するには、このデータ形式を実装する camel-base64 に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加するだけです。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-base64</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-base64</artifactId>
<version>x.x.x</version> <!-- use the same version as your Camel core version -->
</dependency>
第43章 Bean コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 1.0 以降で利用可能
bean: コンポーネントは Bean を Camel メッセージエクスチェンジにバインドします。
43.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
bean:beanName[?options]
bean:beanName[?options]
beanID には、レジストリーで Bean を検索するために使用される任意の文字列を指定できます。
43.2. オプション リンクのコピーリンクがクリップボードにコピーされました!
Bean コンポーネントは、以下に示す 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| cache (advanced) | 有効にすると、Camel は最初のレジストリールックアップの結果をキャッシュします。レジストリー内の Bean がシングルトンスコープとして定義されている場合、キャッシュを有効にできます。 | Boolean | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Bean エンドポイントは、URI 構文を使用して設定されます。
bean:beanName
bean:beanName
パスおよびクエリーパラメーターを使用します。
43.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| beanName | 必須: 呼び出す Bean の名前を設定します。 | String |
43.2.2. クエリーパラメーター (5 つのパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| method (producer) | Bean で呼び出すメソッドの名前を設定します。 | String | |
| cache (advanced) | 有効にすると、Camel は最初のレジストリールックアップの結果をキャッシュします。レジストリー内の Bean がシングルトンスコープとして定義されている場合、キャッシュを有効にできます。 | Boolean | |
| multiParameterArray (advanced) | 非推奨 メッセージ本文から渡されるパラメーターの処理方法。true の場合、メッセージボディーはパラメーターの配列である必要があります。注記: このオプションは Camel によって内部的に使用され、エンドユーザーが使用することを意図したものではありません。非推奨の注記: このオプションは Camel によって内部的に使用され、エンドユーザーが使用することを意図したものではありません。 | false | boolean |
| parameters (advanced) | Bean の追加プロパティーの設定に使用します | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
URI には、?option=value&option=value&… の形式でクエリーオプションを追加できます。
43.3. 使用 リンクのコピーリンクがクリップボードにコピーされました!
メッセージの消費に使用されるオブジェクトインスタンスは、レジストリーに明示的に登録する必要があります。たとえば、Spring を使用している場合は、Spring 設定 spring.xml で Bean を定義する必要があります。または、Spring を使用しない場合は、Bean を JNDI に登録します。
エラーフォーマットマクロ: スニペット: java.lang.IndexOutOfBoundsException: インデックス: 20、サイズ: 20
エンドポイントが登録されたら、エクスチェンジの処理に使用する Camel ルートを構築できます。
bean: エンドポイントは、ルートへの入力として定義できません。つまり、消費できません。一部のインバウンドメッセージエンドポイントから Bean エンドポイントに、出力としてのみルーティングできます。direct: または queue: エンドポイントを入力として使用することを検討してください。
ProxyHelper で createProxy() メソッドを使用して、BeanExchange を生成して任意のエンドポイントに送信するプロキシーを作成できます。
Spring DSL を使用した同じルートの場合:
<route> <from uri="direct:hello"> <to uri="bean:bye"/> </route>
<route>
<from uri="direct:hello">
<to uri="bean:bye"/>
</route>
43.4. エンドポイントとしての Bean リンクのコピーリンクがクリップボードにコピーされました!
Camel は、エンドポイントとしての Bean の呼び出しもサポートしています。ルートは以下のとおりです。
エクスチェンジが myBean にルーティングされると、Camel は Bean バインディングを使用して Bean を呼び出します。
Bean のソースは plain POJO です。
Camel は Bean バインディングを使用して sayHello メソッドを呼び出し、エクスチェンジの In ボディを String タイプに変換し、メソッドの出力をエクスチェンジの Out ボディに保存します。
43.5. Java DSL Bean 構文 リンクのコピーリンクがクリップボードにコピーされました!
Java DSL には、Bean コンポーネントのシンタックスシュガーが付属しています。Bean を明示的にエンドポイント (つまり to ("bean:beanName")) として指定する代わりに、次の構文を使用できます。
Bean への参照の名前を渡す代わりに (Camel がレジストリーでそれを検索できるようにするため)、Bean 自体を指定できます。
43.6. Bean バインディング リンクのコピーリンクがクリップボードにコピーされました!
呼び出される Bean メソッドの選択方法 (method パラメーターで明示的に指定されていない場合) と、メッセージからパラメーター値が構築される方法は、Camel 内のさまざまな Bean 統合メカニズム全体で使用される Bean バインディングメカニズムによりすべて定義されます。
43.7. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
- Class コンポーネント
- Bean バインディング
- Bean インテグレーション
第44章 BeanIO DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.10 以降で利用可能
BeanIO データ形式は、BeanIO を使用してフラットペイロード (XML、CSV、区切り、または固定長形式など) を処理します。
BeanIO は、フラット形式からオブジェクト (POJO) へのマッピングを定義する マッピング XML ファイルを使用して設定されます。このマッピングファイルは必須です。
44.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
BeanIO データ形式は、以下に示す 9 個のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| mapping |
| BeanIO マッピングファイル。デフォルトでは、クラスパスからロードされます。file:、http:、または classpath: の接頭辞を付けて、マッピングファイルのロード元を示すことができます。 | |
| streamName |
| 使用するストリームの名前。 | |
| ignoreUnidentifiedRecords |
|
| 未確認のレコードを無視するかどうか。 |
| ignoreUnexpectedRecords |
|
| 予期しないレコードを無視するかどうか。 |
| ignoreInvalidRecords |
|
| 無効なレコードを無視するかどうか。 |
| encoding |
| 使用する文字セット。デフォルトでは、JVM プラットフォームのデフォルトの文字セットです。 | |
| beanReaderErrorHandlerType |
| 解析中にカスタム org.apache.camel.dataformat.beanio.BeanIOErrorHandler をエラーハンドラーとして使用する場合。エラーハンドラーの完全修飾クラス名を設定します。カスタムエラーハンドラーを使用する場合、ignoreUnidentifiedRecords、ignoreUnexpectedRecords、ignoreInvalidRecords の各オプションが使用されない場合があることに注意してください。 | |
| unmarshalSingleObject |
|
| このオプションは、オブジェクトのリストとしてアンマーシャリングするか、単一のオブジェクトのみとしてアンマーシャリングするかを制御します。前者はデフォルトのモードであり、後者は beanio が Camel メッセージを単一の POJO Bean にマップする特別なユースケースのみを対象としています。 |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
44.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に示す 10 個のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.dataformat.beanio.bean-reader-error-handler-type | 解析中にカスタム org.apache.camel.dataformat.beanio.BeanIOErrorHandler をエラーハンドラーとして使用する場合。エラーハンドラーの完全修飾クラス名を設定します。カスタムエラーハンドラーを使用する場合、ignoreUnidentifiedRecords、ignoreUnexpectedRecords、ignoreInvalidRecords の各オプションが使用されない場合があることに注意してください。 | String | |
| camel.dataformat.beanio.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.beanio.enabled | beanio データフォーマットを有効にする | true | Boolean |
| camel.dataformat.beanio.encoding | 使用する文字セット。デフォルトでは、JVM プラットフォームのデフォルトの文字セットです。 | String | |
| camel.dataformat.beanio.ignore-invalid-records | 無効なレコードを無視するかどうか。 | false | Boolean |
| camel.dataformat.beanio.ignore-unexpected-records | 予期しないレコードを無視するかどうか。 | false | Boolean |
| camel.dataformat.beanio.ignore-unidentified-records | 未確認のレコードを無視するかどうか。 | false | Boolean |
| camel.dataformat.beanio.mapping | BeanIO マッピングファイル。デフォルトでは、クラスパスからロードされます。file:、http:、または classpath: の接頭辞を付けて、マッピングファイルのロード元を示すことができます。 | String | |
| camel.dataformat.beanio.stream-name | 使用するストリームの名前。 | String | |
| camel.dataformat.beanio.unmarshal-single-object | このオプションは、オブジェクトのリストとしてアンマーシャリングするか、単一のオブジェクトのみとしてアンマーシャリングするかを制御します。前者はデフォルトのモードであり、後者は beanio が Camel メッセージを単一の POJO Bean にマップする特別なユースケースのみを対象としています。 | false | Boolean |
ND
44.3. 使用方法 リンクのコピーリンクがクリップボードにコピーされました!
44.3.1. Java DSL の使用 リンクのコピーリンクがクリップボードにコピーされました!
BeanIODataFormat を使用するには、マッピングファイルとストリームの名前を使用してデータ形式を設定する必要があります。
Java DSL では、これは以下に示すように実行できます。streamName は employeeFile です。
次に、2 つのルートがあります。最初のルートは、CSV データを List<Employee> Java オブジェクトに変換するためのものです。次に、これを分割して、モックエンドポイント
行ごとにメッセージを受け取ります。
2 番目のルートは逆の操作で、List<Employee> を CSV データのストリームに変換します。
CSV データは、たとえば次のようになります。
44.3.2. XML DSL の使用 リンクのコピーリンクがクリップボードにコピーされました!
XML で BeanIO データ形式を使用するには、以下に示すように <beanio> XML タグを使用して設定する必要があります。ルートは上記の例と同様です。
44.4. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Camel ルートで BeanIO を使用するには、このデータ形式を実装する camel-beanio に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加するだけで、バージョン番号を最新かつ最高のリリースに置き換えます (最新バージョンのダウンロードページを参照してください)。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-beanio</artifactId> <version>2.10.0</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanio</artifactId>
<version>2.10.0</version>
</dependency>
第45章 Beanstalk コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.15 以降で利用可能
camel-beanstalk プロジェクトは、ジョブの取得と Beanstalk ジョブの後処理のための Camel コンポーネントを提供します。
Beanstalk プロトコル で、Beanstalk ジョブのライフサイクルの詳細な説明を見つけることができます。
45.1. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは以下の依存関係を pom.xml に追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanstalk</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanstalk</artifactId>
<version>${camel-version}</version>
</dependency>
${camel-version} は Camel の実際のバージョン (2.15.0 以降) に置き換える必要があります。
45.2. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
beanstalk://[host[:port]][/tube][?options]
beanstalk://[host[:port]][/tube][?options]
Beanstalk のデフォルト (localhost と 11300) が使用されるように、port のいずれか、または host と port : の両方を省略できます。tube を省略すると、Beanstalk コンポーネントは default という名前のチューブを使用します。
リッスンしているときに、いくつかのチューブからのジョブを監視したい場合があります。プラス記号で区切るだけです。
beanstalk://localhost:11300/tube1+tube2
beanstalk://localhost:11300/tube1+tube2
チューブ名は URL デコードされるため、チューブ名に + や ? などの特殊文字が含まれている場合は、それらを適切に URL エンコードするか、RAW 構文を使用する必要があります。詳細については、こちら を参照してください。
ちなみに、ジョブを Beanstalk に書き込む場合、複数のチューブを指定することはできません。
45.3. Beanstalk オプション リンクのコピーリンクがクリップボードにコピーされました!
Beanstalk コンポーネントは、以下にリストされている 2 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| connectionSettings Factory (common) | Custom ConnectionSettingsFactory.Beanstalkd への接続に使用する ConnectionSettingsFactory を指定します。特に、beanstalkd デーモンを使用しない単体テストに役立ちます (ConnectionSettings をモックできます)。 | ConnectionSettings Factory | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Beanstalk エンドポイントは、URI 構文を使用して設定されます。
beanstalk:connectionSettings
beanstalk:connectionSettings
パスおよびクエリーパラメーターを使用します。
45.3.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| connectionSettings | 接続設定 ホスト: ポート/チューブ | String |
45.3.2. クエリーパラメーター(26 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| command (common) | put は、ジョブを Beanstalk に入れることを意味します。ジョブボディは Camel メッセージボディで指定します。ジョブ ID は、beanstalk.jobId メッセージヘッダーで返されます。メッセージヘッダー Beanstalk.jobId のジョブ ID を期待して、削除、解放、タッチ、または埋めます。オペレーションの結果は、beanstalk.result メッセージヘッダーで返されます。 | BeanstalkCommand | |
| jobDelay (common) | 秒単位のジョブ遅延。 | 0 | int |
| jobPriority (common) | 仕事の優先順位。(0 が最高です。Beanstalk プロトコルを参照してください) | 1000 | long |
| jobTimeToRun (common) | ジョブの実行時間 (秒単位)。(0 の場合、beanstalkd デーモンはそれを自動的に 1 に上げます。Beanstalk プロトコルを参照してください) | 60 | int |
| awaitJob (consumer) | Beanstalk からジョブを確認する前に、ジョブの完了を待機するかどうか | true | boolean |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| onFailure (consumer) | 処理が失敗したときに使用するコマンド。 | BeanstalkCommand | |
| sendEmptyMessageWhenIdle (consumer) | ポーリングコンシューマーがファイルをポーリングしなかった場合、このオプションを有効にして、代わりに空のメッセージ (ボディーなし) を送信できます。 | false | boolean |
| useBlockIO (consumer) | blockIO を使用するかどうか。 | true | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| pollStrategy (consumer) | プラグ可能な org.apache.camel.PollingConsumerPollingStrategy を使用すると、エクスチェンジが作成され、Camel でルーティングされる前に、通常はポーリング操作中に発生するエラー処理を制御するカスタム実装が提供できます。 | PollingConsumerPoll Strategy | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| backoffErrorThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のエラーポーリング (エラーによって失敗した) の数。 | int | |
| backoffIdleThreshold (scheduler) | backoffMultipler が開始する前に発生する必要がある後続のアイドルポーリングの数。 | int | |
| backoffMultiplier (scheduler) | 後続のアイドル状態/エラーが連続して発生した場合に、スケジュールされたポーリングコンシューマーのバックオフを許可します。乗数は、実際に次の試行が行われる前にスキップされるポーリングの数です。このオプションが使用されている場合は、backoffIdleThreshold や backoffErrorThreshold も設定する必要があります。 | int | |
| delay (scheduler) | 次のポーリングまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 500 | long |
| greedy (scheduler) | greedy が有効で、以前の実行が 1 つ以上のメッセージをポーリングした場合、ScheduledPollConsumer は即座に再度実行されます。 | false | boolean |
| initialDelay (scheduler) | 最初のポーリングが開始されるまでの時間 (ミリ秒単位)。60s (60 秒)、5m30s (5 分 30 秒)、1h (1 時間) などの単位を使用して時間値を指定することもできます。 | 1000 | long |
| runLoggingLevel (scheduler) | コンシューマーはポーリング時に開始/完了のログ行を記録します。このオプションを使用すると、ログレベルを設定できます。 | TRACE | LoggingLevel |
| scheduledExecutorService (scheduler) | コンシューマーに使用するカスタム/共有スレッドプールを設定できます。デフォルトでは、各コンシューマーに独自の単一スレッドのスレッドプールがあります。 | ScheduledExecutor Service | |
| scheduler (scheduler) | camel-spring または camel-quartz2 コンポーネントから cron スケジューラーを使用します。 | none | ScheduledPollConsumer Scheduler |
| schedulerProperties (scheduler) | カスタムスケジューラーまたは Quartz2 や Spring ベースのスケジューラーを使用する場合に、追加のプロパティーを設定します。 | Map | |
| startScheduler (scheduler) | スケジューラーを自動起動するかどうか。 | true | boolean |
| timeUnit (scheduler) | initialDelay および delay オプションの時間単位。 | MILLISECONDS | TimeUnit |
| useFixedDelay (scheduler) | 固定遅延または固定レートを使用するかどうかを制御します。詳細は、JDK の ScheduledExecutorService を参照してください。 | true | boolean |
45.4. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 3 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.beanstalk.connection-settings-factory | Custom ConnectionSettingsFactory.Beanstalkd への接続に使用する ConnectionSettingsFactory を指定します。特に、beanstalkd デーモンを使用しない単体テストに役立ちます (ConnectionSettings をモックできます)。オプションは org.apache.camel.component.beanstalk.ConnectionSettingsFactory タイプです。 | String | |
| camel.component.beanstalk.enabled | beanstalk コンポーネントを有効にする | true | Boolean |
| camel.component.beanstalk.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
プロデューサーの動作は、ジョブの処理方法を指示する command パラメーターの影響を受けます。
コンシューマーは、ジョブを予約した直後にジョブを削除するか、Camel ルートが処理するまで待つことができます。最初のシナリオはメッセージキューに似ていますが、2 番目のシナリオはジョブキューに似ています。この動作は、consumer.awaitJob パラメーターによって制御されます。これは、デフォルトで true に等しくなります (Beanstalkd の性質に従います)。
同期の場合、コンシューマーはジョブが正常に完了すると delete を呼び出し、失敗すると bury を呼び出します。URI で consumer.onFailure パラメーターを指定することにより、失敗した場合に実行するコマンドを選択できます。bury、delete、または release の値を取ることができます。
JavaBeanstalkClient ライブラリーの同じパラメーターに対応するブール値パラメーター consumer.useBlockIO があります。デフォルトでは true です。
release を指定するときは注意してください。失敗したジョブはすぐに同じチューブで利用可能になり、コンシューマーはそれを再度取得しようとします。ただし、jobDelay を release して指定することはできます。
Beanstalk コンシューマーは、スケジュールされた ポーリングコンシューマー です。つまり、コンシューマーがポーリングする頻度など、設定できるオプションがさらにあります。詳細については、コンシューマーのポーリングを参照してください。
45.5. コンシューマーヘッダー リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーは、Exchange メッセージにいくつかのジョブヘッダーを格納します。
| プロパティー | タイプ | 説明 |
|---|---|---|
| beanstalk.jobId | long | ジョブ ID: |
| beanstalk.tube | string | このジョブを含むチューブの名前 |
| beanstalk.state | string | ready または delayed または reserved または burried (reserved でなければならない) |
| beanstalk.priority | long | プライオリティ値セット |
| beanstalk.age | int | このジョブを作成した put コマンドからの時間 (秒) |
| beanstalk.time-left | int | サーバーがこのジョブを準備完了キューに入れるまでの残り秒数 |
| beanstalk.timeouts | int | 予約中にこのジョブがタイムアウトになった回数 |
| beanstalk.releases | int | クライアントがこのジョブを予約から解放した回数 |
| beanstalk.buries | int | このジョブが葬られた回数 |
| beanstalk.kicks | int | このジョブがキックされた回数 |
45.6. 例 リンクのコピーリンクがクリップボードにコピーされました!
この Camel コンポーネントを使用すると、処理するジョブを要求し、それらを Beanstalkd デーモンに提供できます。簡単なデモルートは次のようになります
from("timer:dig?period=30seconds").
setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks").
to("beanstalk:testTube?command=kick");
from("timer:dig?period=30seconds").
setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks").
to("beanstalk:testTube?command=kick");
最初のルートでは、チューブ testTube で新しいジョブをリッスンしています。それらが到着すると、メッセージ本文から整数値を解析しようとしています。成功した場合はログに記録し、交換が正常に完了すると、Camel コンポーネントはこのジョブを Beanstalk から自動的に 削除 します。反対に、ジョブデータを解析できない場合、エクスチェンジは失敗し、Camel コンポーネントはデフォルトでそれを 葬ります。そのため、後で処理できるか、失敗したジョブを手動で検査することになります。
したがって、2 番目のルートは Beanstalk に定期的に 10 個のジョブを葬った状態や遅延状態から通常のキューに 追い出すよう に要求します。
45.7. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
第46章 Bean バリデーターコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.3 以降で利用可能
バリデーターコンポーネントは、Java Bean Validation API (JSR 303) を使用してメッセージボディーの Bean 検証を実行します。Camel は Hibernate Validator のリファレンス実装を使用します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
46.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
bean-validator:label[?options]
bean-validator:label[?options]
または
bean-validator://label[?options]
bean-validator://label[?options]
label は、エンドポイントを記述する任意のテキスト値です。
URI には、?option=value&option=value&… の形式でクエリーオプションを追加できます。
46.2. URI オプション リンクのコピーリンクがクリップボードにコピーされました!
Bean Validator コンポーネントにはオプションがありません。
Bean バリデーターエンドポイントは URI 構文を使用して設定されます。
bean-validator:label
bean-validator:label
パスおよびクエリーパラメーターを使用します。
46.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| label | 必須: ラベルは、エンドポイントを記述する任意のテキスト値です。 | String |
46.2.2. クエリーパラメーター (6 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| constraintValidatorFactory (producer) | カスタムの ConstraintValidatorFactory を使用します | ConstraintValidator Factory | |
| group (producer) | カスタム検証グループを使用します | javax.validation.groups.Default | String |
| messageInterpolator (producer) | カスタムの MessageInterpolator を使用します | MessageInterpolator | |
| traversableResolver (producer) | カスタムの TraversableResolver を使用します | TraversableResolver | |
| validationProviderResolver (producer) | カスタムの ValidationProviderResolver を使用します | ValidationProvider Resolver | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
46.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.bean-validator.enabled | bean-validator コンポーネントを有効にする | true | Boolean |
| camel.component.bean-validator.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
46.4. OSGi デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
OSGi 環境で Hibernate Validator を使用するには、org.apache.camel.component.bean.validator.HibernateValidationProviderResolver と同様に専用の ValidationProviderResolver 実装を使用します。以下のスニペットは、このアプローチを示しています。Camel 2.13.0 から HibernateValidationProviderResolver を使用できることに注意してください。
Using HibernateValidationProviderResolver
カスタムの ValidationProviderResolver が定義されておらず、バリデーターコンポーネントが OSGi 環境にデプロイされている場合、HibernateValidationProviderResolver は自動的に使用されます。
46.5. 例 リンクのコピーリンクがクリップボードにコピーされました!
以下を持つ java Bean があると仮定します。アノテーション:
Car.java
カスタムバリデーショングループのインターフェイス定義:
OptionalChecks.java
public interface OptionalChecks {
}
public interface OptionalChecks {
}
以下の Camel ルート。manufacturer および licensePlate 属性の @NotNull 制約のみが検証されます (Camel はデフォルトのグループ javax.validation.groups.Default を使用します)。
from("direct:start")
.to("bean-validator://x")
.to("mock:end")
from("direct:start")
.to("bean-validator://x")
.to("mock:end")
OptionalChecks グループからの制約を確認する場合は、以下のようなルートを定義する必要があります。
from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
from("direct:start")
.to("bean-validator://x?group=OptionalChecks")
.to("mock:end")
両方のグループからの制約を確認する場合は、最初に新しいインターフェイスを定義する必要があります。
AllChecks.java
@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
@GroupSequence({Default.class, OptionalChecks.class})
public interface AllChecks {
}
ルート定義は以下のようになります。
from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
from("direct:start")
.to("bean-validator://x?group=AllChecks")
.to("mock:end")
また、独自のメッセージインターポレーター、通過可能なリゾルバー、および制約バリデーターファクトリーを提供する必要がある場合は、次のようなルートを記述する必要があります。
また、制約を Java アノテーションではなく、XML として記述することも可能です。この場合、次のようなファイル META-INF/validation.xml を提供する必要があります。
validation.xml
constraints-car.xml ファイル
constraints-car.xml
OrderedChecks が https://github.com/apache/camel/blob/master/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/OrderedChecks.java になるルート定義の例の XML 構文を次に示します。
ボディーには検証するクラスのインスタンスを含める必要があることに注意してください。
46.6. 関連項目 リンクのコピーリンクがクリップボードにコピーされました!
- Configuring Camel (Camel の設定)
- コンポーネント
- エンドポイント
- スタートガイド
第47章 Binding コンポーネント (非推奨) リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.11 以降で利用可能
Camel の用語では、バインディング はコントラクトでエンドポイントをラップする方法です。データ形式、コンテンツエンリッチャー、検証ステップなど。バインディングは完全にオプションであり、任意の camel エンドポイントで使用することを選択できます。
バインディングは、Camel などのさまざまなテクノロジーにサービスコントラクトを追加する SwitchYard プロジェクト の作業によって引き起こされます。ただし、Camel を SCA でラップする SwitchYard アプローチではなく、Camel Bindings は、Camel フレームワーク自体内のコントラクトで Camel エンドポイントをラップする方法を提供します。そのため、どの Camel ルート内でも簡単に使用できます。
47.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
Binding コンポーネントにはオプションがありません。
Binding エンドポイントは、URI 構文を使用して設定されます。
binding:bindingName:delegateUri
binding:bindingName:delegateUri
パスおよびクエリーパラメーターを使用します。
47.1.1. パスパラメーター (2 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bindingName | 必須 Camel レジストリーでルックアップするバインディングの名前。 | String | |
| delegateUri | デリゲートエンドポイントの 必須 Uri。 | String |
47.1.2. クエリーパラメーター (4 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN/ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN/ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | エクスチェンジの作成時にデフォルトのエクスチェンジパターンを設定します。 | ExchangePattern | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
47.2. バインディングの使用 リンクのコピーリンクがクリップボードにコピーされました!
Binding は現在、コントラクトを定義する Bean です (ただし、バインディングを Camel DSL に追加できることが要望されます)。
バインドされたエンドポイント (バインディングでバインドされたエンドポイント) を定義するには、いくつかの方法があります。
47.3. バインディング URI の使用 リンクのコピーリンクがクリップボードにコピーされました!
任意のエンドポイント URI の前に binding:nameOfBinding: を付けることができます。nameOfBinding は、レジストリー内のバインディング Bean の名前です。
from("binding:jaxb:activemq:myQueue").to("binding:jaxb:activemq:anotherQueue")
from("binding:jaxb:activemq:myQueue").to("binding:jaxb:activemq:anotherQueue")
ここでは、jaxb バインディングを使用しています。これは、たとえば、JAXB データ形式を使用してメッセージをマーシャリングおよびアンマーシャリングすることができます。
47.4. BindingComponent の使用 リンクのコピーリンクがクリップボードにコピーされました!
BindingComponent と呼ばれるコンポーネントがあり、依存性注入によってレジストリーで設定できます。これにより、すでに何らかのバインディングにバインドされているエンドポイントを作成できます。
たとえば、次のようなコードを使用してレジストリーに jsonmq という新しいコンポーネントを登録した場合
JacksonDataFormat format = new JacksonDataFormat(MyBean.class);
context.bind("jsonmq", new BindingComponent(new DataFormatBinding(format), "activemq:foo."));
JacksonDataFormat format = new JacksonDataFormat(MyBean.class);
context.bind("jsonmq", new BindingComponent(new DataFormatBinding(format), "activemq:foo."));
その後、エンドポイントを他のエンドポイントであるかのように使用できます。
from("jsonmq:myQueue").to("jsonmq:anotherQueue")
from("jsonmq:myQueue").to("jsonmq:anotherQueue")
これは、キュー foo.myQueue および foo.anotherQueue を使用し、指定された Jackson Data Format を使用してキューのオンとオフをマーシャリングします。
47.5. バインディングを使うタイミング リンクのコピーリンクがクリップボードにコピーされました!
1 つのルートで 1 回だけエンドポイントを使用する場合。バインディングは、実際には raw エンドポイントを直接使用し、camel ルートで通常どおり明示的なマーシャリングと検証を使用するよりも複雑で、より多くの作業が必要になる場合があります。
ただし、バインドは、多くのルートを一緒に設定する場合に役立ちます。または、入力エンドポイントと出力エンドポイントが設定されたテンプレートとして単一のルートを使用します。バインディングは、コントラクトとエンドポイントをまとめるための優れた方法を提供します。
バインディングのもう 1 つの適切な使用例は、同じバインディングを使用する多くのエンドポイントを使用している場合です。常に特定のデータ形式や検証規則について言及する必要はなく、BindingComponent を使用して、選択したバインディングでエンドポイントをラップすることができます。
したがって、バインディングは実際には設定ツールです。意味のある場合にのみ使用してください。このような複雑さは、ルートやエンドポイントの数が多くない限り、その価値はないかもしれません。
第48章 Bindy DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.0 以降で利用可能
このコンポーネントの目的は、アノテーションでバインディングマッピングが定義された Java Bean との間で、非構造化データ (より正確には非 XML データ)
の解析/バインディングを可能にすることです。Bindy を使用すると、次のようなソースからデータをバインドできます。
- CSV レコード、
- 固定長レコード、
- FIX メッセージ、
- またはほとんどすべての非構造化データ
1 つまたは複数の Plain Old Java Object (POJO)。Bindy は、Java プロパティーの型に従ってデータを変換します。POJO は、場合によっては利用可能な 1 対多の関係と合わせてリンクできます。さらに、Date、Double、Float、Integer、Short、Long、BigDecimal などのデータ型の場合に、プロパティーのフォーマット中に適用するパターンを指定できます。
BigDecimal 数値の場合、精度と小数点またはグループ区切り記号も定義できます。
| タイプ | フォーマットの種類 | パターン例 | リンク |
|---|---|---|---|
| Date | DateFormat |
| http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html |
| Decimal* | Decimalformat |
| http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html |
Decimal* = Double、Integer、Float、Short、Long
*Format supported*
*Format supported*
この最初のリリースでは、コンマ区切りの値フィールドとキーと値のペアフィールド (例: FIX メッセージ) のみがサポートされています。
camel-bindy を使用するには、最初にモデルをパッケージ (例: com.acme.model) で定義し、モデルクラス (例: Order、Client、Instrument など) ごとに必要なアノテーション (後述) をクラスまたはフィールドに追加する必要があります。
*Multiple models*
*Multiple models*
複数のモデルを使用する場合は、予測できない結果を防ぐために、各モデルを独自のパッケージに配置する必要があります。
Camel 2.16 以降では、パッケージ名の代わりにクラス名を使用して bindy を設定するため、同じパッケージに複数のモデルを安全に含めることができるため、これは当てはまりません。
48.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
Bindy データ形式は、以下に示す 5 つのオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| type |
| csv、固定、またはキーと値のペアのモードを使用するかどうか。デフォルト値は、選択したデータ形式に応じて Csv または KeyValue のいずれかです。 | |
| classType |
| 使用するモデルクラスの名前。 | |
| locale |
| 米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | |
| unwrapSingleInstance |
|
| アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。 |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
48.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 18 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.dataformat.bindy-csv.class-type | 使用するモデルクラスの名前。 | String | |
| camel.dataformat.bindy-csv.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.bindy-csv.enabled | bindy-csv データ形式を有効にする | true | Boolean |
| camel.dataformat.bindy-csv.locale | 米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | String | |
| camel.dataformat.bindy-csv.type | csv、固定、またはキーと値のペアのモードを使用するかどうか。 | BindyType | |
| camel.dataformat.bindy-csv.unwrap-single-instance | アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。 | true | Boolean |
| camel.dataformat.bindy-fixed.class-type | 使用するモデルクラスの名前。 | String | |
| camel.dataformat.bindy-fixed.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.bindy-fixed.enabled | バインド固定データ形式を有効にする | true | Boolean |
| camel.dataformat.bindy-fixed.locale | 米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | String | |
| camel.dataformat.bindy-fixed.type | csv、固定、またはキーと値のペアのモードを使用するかどうか。 | BindyType | |
| camel.dataformat.bindy-fixed.unwrap-single-instance | アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。 | true | Boolean |
| camel.dataformat.bindy-kvp.class-type | 使用するモデルクラスの名前。 | String | |
| camel.dataformat.bindy-kvp.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.bindy-kvp.enabled | bindy-kvp データ形式を有効にする | true | Boolean |
| camel.dataformat.bindy-kvp.locale | 米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | String | |
| camel.dataformat.bindy-kvp.type | csv、固定、またはキーと値のペアのモードを使用するかどうか。 | BindyType | |
| camel.dataformat.bindy-kvp.unwrap-single-instance | アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。 | true | Boolean |
ND
48.3. アノテーション リンクのコピーリンクがクリップボードにコピーされました!
作成されたアノテーションにより、モデルのさまざまな概念を次のように POJO にマップできます。
- レコードのタイプ (csv、キーと値のペア (FIX メッセージなど)、固定長など)、
- リンク (別のオブジェクトにあるオブジェクトをリンクする)、
- DataField とそのプロパティー (int、type、…)、
- KeyValuePairField (FIX 財務メッセージにあるようなキー = 値形式の場合)、
- セクション (ヘッダー、本文、およびフッターセクションを識別する)、
- OneToMany,
- BindyConverter (since 2.18.0),
- FormatFactory (2.18.0 以降)
このセクションでは、上記について説明します。
48.4. 1.CsvRecord リンクのコピーリンクがクリップボードにコピーされました!
CsvRecord アノテーションは、モデルのルートクラスを識別するために使用されます。レコード = CSV ファイルの 1 行を表し、複数の子モデルクラスにリンクできます。
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| CsvRecord | csv | Class |
| パラメーター名 | type | Info |
|---|---|---|
| separator | string | 必須 - ',' または ';' または 'anything' を設定できます。サポートされている唯一の空白文字はタブ (\t) です。その他の空白文字 (スペース) はサポートされていません。この値は正規表現として解釈されます。正規表現で特別な意味を持つ記号を使用する場合は、'|' の記号であれば、'|' のようにマスクする必要があります |
| skipFirstLine | boolean | オプション - デフォルト値 = false - CSV ファイルの最初の行をスキップできます |
| crlf | string | オプション - 可能な値 = WINDOWS、UNIX、MAC、またはカスタム。デフォルト値。WINDOWS - 使用するキャリッジリターン文字を定義できます。上記の 3 つ以外の値を指定すると、入力した値 (カスタム) が CRLF 文字として使用されます |
| generateHeaderColumns | boolean | オプション - デフォルト値 = false - CSV 生成のヘッダー列を生成するために使用します |
| autospanLine | boolean | Camel 2.13/2.12.2: オプション - デフォルト値 = false - 有効にすると、最後の列が自動的に行末に改行されます。たとえば、コメントなどの場合、これにより、行にすべての文字と区切り文字を含めることができます。 |
| isOrdered | boolean | オプション - デフォルト値 = false - CSV の生成時にフィールドの順序を変更できます |
| quote | String | Camel 2.8.3/2.9: オプション - CSV の生成時にフィールドの引用符を指定できるようになりました。このアノテーションは、モデルのルートクラスに関連付けられており、一度宣言する必要があります。 |
| 引用 | boolean | *Camel 2.11:*optional - デフォルト値 = false - CSV 生成時のマーシャリング時に値 (およびヘッダー) を引用符で囲む必要があるかどうかを示します。 |
| endWithLineBreak | boolean | Camel 2.21: オプション - デフォルト値 = true - CSV 生成ファイルを改行で終了する必要があるかどうかを示します。 |
ケース 1: separator = ','
CSV レコード内のフィールド分離に使用されるセパレーターは ',' です。
10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009
10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500,
USD,08-01-2009
@CsvRecord( separator = "," )
public Class Order {
}
@CsvRecord( separator = "," )
public Class Order {
}
case 2 : separator = ';'
前のケースと比較して、ここでのセパレーターは ',' の代わりに ';'を使用しています。
10; J; Pauline; M; XD12345678; Fortis Dynamic 15/15; 2500; USD; 08-01-2009
@CsvRecord( separator = ";" )
public Class Order {
}
@CsvRecord( separator = ";" )
public Class Order {
}
case 3 : separator = '|'
前のケースと比較して、ここでのセパレーターは ';' の代わりに '|' を使用しています。
10| J| Pauline| M| XD12345678| Fortis Dynamic 15/15| 2500| USD| 08-01-2009
10| J| Pauline| M| XD12345678| Fortis Dynamic 15/15| 2500| USD|
08-01-2009
@CsvRecord( separator = "\\|" )
public Class Order {
}
@CsvRecord( separator = "\\|" )
public Class Order {
}
ケース 4: separator = '\",\"'
Camel 2.8.2 以前に該当
CSV レコードの解析対象フィールドに ',' または ';' が含まれる場合。これはセパレーターとしても使用されるため、Camel バインドにこのケースの処理方法を伝える別のストラテジー
を見つける必要があります。データを含むフィールドをコンマで定義するには、単純引用符または二重引用符を区切り文字として使用します
(例: '10', 'Street 10, NY', 'USA' or "10", "Street 10, NY", "USA")。
注意: この場合、単純または二重引用符である行の最初と最後の文字は bindy によって削除されます。
"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15" 2500","USD","08-01-2009"
"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15"
2500","USD","08-01-2009"
@CsvRecord( separator = "\",\"" )
public Class Order {
}
@CsvRecord( separator = "\",\"" )
public Class Order {
}
Camel 2.8.3/2.9 または never bindy から、レコードが一重引用符または二重引用符で囲まれているかどうかが自動的に検出され、CSV からオブジェクトにアンマーシャリングするときにそれらの引用符が自動的に削除されます。したがって、セパレーターに引用符を 含めず に、単に以下を実行するだけです。
"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15" 2500","USD","08-01-2009"
"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15"
2500","USD","08-01-2009"
@CsvRecord( separator = "," )
public Class Order {
}
@CsvRecord( separator = "," )
public Class Order {
}
Object から CSV にマーシャリングして引用符を使用する場合は、以下に示すように @CsvRecord の quote 属性を使用して、使用する引用符を指定する必要があることに注意してください。
@CsvRecord( separator = ",", quote = "\"" )
public Class Order {
}
@CsvRecord( separator = ",", quote = "\"" )
public Class Order {
}
case 5 : separator & skipfirstline
この機能は、クライアントがファイルの最初の行にデータフィールドの名前を入れる場合に役立ちます。
注文 ID、クライアント ID、名、姓、isin コード、商品名、数量、通貨、日付
解析プロセス中にこの最初の行をスキップする必要があることを bindy に通知するには、次の属性を使用します。
@CsvRecord(separator = ",", skipFirstLine = true)
public Class Order {
}
@CsvRecord(separator = ",", skipFirstLine = true)
public Class Order {
}
ケース 6: generateHeaderColumns
生成された CSV の最初の行に追加するには、次のようにアノテーションで属性 generateHeaderColumns を true に設定する必要があります。
@CsvRecord( generateHeaderColumns = true )
public Class Order {
}
@CsvRecord( generateHeaderColumns = true )
public Class Order {
}
その結果、アンマーシャリングプロセス中の Bindy は、次のような CSV を生成します。
注文 ID、クライアント ID、名、姓、isin コード、商品名、数量、通貨、日付
10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009
10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD,08-01-2009
case 7 : carriage return
camel-bindy が実行されるプラットフォームが Windows ではなく、Macintosh または Unix である場合には、次のように crlf プロパティーを変更できます。WINDOWS、UNIX、または MAC の 3 つの値を使用できます。
@CsvRecord(separator = ",", crlf="MAC")
public Class Order {
}
@CsvRecord(separator = ",", crlf="MAC")
public Class Order {
}
さらに、何らかの理由で別の行末文字を追加する必要がある場合は、crlf パラメーターを使用して指定できます。次の例では、コンマとそれに続く改行文字で行を終了できます。
@CsvRecord(separator = ",", crlf=",\n")
public Class Order {
}
@CsvRecord(separator = ",", crlf=",\n")
public Class Order {
}
ケース 8: isOrdered
モデルから CSV レコードを作成する際に従う順序が、解析時に使用される順序と異なる場合があります。次に、この場合、属性 isOrdered = true を使用して、DataField アノテーションの属性 position と組み合わせて指定できます。
備考 : pos はファイルの解析に使用され、stream は position を使用して CSV を生成します
48.5. 2.リンク リンクのコピーリンクがクリップボードにコピーされました!
リンクアノテーションを使用すると、オブジェクトを相互にリンクできます。
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| リンク | all | クラスとプロパティー |
| パラメーター名 | type | Info |
|---|---|---|
| linkType | LinkType | オプション - デフォルトの値は LinkType.oneToOne であるため、言及する義務はありません。 |
1 対 1 の関係のみが許可されます。
例: モデルクラス Client が Order クラスにリンクされている場合には、次のように Order クラスでアノテーション Link を使用します。
プロパティーリンク
クラス Client の場合:
クラスリンク
@Link
public class Client {
}
@Link
public class Client {
}
48.6. 3.DataField リンクのコピーリンクがクリップボードにコピーされました!
DataField アノテーションは、フィールドのプロパティーを定義します。各データフィールドは、レコード内の位置、タイプ (string、int、date など)、およびパターン (任意) によって識別されます
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| DataField | all | プロパティー |
| パラメーター名 | type | Info |
|---|---|---|
| pos | int | 必須 - フィールドの 入力 位置。1 から … までの桁数 - position パラメーターを参照してください。 |
| pattern | string | オプション - デフォルト値 = "" - Decimal、Date、 |
| 長さ | int | オプション - 固定長形式のフィールドの長さを表します |
| 精度 | int | オプション - 10 進数がフォーマット/解析されるときに使用される精度を表します |
| pattern | string | オプション - デフォルト値 = "" - Java フォーマッター (例では SimpleDateFormat) によってデータのフォーマット/検証に使用されます。パターンを使用する場合は、バインドデータ形式にロケールを設定することをお勧めします。us などの既知のロケールに設定するか、default を使用してプラットフォームのデフォルトロケールを使用します。デフォルトには Camel 2.14/2.13.3/2.12.5 が必要であることに注意してください。 |
| position | int | オプション - 生成された CSV 内のフィールドの位置 (出力メッセージ) が、入力位置 (pos) と比較して異なる必要がある場合に使用します。pos パラメーターを参照してください。 |
| 必須 | boolean | optional - default value = "false" |
| trim | boolean | optional - default value = "false" |
| defaultValue | string | Camel 2.10: オプション - デフォルト値 = "" - それぞれの CSV フィールドが空/利用できない場合のフィールドのデフォルト値を定義します |
| impliedDecimalSeparator | boolean | Camel 2.11: オプション - デフォルト値 = "false" - 指定された位置に暗黙の小数点があるかどうかを示します |
| lengthPos | int | Camel 2.11 : オプション - このフィールドの固定長を定義する固定長レコード内のデータフィールドを識別するために使用できます |
| align | string | オプション - デフォルト値 = "R" - テキストを固定長フィールド内で右または左に揃えます。値 R または L を使用してください |
| delimiter | string | Camel 2.11: オプション - 固定長レコード内の可変長フィールドの終わりを区切るために使用できます |
ケース 1: pos
このパラメーター/属性は、csv レコード内のフィールドの位置を表します
Position
この例でわかるように、位置は 1 から始まりますが、クラス Order では続きは 5 になります。2 から 4 までの数字はクラス Client で定義されています (以下を参照)。
位置は別のモデルクラスで継続する
ケース 2: pattern
パターンを使用すると、データの形式を強化または検証できます
Pattern
ケース 3: precision
精度は、数値の小数部分を定義する場合に役立ちます
精度
ケース 4: 出力で位置が異なる
position 属性は、生成された CSV レコードにフィールドを配置する方法を bindy に通知します。デフォルトでは、使用される位置は属性 pos で定義された位置に対応します。位置が異なる場合 (つまり、マーシャリングとアンマーシャリングを比較する非対称プロセスがあることを意味します)、position を使用してこれを指定できます。
以下に例を示します。
出力位置が異なる
アノテーション @DataField のこの属性は、アノテーション @CsvRecord の属性 isOrdered = true と組み合わせて使用する必要があります。
ケース 5: 必須
フィールドが必須の場合は、required 属性を true に設定して使用します。
必須
このフィールドがレコードに存在しない場合には、パーサーにより次の情報を含めてエラーが報告されます。
一部のフィールドが欠落しています (オプションまたは必須)、行:
case 6 : trim
フィールドの先頭および/または末尾にスペースがあり、処理する前に削除する必要がある場合は、trim 属性を true に設定してください。
Trim
case 7 : defaultValue
フィールドが定義されていない場合は、defaultValue 属性で示される値が使用されます
デフォルト値
この属性は、オプションのフィールドにのみ適用されます。
48.7. 4.FixedLengthRecord リンクのコピーリンクがクリップボードにコピーされました!
FixedLengthRecord アノテーションは、モデルのルートクラスを識別するために使用されます。これは、レコード = フォーマットされた固定長のデータを含むファイル/メッセージの行を表し、複数の子モデルクラスにリンクできます。フィールドのデータは右または左に位置合わせできるため、この形式は少し特殊です。
データのサイズがフィールドの長さを完全に満たしていない場合は、埋め込み文字を追加できます。
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| FixedLengthRecord | 固定: | クラス |
| パラメーター名 | type | Info |
|---|---|---|
| crlf | string | オプション - 可能な値 = WINDOWS、UNIX、MAC、またはカスタム。デフォルト値。WINDOWS - 使用するキャリッジリターン文字を定義できます。上記の 3 つ以外の値を指定すると、入力した値 (カスタム) が CRLF 文字として使用されます。このオプションはマーシャリング中にのみ使用されますが、アンマーシャリングでは、eol がカスタマイズされていない限り、JDK が提供するシステムのデフォルトの行区切り文字が使用されます |
| eol | string | オプション - 空の文字列である default=""。アンマーシャリング中に各レコードの後に行末を考慮して処理するために使用される文字 (オプション - デフォルト = "" は、他の行区切り文字が提供されない限り、JDK が提供するデフォルトの行区切り文字を使用するのに役立ちます)。このオプションは、アンマーシャリング中にのみ使用されます。マーシャリングでは、他の値が指定されていない限り、システムのデフォルトで提供される行区切り文字が WINDOWS として使用されます。 |
| paddingChar | char | mandatory - default value = ' ' |
| 長さ | int | 必須 = 固定長レコードのサイズ |
| hasHeader | boolean | Camel 2.11 - オプション - このタイプのレコードの前に、ファイル/ストリームの先頭にある単一のヘッダーレコードがあることを示します |
| hasFooter | boolean | Camel 2.11 - オプション - このタイプのレコードの後に、ファイル/ストリームの最後に単一のフッターレコードが続く可能性があることを示します |
| skipHeader | boolean | Camel 2.11 - オプション - ヘッダーレコードのマーシャリング/アンマーシャリングをスキップするようにデータ形式を設定します。プライマリーレコードでこのパラメーターを設定します (たとえば、ヘッダーやフッターではありません)。 |
| skipFooter | boolean | Camel 2.11 - オプション - フッターレコードのマーシャリング/アンマーシャリングをスキップするようにデータフォーマットを設定します。 |
| isHeader | boolean | Camel 2.11 - オプション - この FixedLengthRecord をヘッダーレコードとして識別します |
| isFooter | boolean | Camel 2.11 - オプション - この FixedLengthRecords をフッターレコードとして識別します |
| ignoreTrailingChars | boolean | Camel 2.11.1 - オプション - アンマーシャリング/解析時に、最後にマップされたフィールドを超える文字を無視できることを示します。 このアノテーションは、モデルのルートクラスに関連付けられており、一度宣言する必要があります。 |
hasHeader/hasFooter パラメーターは、isHeader/isFooter と相互に排他的です。レコードは、ヘッダー/フッターと、プライマリーの固定長レコードを両方に指定できません。
ケース 1: 単純な固定長レコード
この単純な例は、固定メッセージを解析/フォーマットするモデル設計方法を示しています
10A9PaulineMISINXD12345678BUYShare2500.45USD01-08-2009
10A9PaulineMISINXD12345678BUYShare2500.45USD01-08-2009
Fixed-simple
ケース 2: アラインメントとパディングのある固定長レコード
こちらの詳細な例は、フィールドの配置を定義する方法と、' ' here'' のパディング文字を割り当てる方法を示しています。
10A9 PaulineM ISINXD12345678BUYShare2500.45USD01-08-2009
10A9 PaulineM ISINXD12345678BUYShare2500.45USD01-08-2009
Fixed-padding-align
ケース 3: フィールドパディング
' ' の代わりに '0' をパディングする数値形式があるため、レコードに定義されたデフォルトのパディングをフィールドに適用できない場合があります。この場合、モデルで属性 paddingField を使用してこの値を設定できます。
10A9 PaulineM ISINXD12345678BUYShare000002500.45USD01-08-2009
10A9 PaulineM ISINXD12345678BUYShare000002500.45USD01-08-2009
Fixed-padding-field
ケース 4: 区切り文字付きの固定長レコード
固定長レコードでは、レコード内のコンテンツが区切られている場合があります。次の例では、firstName フィールドと lastName フィールドが '^' 文字で区切られています。
10A9Pauline^M^ISINXD12345678BUYShare000002500.45USD01-08-2009
10A9Pauline^M^ISINXD12345678BUYShare000002500.45USD01-08-2009
Fixed-delimited
Camel 2.11 では、固定長レコードの pos 値は、正確な列番号の代わりに序数の連続した値を使用してオプションで定義できます。
ケース 5: レコード定義フィールド長の固定長レコード
固定長レコードには、同じレコード内の別のフィールドで必要とされる長さを定義するフィールドが含まれる場合があります。次の例では、instrumentNumber フィールド値の長さは、レコード内の instrumentNumberLen フィールドの値によって定義されます。
10A9Pauline^M^ISIN10XD12345678BUYShare000002500.45USD01-08-2009
10A9Pauline^M^ISIN10XD12345678BUYShare000002500.45USD01-08-2009
Fixed-delimited
ケース 6: ヘッダーとフッター付きの固定長レコード
Bindy は、モデルの一部として設定されている固定長のヘッダーおよびフッターレコードを検出します。ただし、アノテーション付きのクラスが、プライマリー@FixedLengthRecord クラスと同じパッケージに存在するか、設定されたスキャンパッケージの 1 つに含まれている必要があります。次のテキストは、ヘッダーレコードとフッターレコードで囲まれた 2 つの固定長レコードを示しています。
101-08-2009 10A9 PaulineM ISINXD12345678BUYShare000002500.45USD01-08-2009 10A9 RichN ISINXD12345678BUYShare000002700.45USD01-08-2009 9000000002
101-08-2009
10A9 PaulineM ISINXD12345678BUYShare000002500.45USD01-08-2009
10A9 RichN ISINXD12345678BUYShare000002700.45USD01-08-2009
9000000002
Fixed-header-and-footer-main-class
ケース 7: 固定長レコードの解析時にコンテンツをスキップする(Camel 2.11.1)
ターゲットユースケースに必要以上の情報を含む、固定長レコードを提供するシステムと統合するのが一般的です。この状況では、不要なフィールドの宣言と解析をスキップすると便利です。これに対応するために、次に宣言されたフィールドの pos 値が最後に解析されたフィールドのカーソル位置を超えている場合には、Bindy により、レコード内で次にマップされたフィールドに移動されます。対象のフィールドに (順序値ではなく) 絶対 pos 位置を使用すると、Bindy は 2 つのフィールド間のコンテンツをスキップします。
同様に、先のフィールドに対象となるコンテンツがない場合があります。この場合には、@FixedLengthRecord 宣言で ignoreTrailingChars プロパティーを設定して、最後にマップされたフィールド以降のすべての解析をスキップするように Bindy に指示できます。
48.8. 5.メッセージ リンクのコピーリンクがクリップボードにコピーされました!
Message アノテーションは、キーと値のペアフィールドを含むモデルのクラスを識別するために使用されます。この種の形式は、主に Financial Exchange Protocol Messages (FIX) で使用されます。いずれの場合も、このアノテーションは、データがキーによって識別される他の形式に使用できます。キーペアの値は、区切り記号で互いに区切られます。区切り文字には、タブ区切り記号 (Unicode 表現: \u0009) または見出しの開始 (Unicode 表現: \u0001) などの特殊文字を使用できます。
*"FIX information"*
*"FIX information"*
FIX の詳細については、Web サイト http://www.fixprotocol.org/ を参照してください。FIX メッセージを操作するには、モデルに、Order クラスである可能性があるルートメッセージクラスにリンクされた Header クラスと Trailer クラスが含まれている必要があります。これは必須ではありませんが、camel-bindy を、quickFix プロジェクト (http://www.quickfixj.org/) に基づく修正ゲートウェイである camel-fix と組み合わせて使用する場合に非常に役立ちます。
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| メッセージ | キーと値のペア。 | Class |
| パラメーター名 | type | Info |
|---|---|---|
| pairSeparator | string | 必須 - '=' または ';' または 'anything' |
| keyValuePairSeparair | string | 必須 - '\u0001、'\u0009'、'#' または 'anything' |
| crlf | string | オプション - 可能な値 = WINDOWS、UNIX、MAC、またはカスタム。デフォルト値 = WINDOWS - 使用する復帰文字を定義できます。上記の 3 つ以外の値を指定すると、入力した値 (カスタム) が CRLF 文字として使用されます |
| type | string | オプション - メッセージのタイプを定義します (FIX、EMX など)。 |
| version | string | オプション - メッセージのバージョン (例: 4.1) |
| isOrdered | boolean | オプション - デフォルト値 = false - FIX メッセージの生成時にフィールドの順序を変更できます。このアノテーションは、モデルのメッセージクラスに関連付けられており、一度宣言する必要があります。 |
ケース 1: separator = 'u0001'
FIX メッセージでキーと値のペアフィールドを分離するために使用される区切り文字は、ASCII 01 文字または Unicode 形式の \u0001 です。Java ランタイムエラーを回避するには、この文字をもう一度エスケープする必要があります。以下は例です。
8=FIX.4.1 9=20 34=1 35=0 49=INVMGR 56=BRKR 1=BE.CHM.001 11=CHM0001-01 22=4 ...
8=FIX.4.1 9=20 34=1 35=0 49=INVMGR 56=BRKR 1=BE.CHM.001 11=CHM0001-01
22=4 ...
およびアノテーションの使用方法
FIX - メッセージ
@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1")
public class Order {
}
@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1")
public class Order {
}
*Look at test cases*
*Look at test cases*
タブなどの ASCII 文字は、WIKI ページでは表示できません。そのため、camel-bindy のテストケースを見て、FIX メッセージ (src\test\data\fix\fix.txt) と Order、Trailer、Header クラス (src\test\java\) がどのように見えるかを正確に確認してください。org\apache\camel\dataformat\bindy\model\fix\simple\Order.java)
48.9. 6.KeyValuePairField リンクのコピーリンクがクリップボードにコピーされました!
KeyValuePairField アノテーションは、キーと値のペアフィールドのプロパティーを定義します。各 KeyValuePairField は、タグ (= キー) とそれに関連付けられた値、タイプ (文字列、整数、日付など)、オプションのパターン、およびフィールドが必須かどうかによって識別されます
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| KeyValuePairField | キーと値のペア - FIX | プロパティー |
| パラメーター名 | type | Info |
|---|---|---|
| tag | int | 必須 - メッセージ内のフィールドを識別する数字 - 一意でなければなりません |
| pattern | string | オプション - デフォルト値 = "" - Decimal、Date などのフォーマットに使用されます |
| 精度 | int | オプション - 桁数 - 10 進数がフォーマット/解析されるときに使用される精度を表します |
| position | int | オプション - FIX メッセージ内のキー/タグの位置が異なる必要がある場合に使用する必要があります |
| 必須 | boolean | optional - default value = "false" |
| impliedDecimalSeparator | boolean | Camel 2.11: オプション - デフォルト値 = "false" - 指定された位置に暗黙の小数点があるかどうかを示します |
case 1 : tag
このパラメーターは、メッセージ内のフィールドのキーを表します
FIX メッセージ - タグ
ケース 2: 出力での別の位置
FIX メッセージに入れるタグ/キーを事前定義された順序に従ってソートする必要がある場合は、アノテーション @KeyValuePairField の属性 position を使用します。
FIX メッセージ - タグ - 並べ替え
48.10. 7.セクション リンクのコピーリンクがクリップボードにコピーされました!
固定長レコードの FIX メッセージでは、情報の表現にさまざまなセクション (ヘッダー、ボディ、およびセクション) があるのが一般的です。アノテーション @Section の目的は、モデルのどのクラスがヘッダー (= セクション 1)、ボディー (= セクション 2)、およびフッター (= セクション 3) を表しているかを bindy に通知することです。
このアノテーションには、1 つの属性/パラメーターのみが存在します。
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| セクション | FIX | Class |
| パラメーター名 | type | Info |
|---|---|---|
| number | int | セクション位置を識別する桁数 |
ケース 1: セクション
ヘッダーセクションの定義
FIX メッセージ - セクション - ヘッダー
ボディーセクションの定義
FIX メッセージ - セクション - 本文
フッターセクションの定義:
FIX メッセージ - セクション - フッター
48.11. 8.OneToMany リンクのコピーリンクがクリップボードにコピーされました!
アノテーション @OneToMany の目的は、POJO クラスで定義された List<?> フィールドを操作できるようにすること、または反復グループを含むレコードから操作できるようにすることです。
*Restrictions OneToMany*
*Restrictions OneToMany*
bindy の 1 対多では、階層の複数のレベルで定義された繰り返しを処理できないことに注意してください。
OneToMany の関係は、次の場合にのみ機能します。
- 反復グループ (= タグ/キーのグループ) を含む FIX メッセージの読み取り
- 反復データを含む CSV の生成
| アノテーション名 | レコードの種類 | レベル |
|---|---|---|
| OneToMany | all | プロパティー |
| パラメーター名 | type | Info |
|---|---|---|
| mappedTo | string | オプション - 文字列 - List<Type of the Class> の型に関連付けられたクラス名 |
ケース 1: 反復データで CSV を生成する
必要な CSV 出力は次のとおりです。
Claus,Ibsen,Camel in Action 1,2010,35 Claus,Ibsen,Camel in Action 2,2012,35 Claus,Ibsen,Camel in Action 3,2013,35 Claus,Ibsen,Camel in Action 4,2014,35
Claus,Ibsen,Camel in Action 1,2010,35
Claus,Ibsen,Camel in Action 2,2012,35
Claus,Ibsen,Camel in Action 3,2013,35
Claus,Ibsen,Camel in Action 4,2014,35
備考 : 反復データは本のタイトルとその発行日に関するもので、姓名と年齢が一般的です。
そして、これをモデル化するために使用されるクラス。Author クラスには、書籍リストが含まれています。
反復データを含む CSV を生成する
とてもシンプルですね!!!
ケース 2: タグ/キーのグループを含む FIX メッセージの読み取り
モデルで処理するメッセージは次のとおりです。
タグ 22、48、および 54 が繰り返されます
およびコード
タグ/キーのグループを含む FIX メッセージの読み取り
48.12. 9.BindyConverter リンクのコピーリンクがクリップボードにコピーされました!
アノテーション @BindyConverter の目的は、フィールドレベルで使用されるコンバーターを定義することです。提供されたクラスは、Format インターフェイスを実装する必要があります。
48.13. 10.FormatFactories リンクのコピーリンクがクリップボードにコピーされました!
アノテーション @FormatFactories の目的は、一連のコンバーターをレコードレベルで定義することです。提供されるクラスは、FormatFactoryInterface インターフェイスを実装する必要があります。
48.14. サポートされるデータタイプ リンクのコピーリンクがクリップボードにコピーされました!
DefaultFormatFactory は、提供された FormattingOptions に基づいてインターフェイス FormatFactoryInterface のインスタンスを返して、次のデータ型のフォーマットを使用できるようにします。
- BigDecimal
- BigInteger
- Boolean
- Byte
- Character
- 日付
- double
- Enum
- Float
- Integer
- LocalDate (Java 8、2.18.0 以降)
- LocalDateTime (java 8, since 2.18.0)
- LocalTime (java 8, since 2.18.0)
- Long
- Short
- String
DefaultFormatFactory は、使用中のレジストリー (Spring または JNDI など) で FactoryRegistry のインスタンスを提供してオーバーライドできます。
48.15. Java DSL を使用 リンクのコピーリンクがクリップボードにコピーされました!
次のステップでは、このレコードタイプに関連付けられた DataFormat bindy クラスをインスタンス化し、Java パッケージ名をパラメーターとして提供します。
たとえば、次の例では、com.acme.model パッケージ名で設定されたクラス BindyCsvDataFormat (CSV レコードタイプに関連付けられたクラスに対応) を使用して、このパッケージで設定されたモデルオブジェクトを初期化します。
48.15.1. ロケールの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bindy は、次のようなデータ形式でのロケールの設定をサポートしています。
または、プラットフォームのデフォルトロケールを使用するには、ロケール名として default を使用します。これには Camel 2.14/2.13.3/2.12.5 が必要であることに注意してください。
古いリリースの場合は、示されているように Java コードを使用して設定できます
48.15.2. アンマーシャリング リンクのコピーリンクがクリップボードにコピーされました!
from("file://inbox")
.unmarshal(bindy)
.to("direct:handleOrders");
from("file://inbox")
.unmarshal(bindy)
.to("direct:handleOrders");
または、Spring XML ファイルなどのレジストリーで定義できるデータ形式への名前付き参照を使用できます。
from("file://inbox")
.unmarshal("myBindyDataFormat")
.to("direct:handleOrders");
from("file://inbox")
.unmarshal("myBindyDataFormat")
.to("direct:handleOrders");
Camel ルートは、受信トレイディレクトリー内のファイルをピックアップし、CSV レコードをモデルオブジェクトのコレクションにアンマーシャリングして、handleOrders によって参照されるルートにコレクション
を送信します。
返されるコレクションは、List of Map オブジェクト です。リスト内の各 Map には、CSV の各行からマーシャリングされたモデルオブジェクトが含まれています。理由は、各行が複数のオブジェクトに対応している可能性 があるためです。1 行にオブジェクト 1 つだけが返されることを想定している場合には、混乱を招く可能性があります。
各オブジェクトは、そのクラス名を使用して取得できます。
ルート内で処理するためにこのマップから単一の Order オブジェクトを抽出すると仮定する場合に、次のようにスプリッターとプロセッサーの組み合わせを使用できます。
Bindy は CHARSET_NAME プロパティーまたは CHARSET_NAME ヘッダーを Exchange インターフェイスで定義されているように使用して、アンマーシャリングのために受信した入力ストリームの文字セット変換を行うことに注意してください。一部のプロデューサ (file-endpoint など) では、文字セットを定義できます。文字セット変換は、このプロデューサによってすでに実行されている可能性があります。アンマーシャルに送信する前に、エクスチェンジからこのプロパティーまたはヘッダーを削除する必要がある場合があります。削除しないと、変換が 2 回行われ、想定外の結果が生じる可能性があります。
from("file://inbox?charset=Cp922")
.removeProperty(Exchange.CHARSET_NAME)
.unmarshal("myBindyDataFormat")
.to("direct:handleOrders");
from("file://inbox?charset=Cp922")
.removeProperty(Exchange.CHARSET_NAME)
.unmarshal("myBindyDataFormat")
.to("direct:handleOrders");
48.15.3. マーシャリング リンクのコピーリンクがクリップボードにコピーされました!
モデルオブジェクトのコレクションから CSV レコードを生成するには、次のルートを作成します。
from("direct:handleOrders")
.marshal(bindy)
.to("file://outbox")
from("direct:handleOrders")
.marshal(bindy)
.to("file://outbox")
48.16. Spring XML の使用 リンクのコピーリンクがクリップボードにコピーされました!
これにより、お気に入りの DSL 言語として Spring を使用して、非常に簡単に camel-bindy に使用するルートを宣言できます。次の例は、最初のルートがファイルからレコードを取得し、コンテンツをアンマーシャリングしてモデルにバインドする 2 つのルートを示しています。結果は pojo に送信され (特別なことは何も行われません)、キューに入れられます。
2 番目のルートは、キューから pojo を抽出し、コンテンツをマーシャリングして、csv レコードを含むファイルを生成します。上記の例は、Camel 2.16 以降を使用するためのものです。
spring dsl
モデルクラスが serializable を実装していることを確認してください。実装されていない場合には、キューマネージャーでエラーが発生します
48.17. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
camel ルートで Bindy を使用するには、このデータ形式を実装する camel-bindy に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加するだけで、バージョン番号を最新かつ最高のリリースに置き換えます (最新バージョンのダウンロードページを参照してください)。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-bindy</artifactId> <version>x.x.x</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-bindy</artifactId>
<version>x.x.x</version>
</dependency>
第49章 Camel で OSGi ブループリントを使用する リンクのコピーリンクがクリップボードにコピーされました!
ブループリント用のカスタム XML 名前空間が作成され、優れた XML ダイアレクトを利用できるようになりました。ブループリントのカスタム名前空間はまだ標準化されていないため、この名前空間は、Apache Karaf で使用される Apache Aries ブループリントの実装でのみ使用できます。
49.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
XML スキーマは Spring のものとほとんど同じであるため、ドキュメント全体で Spring XML を参照しているすべての xml スニペットは Blueprint ルートにも適用されます。
ブループリントを使用した非常に単純なルート定義を次に示します。
この時点で、サポートされている xml 要素についていくつかの制限があります (Spring xml 構文と比較して)。
- beanPostProcessor は Spring に固有であり、許可されていません
ただし、アプリケーションを OSGi 環境にデプロイするときにブループリントを使用すると、いくつかの利点があります。
- 新しい camel バージョンにアップグレードする場合、名前空間を変更する必要はありません。バンドルによってインポートされた camel パッケージに基づいて正しいバージョンが選択されるためです。
- カスタム名前空間とバンドルに関する起動順序の問題はありません
- Blueprint プロパティープレースホルダーを使用できます
49.2. camel-blueprint の使用 リンクのコピーリンクがクリップボードにコピーされました!
OSGi で camel-blueprint を活用するには、camel-core とその依存関係に加えて、Aries Blueprint バンドルと camel-blueprint バンドルのみが必要です。
Karaf を使用する場合は、必要なすべてのバンドルをインストールする camel-blueprint という名前の機能を使用できます。
第50章 Bonita コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.19 以降で利用可能
リモートの Bonita BPM プロセスエンジンとの通信に使用されます。
50.1. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
bonita://[operation]?[options]
bonita://[operation]?[options]
operation は、Bonita で実行する特定のアクションです。
50.2. 一般的なオプション リンクのコピーリンクがクリップボードにコピーされました!
Bonita コンポーネントにはオプションがありません。
Bonita エンドポイントは、URI 構文を使用して設定されます。
bonita:operation
bonita:operation
パスおよびクエリーパラメーターを使用します。
50.2.1. パスパラメーター (1 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| operation | 必須 必要な操作 | BonitaOperation |
50.2.2. クエリーパラメーター(9 パラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| hostname (consumer) | Bonita エンジンが実行されるホスト名 | localhost | String |
| port (consumer) | Bonita エンジンをホストするサーバーのポート | 8080 | String |
| processName (consumer) | 操作に関係するプロセスの名前 | String | |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| password (security) | Bonita エンジンを認証するためのパスワード。 | String | |
| username (security) | Bonita エンジンを認証するためのユーザー名。 | String |
50.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 2 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.bonita.enabled | bonita コンポーネントを有効にする | true | Boolean |
| camel.component.bonita.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
50.4. ボディーコンテンツ リンクのコピーリンクがクリップボードにコピーされました!
startCase 操作の場合、入力変数はボディーメッセージから取得されます。これには Map<String,Serializable> が含まれている必要があります。
50.5. 例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、Bonita で新しいケースを開始します。
from("direct:start").to("bonita:startCase?hostname=localhost&port=8080&processName=TestProcess&username=install&password=install")
from("direct:start").to("bonita:startCase?hostname=localhost&port=8080&processName=TestProcess&username=install&password=install")
50.6. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
Camel ルートで Bonita を使用するには、コンポーネントを実装する camel-bonita に依存関係を追加する必要があります。
Maven を使用する場合は、pom.xml に以下を追加して、バージョン番号を最新かつ最高のリリースに置き換えます (最新バージョンのダウンロードページを参照してください)。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-bonita</artifactId> <version>x.x.x</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-bonita</artifactId>
<version>x.x.x</version>
</dependency>
第51章 Boon DataFormat リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.16 以降で利用可能
Boon は、Boon JSON マーシャリングライブラリーを使用して JSON ペイロードを Java オブジェクトにアンマーシャリングするか、Java オブジェクトを JSON ペイロードにマーシャリングするデータ形式です。Boon は、現在使用されている他の一般的なパーサーよりもシンプルで 高速なパーサー を目指しています。
51.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
Boon データ形式は、以下にリストされている 3 個のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 |
|---|---|---|---|
| unmarshalTypeName |
| アンアームシャリング時に使用する Java 型のクラス名 | |
| useList |
|
| Map の List または Pojo の List にアンマーシャリングします。 |
| contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |
51.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 4 つのオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.dataformat.boon.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
| camel.dataformat.boon.enabled | boon データフォーマットを有効にする | true | Boolean |
| camel.dataformat.boon.unmarshal-type-name | アンアームシャリング時に使用する Java 型のクラス名 | String | |
| camel.dataformat.boon.use-list | Map の List または Pojo の List にアンマーシャリングします。 | false | Boolean |
ND
51.3. Java DSL を使用 リンクのコピーリンクがクリップボードにコピーされました!
DataFormat boonDataFormat = new BoonDataFormat("com.acme.model.Person");
from("activemq:My.Queue")
.unmarshal(boonDataFormat)
.to("mqseries:Another.Queue");
DataFormat boonDataFormat = new BoonDataFormat("com.acme.model.Person");
from("activemq:My.Queue")
.unmarshal(boonDataFormat)
.to("mqseries:Another.Queue");
51.4. ブループリント XML の使用 リンクのコピーリンクがクリップボードにコピーされました!
51.5. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-boon</artifactId> <version>x.x.x</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-boon</artifactId>
<version>x.x.x</version>
</dependency>
第52章 Box コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.14 以降で利用可能
Box コンポーネントは、https://github.com/box/box-java-sdk を使用してアクセスできるすべての Box.com API へのアクセスを提供します。ファイルのアップロードとダウンロード、フォルダーの作成、編集、管理などのメッセージを作成できます。また、ユーザーアカウントの更新やエンタープライズアカウントの変更などをポーリングできる API もサポートしています。
Box.com では、すべてのクライアントアプリケーション認証に OAuth2.0 を使用する必要があります。アカウントで camel-box を使用するには、https://developer.box.com の Box.com 内で新しいアプリケーションを作成する必要があります。Box アプリケーションのクライアント ID とシークレットは、現在のユーザーを必要とする Box API へのアクセスを許可します。ユーザーアクセストークンは、エンドユーザーの API によって生成および管理されます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-box</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-box</artifactId>
<version>${camel-version}</version>
</dependency>
52.1. 接続認証の種類 リンクのコピーリンクがクリップボードにコピーされました!
Box コンポーネントは、3 種類の認証済み接続をサポートしています。
52.1.1. 標準認証 リンクのコピーリンクがクリップボードにコピーされました!
標準認証 は、OAuth 2.0 three-legged 認証プロセス を使用して、Box.com との接続を認証します。このタイプの認証により、Box 管理対象ユーザー と 外部ユーザー は、Box コンポーネントを介して Box コンテンツにアクセスし、編集し、保存することができます。
52.1.2. アプリケーションエンタープライズ認証 リンクのコピーリンクがクリップボードにコピーされました!
App Enterprise Authentication は、OAuth 2.0 と JSON Web トークン (JWT) を使用して、Box アプリケーション の サービスアカウント として接続を認証します。このタイプの認証により、サービスアカウントは、Box コンポーネントを介して Box アプリケーション の Box コンテンツにアクセスし、編集し、保存することができます。
52.1.3. アプリユーザー認証 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションユーザー認証 は、OAuth 2.0 と JSON Web トークン (JWT) を使用して、Box アプリケーション の アプリユーザー としての接続を認証します。このタイプの認証により、アプリユーザーは、Box コンポーネントを介して Box アプリケーション で Box コンテンツにアクセスし、編集し、保存することができます。
52.2. Box のオプション リンクのコピーリンクがクリップボードにコピーされました!
Box コンポーネントは、以下に示す 2 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有設定を使用するには | BoxConfiguration | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Box エンドポイントは、URI 構文を使用して設定されます。
box:apiName/methodName
box:apiName/methodName
パスおよびクエリーパラメーターを使用します。
52.2.1. パスパラメーター (2 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| apiName | 必須 操作の種類 | BoxApiName | |
| methodName | 必須: 選択した操作に使用するサブ操作 | String |
52.2.2. クエリーパラメーター (20 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| clientId (common) | Box アプリケーションのクライアント ID | String | |
| enterpriseId (common) | App Enterprise に使用するエンタープライズ ID。 | String | |
| inBody (common) | ボディにて交換で渡されるパラメーターの名前を設定します。 | String | |
| userId (common) | アプリユーザーに使用するユーザー ID。 | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| httpParams (advanced) | プロキシーホストなどの設定用のカスタム HTTP パラメーター | Map | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| accessTokenCache (security) | アクセストークンを保存および取得するためのカスタムアクセストークンキャッシュ。 | IAccessTokenCache | |
| clientSecret (security) | Box アプリケーションのクライアントシークレット | String | |
| encryptionAlgorithm (security) | JWT の暗号化アルゴリズムのタイプ。サポートされているアルゴリズム: RSA_SHA_256 RSA_SHA_384 RSA_SHA_512 | RSA_SHA_256 | EncryptionAlgorithm |
| maxCacheEntries (security) | キャッシュ内のアクセストークンの最大数。 | 100 | int |
| authenticationType (authentication) | 接続の認証の種類。認証の種類: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - JSON Web トークンを使用した OAuth 2.0 | APP_USER_AUTHENTICATION | String |
| privateKeyFile (security) | JWT 署名を生成するための秘密鍵。 | String | |
| privateKeyPassword (security) | 秘密鍵のパスワード。 | String | |
| publicKeyId (security) | JWT 署名を検証するための公開鍵の ID。 | String | |
| sslContextParameters (security) | SSLContextParameters を使用してセキュリティーを設定する場合。 | SSLContextParameters | |
| userName (security) | ボックスのユーザー名を指定する必要があります | String | |
| userPassword (security) | Box ユーザーのパスワード。authSecureStorage が設定されていない場合は指定する必要があり、最初の呼び出しで null を返す | String |
52.3. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 17 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.box.configuration.access-token-cache | アクセストークンを保存および取得するためのカスタムアクセストークンキャッシュ。 | IAccessTokenCache | |
| camel.component.box.configuration.api-name | 実行する操作の種類 | BoxApiName | |
| camel.component.box.configuration.authentication-type | 接続の認証の種類。認証の種類: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - JSON Web トークンを使用した OAuth 2.0 | APP_USER_AUTHENTICATION | String |
| camel.component.box.configuration.client-id | Box アプリケーションのクライアント ID | String | |
| camel.component.box.configuration.client-secret | Box アプリケーションのクライアントシークレット | String | |
| camel.component.box.configuration.enterprise-id | App Enterprise に使用するエンタープライズ ID。 | String | |
| camel.component.box.configuration.http-params | プロキシーホストなどの設定用のカスタム HTTP パラメーター | Map | |
| camel.component.box.configuration.method-name | 選択した操作に使用するサブ操作 | String | |
| camel.component.box.configuration.private-key-file | JWT 署名を生成するための秘密鍵。 | String | |
| camel.component.box.configuration.private-key-password | 秘密鍵のパスワード。 | String | |
| camel.component.box.configuration.public-key-id | JWT 署名を検証するための公開鍵の ID。 | String | |
| camel.component.box.configuration.ssl-context-parameters | SSLContextParameters を使用してセキュリティーを設定する場合。 | SSLContextParameters | |
| camel.component.box.configuration.user-id | アプリユーザーに使用するユーザー ID。 | String | |
| camel.component.box.configuration.user-name | ボックスのユーザー名を指定する必要があります | String | |
| camel.component.box.configuration.user-password | Box ユーザーのパスワード。authSecureStorage が設定されていない場合は指定する必要があり、最初の呼び出しで null を返す | String | |
| camel.component.box.enabled | ボックスコンポーネントを有効にする | true | Boolean |
| camel.component.box.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
52.4. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
box:apiName/methodName
box:apiName/methodName
apiName は次のいずれかです。
- コラボレーション
- コメント
- event-logs
- files
- folders
- groups
- events
- search
- tasks
- users
52.5. プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーエンドポイントは、エンドポイント 接頭辞の後にエンドポイント名と次に説明する関連オプションを使用できます。一部のエンドポイントには省略形のエイリアスを使用できます。エンドポイント URI には接頭辞が含まれている必要があります。
必須ではないエンドポイントオプションは [] で示されます。エンドポイントに必須のオプションがない場合、[] オプションのセットの 1 つを提供する必要があります。プロデューサエンドポイントは、特別なオプション inBody を 使用することもできます。このオプションには、値が Camel Exchange In メッセージに含まれるエンドポイントオプションの名前が含まれている必要があります。
エンドポイントオプションは、エンドポイント URI またはメッセージヘッダーで動的に指定できます。メッセージヘッダー名は CamelBox.<option> の形式である必要があります。inBody オプションはメッセージヘッダーをオーバーライドすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelBox.option ヘッダーをオーバーライドします。
エンドポイント URI またはメッセージヘッダーのオプション defaultRequest に値が指定されていない場合は、null と見なされます。null 値は、他のオプションが一致するエンドポイントを満たさない場合にのみ使用されることに注意してください。
Box API エラーの場合、エンドポイントは com.box.sdk.BoxAPIException から生成された例外が原因で RuntimeCamelException を出力します。
52.5.1. エンドポイント接頭辞 collaborations リンクのコピーリンクがクリップボードにコピーされました!
Box コラボレーションの詳細については、https://developer.box.com/reference#collaboration-object を参照してください。 次のエンドポイントは、次のように接頭辞 collaborations を使用して呼び出すことができます。
box:collaborations/endpoint?[options]
box:collaborations/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| addFolderCollaboration | add | folderId、コラボレーター、ロール | com.box.sdk.BoxCollaboration |
| addFolderCollaborationByEmail | addByEmail | folderId、電子メール、ロール | com.box.sdk.BoxCollaboration |
| deleteCollaboration | delete | collaborationId | |
| getFolderCollaborations | コラボレーション | folderId | java.util.Collection |
| getPendingCollaborations | pendingCollaborations | java.util.Collection | |
| getCollaborationInfo | info | collaborationId | com.box.sdk.BoxCollaboration.Info |
| updateCollaborationInfo | updateInfo | collaborationId, info | com.box.sdk.BoxCollaboration |
コラボレーション の URI オプション
| 名前 | タイプ |
|---|---|
| collaborationId | String |
| コラボレーター | com.box.sdk.BoxCollaborator |
| role | com.box.sdk.BoxCollaboration.Role |
| folderId | String |
| | String |
| info | com.box.sdk.BoxCollaboration.Info |
52.5.2. エンドポイント接頭辞 comments リンクのコピーリンクがクリップボードにコピーされました!
Box コメントの詳細については、https://developer.box.com/reference#comment-object を参照してください。 次のエンドポイントは、次のように接頭辞 comments を使用して呼び出すことができます。
box:comments/endpoint?[options]
box:comments/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| addFileComment | add | fileId, message | com.box.sdk.BoxFile |
| changeCommentMessage | updateMessage | commentId, message | com.box.sdk.BoxComment |
| deleteComment | delete | commentId | |
| getCommentInfo | info | commentId | com.box.sdk.BoxComment.Info |
| getFileComments | コメント | fileId | java.util.List |
| replyToComment | 応答 | commentId, message | com.box.sdk.BoxComment |
コラボレーション の URI オプション
| 名前 | タイプ |
|---|---|
| commentId | String |
| fileId | String |
| message | String |
52.5.3. エンドポイント接頭辞 events-logs リンクのコピーリンクがクリップボードにコピーされました!
Box イベントログの詳細については、https://developer.box.com/reference#events を参照してください。次のエンドポイントは、次のように接頭辞 event-logs で呼び出すことができます。
box:event-logs/endpoint?[options]
box:event-logs/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| getEnterpriseEvents | events | position, after, before, [types] | java.util.List |
イベントログ の URI オプション
| 名前 | タイプ |
|---|---|
| position | String |
| after | Date |
| before | Date |
| types | com.box.sdk.BoxEvent.Types[] |
52.5.4. エンドポイント接頭辞 files リンクのコピーリンクがクリップボードにコピーされました!
Box ファイルの詳細については、https://developer.box.com/reference#file-object を参照してください。次のエンドポイントは、次のように接頭辞 files を使用して呼び出すことができます。
box:files/endpoint?[options]
box:files/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| uploadFile | upload | parentFolderId, content, fileName, [created], [modified], [size], [listener] | com.box.sdk.BoxFile |
| downloadFile | ダウンロード | fileId, output, [rangeStart], [rangeEnd], [listener] | java.io.OutputStream |
| copyFile | copy | fileId, destinationFolderId, [newName] | com.box.sdk.BoxFile |
| moveFile | move | fileId, destinationFolderId, [newName] | com.box.sdk.BoxFile |
| renameFile | rename | fileId, newFileName | com.box.sdk.BoxFile |
| createFileSharedLink | リンク | fileId, access, [unshareDate], [permissions] | com.box.sdk.BoxSharedLink |
| deleteFile | delete | fileId | |
| uploadNewFileVersion | uploadVersion | fileId, fileContent, [modified], [fileSize], [listener] | com.box.boxsdk.BoxFile |
| promoteFileVersion | promoteVersion | fileId, version | com.box.sdk.BoxFileVersion |
| getFileVersions | versions | fileId | java.util.Collection |
| downloadPreviousFileVersions | downloadVersion | fileId, version, output, [listener] | java.io.OutputStream |
| deleteFileVersion | deleteVersion | fileId, version | |
| getFileInfo | info | fileId, fields | com.box.sdk.BoxFile.Info |
| updateFileInfo | updateInfo | fileId, info | com.box.sdk.BoxFile |
| createFileMetadata | createMetadata | fileId, metadata, [typeName] | com.box.sdk.Metadata |
| getFileMetadata | metadata | fileId, [typeName] | com.box.sdk.Metadata |
| updateFileMetadata | updateMetadata | fileId, metadata | com.box.sdk.Metadata |
| deleteFileMetadata | deleteMetadata | fileId | |
| getDownloadUrl | url | fileId | java.net.URL |
| getPreviewLink | preview | fileId | java.net.URL |
| getFileThumbnail | thumbnail | fileId, fileType, minWidth, minHeight, maxWidth, maxHeight | byte[] |
ファイル の URI オプション
| 名前 | タイプ |
|---|---|
| parentFolderId | String |
| content | java.io.InputStream |
| fileName | String |
| created | Date |
| modified | Date |
| size | Long |
| listener | com.box.sdk.ProgressListener |
| output | java.io.OutputStream |
| rangeStart | Long |
| rangeEnd | Long |
| outputStreams | java.io.OutputStream[] |
| destinationFolderId | String |
| newName | String |
| fields | String[] |
| info | com.box.sdk.BoxFile.Info |
| fileSize | Long |
| version | Integer |
| access | com.box.sdk.BoxSharedLink.Access |
| unshareDate | Date |
| permissions | com.box.sdk.BoxSharedLink.Permissions |
| fileType | com.box.sdk.BoxFile.ThumbnailFileType |
| minWidth | Integer |
| minHeight | Integer |
| maxWidth | Integer |
| maxHeight | Integer |
| metadata | com.box.sdk.Metadata |
| typeName | String |
52.5.5. エンドポイント接頭辞 folders リンクのコピーリンクがクリップボードにコピーされました!
Box フォルダーの詳細については、https://developer.box.com/reference#folder-object を参照してください。次のエンドポイントは、次のように接頭辞 folders を使用して呼び出すことができます。
box:folders/endpoint?[options]
box:folders/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| getRootFolder | root | com.box.sdk.BoxFolder | |
| createFolder | create | parentFolderId, folderName | com.box.sdk.BoxFolder |
| createFolder | create | parentFolderId, path | com.box.sdk.BoxFolder |
| copyFolder | copy | folderId, destinationfolderId, [newName] | com.box.sdk.BoxFolder |
| moveFolder | move | folderId, destinationFolderId, newName | com.box.sdk.BoxFolder |
| renameFolder | rename | folderId, newFolderName | com.box.sdk.BoxFolder |
| createFolderSharedLink | リンク | folderId, access, [unsharedDate], [permissions] | java.util.List |
| deleteFolder | delete | folderId | |
| getFolder | folder | path | com.box.sdk.BoxFolder |
| getFolderInfo | info | folderId, fields | com.box.sdk.BoxFolder.Info |
| getFolderItems | items | folderId, offset, limit, fields | java.util.List |
| updateFolderInfo | updateInfo | folderId, info | com.box.sdk.BoxFolder |
folders の URI オプション
| 名前 | タイプ |
|---|---|
| path | String[] |
| folderId | String |
| offset | Long |
| limit | Long |
| fields | String[] |
| parentFolderId | String |
| folderName | String |
| destinationFolderId | String |
| newName | String |
| newFolderName | String |
| info | String |
| access | com.box.sdk.BoxSharedLink.Access |
| unshareDate | Date |
| permissions | com.box.sdk.BoxSharedLink.Permissions |
52.5.6. エンドポイント接頭辞 groups リンクのコピーリンクがクリップボードにコピーされました!
Box グループの詳細については、https://developer.box.com/reference#group-object を参照してください。次のエンドポイントは、次のように接頭辞 groups を使用して呼び出すことができます。
box:groups/endpoint?[options]
box:groups/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| createGroup | create | name, [provenance, externalSyncIdentifier, description, invitabilityLevel, memberViewabilityLevel] | com.box.sdk.BoxGroup |
| addGroupMembership | createMembership | groupId, userId, role | com.box.sdk.BoxGroupMembership |
| deleteGroup | delete | groupId | |
| getAllGroups | groups | java.util.Collection | |
| getGroupInfo | info | groupId | com.box.sdk.BoxGroup.Info |
| updateGroupInfo | updateInfo | groupId、groupInfo | com.box.sdk.BoxGroup |
| addGroupMembership | addMembership | groupId, userId, role | com.box.sdk.BoxGroupMembership |
| deleteGroupMembership | deleteMembership | groupMembershipId | |
| getGroupMemberships | memberships | groupId | java.uti.Collection |
| getGroupMembershipInfo | membershipInfo | groupMemebershipId | com.box.sdk.BoxGroup.Info |
| updateGroupMembershipInfo | updateMembershipInfo | groupMembershipId、info | com.box.sdk.BoxGroupMembership |
groups の URI オプション
| 名前 | タイプ |
|---|---|
| name | String |
| groupId | String |
| userId | String |
| role | com.box.sdk.BoxGroupMembership.Role |
| groupMembershipId | String |
| info | com.box.sdk.BoxGroupMembership.Info |
52.5.7. エンドポイント接頭辞 search リンクのコピーリンクがクリップボードにコピーされました!
Box 検索 API の詳細については、https://developer.box.com/reference#searching-for-content を参照してください。 次のエンドポイントは、次のように接頭辞 search で呼び出すことができます。
box:search/endpoint?[options]
box:search/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| searchFolder | search | folderId, query | java.util.Collection |
search の URI オプション
| 名前 | タイプ |
|---|---|
| folderId | String |
| query | String |
52.5.8. エンドポイント接頭辞 tasks リンクのコピーリンクがクリップボードにコピーされました!
Box タスクの詳細については、https://developer.box.com/reference#task-object-1 を参照してください。次のエンドポイントは、次のように接頭辞 tasks を使用して呼び出すことができます。
box:tasks/endpoint?[options]
box:tasks/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| addFileTask | add | fileId, action, dueAt, [message] | com.box.sdk.BoxUser |
| deleteTask | delete | taskId | |
| getFileTasks | tasks | fileId | java.util.List |
| getTaskInfo | info | taskId | com.box.sdk.BoxTask.Info |
| updateTaskInfo | updateInfo | taskId, info | com.box.sdk.BoxTask |
| addAssignmentToTask | addAssignment | taskId, assignTo | com.box.sdk.BoxTask |
| deleteTaskAssignment | deleteAssignment | taskAssignmentId | |
| getTaskAssignments | assignments | taskId | java.util.List |
| getTaskAssignmentInfo | assignmentInfo | taskAssignmentId | com.box.sdk.BoxTaskAssignment.Info |
tasks の URI オプション
| 名前 | タイプ |
|---|---|
| fileId | String |
| action | com.box.sdk.BoxTask.Action |
| dueAt | Date |
| message | String |
| taskId | String |
| info | com.box.sdk.BoxTask.Info |
| assignTo | com.box.sdk.BoxUser |
| taskAssignmentId | String |
52.5.9. エンドポイント接頭辞 users リンクのコピーリンクがクリップボードにコピーされました!
Box ユーザーについては、https://developer.box.com/reference#user-object を参照してください。次のエンドポイントは、次のように接頭辞 users で呼び出すことができます。
box:users/endpoint?[options]
box:users/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| getCurrentUser | currentUser | com.box.sdk.BoxUser | |
| getAllEnterpriseOrExternalUsers | users | filterTerm, [fields] | com.box.sdk.BoxUser |
| createAppUser | create | name, [params] | com.box.sdk.BoxUser |
| createEnterpriseUser | create | login, name, [params] | com.box.sdk.BoxUser |
| deleteUser | delete | userId, notifyUser, force | |
| getUserEmailAlias | emailAlias | userId | com.box.sdk.BoxUser |
| deleteUserEmailAlias | deleteEmailAlias | userId, emailAliasId | java.util.List |
| getUserInfo | info | userId | com.box.sdk.BoxUser.Info |
| updateUserInfo | updateInfo | userId, info | com.box.sdk.BoxUser |
| moveFolderToUser | - | userId, sourceUserId | com.box.sdk.BoxFolder.Info |
users の URI オプション
| 名前 | タイプ |
|---|---|
| defaultRequest | com.box.restclientv2.requestsbase.BoxDefaultRequestObject |
| emailAliasRequest | com.box.boxjavalibv2.requests.requestobjects.BoxEmailAliasRequestObject |
| emailId | String |
| filterTerm | String |
| folderId | String |
| simpleUserRequest | com.box.boxjavalibv2.requests.requestobjects.BoxSimpleUserRequestObject |
| userDeleteRequest | com.box.boxjavalibv2.requests.requestobjects.BoxUserDeleteRequestObject |
| userId | String |
| userRequest | com.box.boxjavalibv2.requests.requestobjects.BoxUserRequestObject |
| userUpdateLoginRequest | com.box.boxjavalibv2.requests.requestobjects.BoxUserUpdateLoginRequestObject |
52.6. コンシューマーエンドポイント リンクのコピーリンクがクリップボードにコピーされました!
Box イベントの詳細については、https://developer.box.com/reference#events を参照してください。次の例に示すように、コンシューマーエンドポイントはエンドポイント 接頭辞 events のみを使用できます。
box:events/endpoint?[options]
box:events/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| events | [startingPosition] | com.box.sdk.BoxEvent |
events の URI オプション
| 名前 | タイプ |
|---|---|
| startingPosition | Long |
52.7. メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
CamelBox 接頭辞を使用するプロデューサーエンドポイントのメッセージヘッダーには、任意のオプションを指定できます。
52.8. メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
すべての結果メッセージ本文は、Box Java SDK によって提供されるオブジェクトを利用します。プロデューサーエンドポイントは、inBody エンドポイントパラメーターで受信メッセージボディーのオプション名を指定できます。
52.9. コンポーネントを設定して認証を有効にする リンクのコピーリンクがクリップボードにコピーされました!
Box を使用した認証では、次の例に示すように、コンポーネントで認証プロパティーを設定します。
52.10. サンプル リンクのコピーリンクがクリップボードにコピーされました!
次のルートは、新しいファイルをユーザーのルートフォルダーにアップロードします。
from("file:...")
.to("box://files/upload/inBody=fileUploadRequest");
from("file:...")
.to("box://files/upload/inBody=fileUploadRequest");
次のルートは、更新のためにユーザーのアカウントをポーリングします。
from("box://events/listen?startingPosition=-1")
.to("bean:blah");
from("box://events/listen?startingPosition=-1")
.to("bean:blah");
次のルートでは、動的ヘッダーオプションを持つプロデューサーを使用します。 fileId プロパティーには Box ファイル ID があり、output プロパティーにはファイルコンテンツの出力ストリームがあるため、次のように CamelBox.fileId ヘッダーと CamelBox.output ヘッダーにそれぞれ割り当てられます。
from("direct:foo")
.setHeader("CamelBox.fileId", header("fileId"))
.setHeader("CamelBox.output", header("output"))
.to("box://files/download")
.to("file://...");
from("direct:foo")
.setHeader("CamelBox.fileId", header("fileId"))
.setHeader("CamelBox.output", header("output"))
.to("box://files/download")
.to("file://...");
第53章 Braintree コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel バージョン 2.17 以降で利用可能
Braintree コンポーネントは、Java SDK を介して Braintree Payments へのアクセスを提供します。
支払いを処理するには、すべてのクライアントアプリケーションに API 認証情報が必要です。アカウントで camel-braintree を使用するには、新しい Sandbox または Production アカウントを作成する必要があります。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-braintree</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-braintree</artifactId>
<version>${camel-version}</version>
</dependency>
53.1. Braintree オプション リンクのコピーリンクがクリップボードにコピーされました!
Braintree コンポーネントは、以下に示す 2 個のオプションをサポートしています。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| configuration (common) | 共有設定を使用するには | BraintreeConfiguration | |
| resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Braintree エンドポイントは、URI 構文を使用して設定されます。
braintree:apiName/methodName
braintree:apiName/methodName
パスおよびクエリーパラメーターを使用します。
53.1.1. パスパラメーター (2 個のパラメーター): リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| apiName | 必須 操作の種類 | BraintreeApiName | |
| methodName | 選択した操作に使用するサブ操作 | String |
53.1.2. クエリーパラメーター (14 パラメーター) リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| environment (common) | 環境 SANDBOX または PRODUCTION のいずれか | String | |
| inBody (common) | ボディにて交換で渡されるパラメーターの名前を設定します。 | String | |
| merchantId (common) | Braintree が提供するマーチャント ID。 | String | |
| privateKey (common) | Braintree が提供する秘密鍵。 | String | |
| publicKey (common) | Braintree が提供する公開鍵。 | String | |
| bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
| exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
| exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
| accessToken (advanced) | マーチャントに代わってトランザクションを処理するために、マーチャントが別のマーチャントに付与するアクセストークン。環境、マーチャント ID、公開鍵、および秘密鍵フィールドの代わりに使用されます。 | String | |
| httpReadTimeout (advanced) | http 呼び出しの読み取りタイムアウトを設定します。 | Integer | |
| synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
| httpLogLevel (logging) | http 呼び出しのロギングレベルを設定します。java.util.logging.Level を参照してください。 | String | |
| proxyHost (proxy) | プロキシーホスト | String | |
| proxyPort (proxy) | プロキシーポート | Integer |
53.2. Spring Boot Auto-Configuration リンクのコピーリンクがクリップボードにコピーされました!
コンポーネントは、以下に記載される 14 のオプションをサポートします。
| 名前 | 説明 | デフォルト | タイプ |
|---|---|---|---|
| camel.component.braintree.configuration.access-token | マーチャントに代わってトランザクションを処理するために、マーチャントが別のマーチャントに付与するアクセストークン。環境、マーチャント ID、公開鍵、および秘密鍵フィールドの代わりに使用されます。 | String | |
| camel.component.braintree.configuration.api-name | 実行する操作の種類 | BraintreeApiName | |
| camel.component.braintree.configuration.environment | 環境 SANDBOX または PRODUCTION のいずれか | String | |
| camel.component.braintree.configuration.http-log-level | http 呼び出しのロギングレベルを設定します。java.util.logging.Level を参照してください。 | レベル | |
| camel.component.braintree.configuration.http-log-name | http 呼び出しのログに使用するログカテゴリーを設定します。デフォルトは Braintree です。 | String | |
| camel.component.braintree.configuration.http-read-timeout | http 呼び出しの読み取りタイムアウトを設定します。 | Integer | |
| camel.component.braintree.configuration.merchant-id | Braintree が提供するマーチャント ID。 | String | |
| camel.component.braintree.configuration.method-name | 選択した操作に使用するサブ操作 | String | |
| camel.component.braintree.configuration.private-key | Braintree が提供する秘密鍵。 | String | |
| camel.component.braintree.configuration.proxy-host | プロキシーホスト | String | |
| camel.component.braintree.configuration.proxy-port | プロキシーポート | Integer | |
| camel.component.braintree.configuration.public-key | Braintree が提供する公開鍵。 | String | |
| camel.component.braintree.enabled | braintree コンポーネントを有効にする | true | Boolean |
| camel.component.braintree.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
53.3. URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
braintree://endpoint-prefix/endpoint?[options]
braintree://endpoint-prefix/endpoint?[options]
エンドポイント 接頭辞は次のいずれかです。
- アドオン
- address
- clientToken
- creditCardverification
- customer
- discount
- dispute
- documentUpload
- merchantAccount
- paymentmethod
- paymentmethodNonce
- plan
- report
- settlementBatchSummary
- subscription
- transaction
- webhookNotification
53.4. BraintreeComponent リンクのコピーリンクがクリップボードにコピーされました!
Braintree コンポーネントは、以下のオプションで設定できます。これらのオプションは、タイプ org.apache.camel.component.braintree.BraintreeConfiguration のコンポーネントの Bean プロパティー 設定 を使用して提供できます。
| オプション | タイプ | 説明 |
|---|---|---|
| environment | String | リクエストの送信先を指定する値 - sandbox または production |
| merchantId | String | マーチャントアカウント ID とは異なる、ゲートウェイアカウントの一意の識別子 |
| publicKey | String | ユーザー固有の公開識別子 |
| privateKey | String | 共有してはならないユーザー固有の安全な識別子 - 私たちとさえも! |
| accessToken | String | Braintree Auth を使用してマーチャントに付与されるトークンで、別のマーチャントに代わってトランザクションを処理できるようになります。環境、merchantId、publicKey、および privateKey オプションの代わりに使用されます。 |
上記のすべてのオプションは、Braintree Payments によって提供されます。
53.5. プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
プロデューサーエンドポイントは、エンドポイント 接頭辞の後にエンドポイント名と次に説明する関連オプションを使用できます。一部のエンドポイントには省略形のエイリアスを使用できます。エンドポイント URI には接頭辞が含まれている必要があります。
必須ではないエンドポイントオプションはで示されます。エンドポイントに必須のオプションがない場合、オプションのセットの 1 つを提供する必要があります。プロデューサエンドポイントは、特別なオプション inBody を使用することもできます。このオプションには、値が Camel Exchange In メッセージに含まれるエンドポイントオプションの名前が含まれている必要があります。
エンドポイントオプションは、エンドポイント URI またはメッセージヘッダーで動的に指定できます。メッセージヘッダー名は CamelBraintree.<option> の形式である必要があります。inBody オプションはメッセージヘッダーをオーバーライドすることに注意してください。つまり、エンドポイントオプション inBody=option は CamelBraintree.option ヘッダーをオーバーライドします。
エンドポイントとオプションの詳細については、https://developers.braintreepayments.com/reference/overview で Braintree のリファレンスを参照してください。
53.5.1. エンドポイント接頭辞 addOn リンクのコピーリンクがクリップボードにコピーされました!
次のエンドポイントは、次のように接頭辞 addOn を使用して呼び出すことができます。
braintree://addOn/endpoint
braintree://addOn/endpoint
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| all |
|
| List<com.braintreegateway.Addon> |
53.5.2. エンドポイント接頭辞 address リンクのコピーリンクがクリップボードにコピーされました!
次のエンドポイントは、次のように接頭辞 address を使用して呼び出すことができます。
braintree://address/endpoint?[options]
braintree://address/endpoint?[options]
| エンドポイント | 短縮形エイリアス | オプション | 結果ボディーのタイプ |
|---|---|---|---|
| create |
| customerId, request | com.braintreegateway.Result<com.braintreegateway.Address> |
| delete |
| customerId, id | com.braintreegateway.Result<com.braintreegateway.Address> |
| find |
| customerId, id | com.braintreegateway.Address |
| update |
| customerId, id, request | com.braintreegateway.Result<com.braintreegateway.Address> |
address の URI オプション