Lunex akışları HTTP servisi, veritabanı, dosya alanı, kuyruk veya başka bir sisteme component üzerinden bağlanır. Endpoint, bileşenin belirli adres ve seçeneklerle yapılandırılmış kullanımını ifade eder. Örneğin HTTP bileşeni bir teknoloji; https://orders.example.test/api o teknolojiyi kullanan bir hedeftir.
Bağlantı ayarları proje YAML ve properties dosyalarında bulunur. Aynı projedeki akışların ortak kullanacağı connection factory, datasource veya SAP destination için adlandırılmış bean tanımlayabilirsiniz. Parolayı bu dosyaya yazmak yerine bir Secret’a referans verin.
Bileşen, bean ve Kamelet seçimi
| Yapı | Ne zaman kullanılır? |
|---|---|
| Component / endpoint | Bir protokolün adres, timeout, tüketim veya gönderim seçeneklerini doğrudan ayarlamak için. |
| Bean | Datasource, connection factory veya proje kodu gibi adlandırılmış bir nesneyi birden fazla adımda kullanmak için. |
| Kamelet | Bir giriş, çıkış veya eylemi hazır, parametreli akış şablonuyla kullanmak için. |
| Route Template | Tekrarlanan akış yapısını kendi parametrelerinizle yeniden kullanmak için. |
Designer adım seçicisinde kullanılabilir bileşenleri ve Kamelet’leri arayın. Seçili adımın özellikleri, zorunlu alanları ve desteklenen yönü bileşene bağlıdır. Her bileşen hem giriş hem çıkış desteklemez. Kurulum politikasıyla kapatılan veya SDK gerektiren seçenekler görünmeyebilir.
Katalogda bir seçeneğin bulunması, uzak hesabın, sürücünün veya ağ erişiminin hazır olduğunu göstermez. Kuruluma ve runtime’a gereken bağımlılıklar ayrıca sağlanmalıdır.
Bağlantı türüne göre hazırlık
| Bağlantı | Hazırlayacağınız bilgi |
|---|---|
| HTTP/HTTPS | URL, HTTP method, header’lar, kimlik doğrulama yöntemi, timeout ve TLS güveni. |
| SOAP | Servis adresi, WSDL/servis sözleşmesi, binding ve gerekli CXF ayarları. |
| SQL/JDBC | JDBC URL, sürücü, datasource, kullanıcı/parola, sorgu ve transaction beklentisi. |
| Dosya/SFTP/FTP | Runtime’dan görülebilen dizin veya sunucu, izinler, kimlik doğrulama ve dosyanın işlendiğini belirleyen kurallar. |
| JMS/AMQP ve diğer mesajlaşma | Broker, protokol/istemci, adres/kuyruk/topic, kimlik bilgileri ve teslim politikası. |
| SAP RFC/BAPI | Etkin SAP kurulumu, özgün JCo SDK, destination ve fonksiyon yetkisi. SAP bağlantısı. |
| OPC UA | Runtime’dan erişilebilen sunucu adresi, güvenlik politikası, kullanıcı veya sertifika ve izlenecek node ID’leri. OPC UA tag’leri. |
file: adresindeki dosya yolu tarayıcınızın bilgisayarındaki yolu değil, proje runtime’ının dosya sistemini ifade eder. Gerekli volume/mount ve izinleri proje çalıştırma yapılandırmasında sağlayın. direct: gibi dahili endpoint’ler aynı proje çalışma bağlamındaki akışları bağlar; başka bir projeye ağ bağlantısı oluşturmaz.
Secret oluşturun ve referans verin
Önkoşul: Kubernetes kurulumunda System kaynaklarını yönetme yetkisi. Geliştirme runtime’ı ve paketli entegrasyonlar lunex-integration servis hesabıyla çalışır; bu hesap kurulumun namespace’indeki Secret ve ConfigMap’leri okuyabilir, değiştiremez. Secret’ı bu namespace’te oluşturun.
- System → Secrets → Create secret açın.
- Örneğin
orders-apiadını verip oluşturun. - Secret satırındaki Add key ile
api-keyanahtarını ekleyin ve Value alanına gerçek değeri yazın. - Akışta veya properties dosyasında
{{secret:orders-api/api-key}}kullanın. - Küçük bir gerçek istekle bağlantıyı doğrulayın; Secret değerini iş alanına veya log’a yazmayın.
Secret adları küçük harf, rakam ve tire kullanır. Anahtar adlarında harf, rakam, nokta, alt çizgi ve tire kullanılabilir. Listedeki değerler gizlenir; Show value ile açma işlemi erişim denetimine tabidir. UI’da gizli görünmesi, aynı yetkili kullanıcının API üzerinden hiç okuyamayacağı anlamına gelmez.
ConfigMap, hassas olmayan ortak yapılandırma içindir. System → ConfigMaps içinde benzer şekilde oluşturup {{configmap:orders-config/base-url}} ile kullanabilirsiniz. Secret/ConfigMap silmek, onu kullanan diğer projeleri de etkileyebilir.
Properties ile ortam değerlerini ayırın
Projenin Source listesinden application.properties dosyasını veya Architecture → More create options → Properties işlemini açın. Örneğin:
orders.api.base-url=https://orders.example.test
orders.api.key={{secret:orders-api/api-key}}
Endpoint veya header içinde {{orders.api.base-url}} ve {{orders.api.key}} kullanın. application-dev.properties, geliştirme profiline özgü değerler sağlayabilir.
| Referans | Kaynağı |
|---|---|
{{orders.api.base-url}} | Proje uygulama property’si |
{{env:ORDERS_API_URL}} | Çalışan runtime’ın environment değişkeni |
{{sys:orders.api.url}} | Runtime JVM system property’si |
{{secret:orders-api/api-key}} | Kubernetes Secret anahtarı |
{{configmap:orders-config/base-url}} | Kubernetes ConfigMap anahtarı |
Özellik alanındaki Set from seçicisinde Properties, ConfigMap, Secret, Services ve Examples kaynakları bulunabilir. Kaynağı ve anahtarı seçtikten sonra Code görünümünde oluşan referansı kontrol edin.
Property değişikliğinin çalışan bağlantıya uygulanması bileşenin yaşam döngüsüne bağlıdır. Değişikliği kaydedin; bağlantının yeniden kurulmasını gerektiren değişiklikte runtime’ı yeniden başlatıp doğrulayın. Deploy edilen uygulama için ilgili dağıtım sürecini tamamlayın.
HTTP servisine istek gönderin
Aşağıdaki adımlar bir akışın içinde kullanılır. Örnek alan adı bir yer tutucudur; gerçek test servisinize değiştirin:
- setHeader:
name: X-API-Key
simple: "{{orders.api.key}}"
- to:
uri: "{{orders.api.base-url}}/health"
parameters:
httpMethod: GET
- Akışın girişini ve gerekli properties/Secret’ları hazırlayın.
- Seçilen HTTP adımında method ve hedef adresi kontrol edin.
- Hedefin kimlik doğrulama yöntemini uygulayın. API key, Basic veya bearer token farklı sözleşmelerdir.
- Run ile kontrollü bir gerçek istek gönderin; Log ve Message Monitor sonucunu kontrol edin.
- Beklenen response body ve HTTP sonucu üzerinden doğrulayın; bağlantı kurulması tek başına iş sonucunu doğrulamaz.
Lunex’e OIDC ile giriş yapmak, akışın dış servise kendiliğinden aynı kullanıcı olarak bağlanmasını sağlamaz. Hedef OAuth2 istiyorsa onun token endpoint, client ve scope sözleşmesini akışınızda/uygun bileşende ayrıca yapılandırın. Uzun ömürlü sabit token varsaymayın.
HTTPS için runtime’ın sunucu sertifikasına güvenmesi gerekir. Kurumsal CA veya karşılıklı TLS gerekiyorsa ilgili bileşenin SSL context/truststore/keystore seçeneklerini ve runtime’a sunulan dosyaları yapılandırın. Her bağlantıyı yöneten tek bir genel TLS düğmesi yoktur.
Ortak veritabanı bağlantısı oluşturun
Kendi mevcut veritabanınız için genel veritabanı rehberinden ilerleyin. Bağlantı, okuma, yazma ve transaction adımları örnek tablo kurmanızı gerektirmez. İsterseniz ayrıca sipariş ve stok uygulamasını indirip gerçek kayıtlarla deneyebilirsiniz.
- Architecture → More create options → Bean açın.
- Type → Database seçin; kurulumda bulunan uygun şablonu seçin.
- Name, URL, kullanıcı, parola referansı ve sürücü sınıfını düzenleyin.
- File adımında bağlantıyı bir Camel YAML dosyasına kaydedin.
- JDBC sürücüsü ve datasource sınıfının runtime bağımlılıklarını
camel.jbang.dependenciesiçinde sağlayın. - SQL/JDBC adımında bu bean’i datasource olarak seçin; önce küçük bir okuma sorgusuyla deneyin.
Örnek datasource:
- beans:
- name: ordersDb
type: '#class:org.apache.commons.dbcp2.BasicDataSource'
properties:
driverClassName: org.postgresql.Driver
url: '{{orders.jdbc.url}}'
username: '{{secret:orders-db/username}}'
password: '{{secret:orders-db/password}}'
SQL endpoint örneği sql:select 1?dataSource=#ordersDb olabilir. Bu sınıfların kendi uyumlu JDBC/pool bağımlılıklarını eklemeden yalnız YAML kaydetmek bağlantıyı çalıştırmaz. Gerçek iş sorgularında kullanıcı verisini SQL metnine birleştirmek yerine bileşenin parametre bağlama mekanizmasını kullanın.
Sorun giderme
| Belirti | Kontrol |
|---|---|
| Bileşen görünmüyor | Doğru ekleme yönü, kurulumun destek politikası ve gerekiyorsa SAP etkinliği. |
| Bean bulunamıyor | Aynı proje içinde benzersiz isim ve endpoint’teki doğru #beanName referansı. |
| Sınıf veya sürücü bulunamıyor | Maven bağımlılığı, runtime imajı ve gerekiyorsa native kitaplık. |
| Property çözülemiyor | Tam anahtar adı, profil, Secret/ConfigMap ve namespace okuma izni. |
| Timeout / connection refused | Runtime’dan DNS, port, firewall, proxy ve hedef servis sağlığı. |
| TLS hatası | Sunucu adı, sertifika zinciri, geçerlilik ve runtime truststore. |
| 401 / 403 | Hedef servisin kimlik bilgileri, scope ve yetkileri. Lunex oturumunun yetkisiyle karıştırmayın. |
| Simülasyon başarılı, bağlantı başarısız | Simülasyon alıcı örneği gerçek ağ bağlantısını doğrulamaz; Run ile ayrıca deneyin. |
Artemis bağlantısı ve SAP bağlantısı daha ayrıntılı adımlar içerir.