Azure Logic Apps'te özel bağlayıcılar

Şunlar için geçerlidir: Azure Logic Apps (Tüketim + Standart)

Herhangi bir kod yazmadan, Azure Logic Apps'te önceden oluşturulmuş bağlayıcı işlemlerini kullandığınızda hızlı bir şekilde otomatik tümleştirme iş akışları oluşturabilirsiniz. Bağlayıcı, iş akışlarınızın diğer uygulamalar, hizmetler, sistemler, protokoller ve platformlar genelinde verilere, olaylara ve eylemlere bağlanmasına ve erişmelerine yardımcı olur. Her bağlayıcı, işlemleri iş akışlarınıza ekleyebileceğiniz tetikleyiciler, eylemler veya her ikisi olarak sunar. Bu işlemleri kullanarak bulut uygulamalarınızın ve şirket içi uygulamalarınızın özelliklerini yeni ve mevcut verilerle çalışacak şekilde genişletirsiniz.

Azure Logic Apps'teki bağlayıcılar yerleşiktir veya yönetilir. Yerleşik bağlayıcı, Azure Logic Apps çalışma zamanında yerel olarak çalışır; bu da çalışma zamanıyla aynı işlemde barındırıldığı ve daha yüksek aktarım hızı, düşük gecikme süresi ve yerel bağlantı sağladığı anlamına gelir. Yönetilen bağlayıcı, temel alınan hizmetin Azure Logic Apps ile konuşmasına yardımcı olan Office 365 veya Salesforce gibi bir API'nin etrafındaki bir ara sunucu veya sarmalayıcıdır. Yönetilen bağlayıcılar Azure'daki bağlayıcı altyapısı tarafından desteklenir ve Microsoft tarafından dağıtılır, barındırılır, çalıştırılır ve yönetilir. Azure Logic Apps'te iş akışlarınızla kullanmak üzere yüzlerce yönetilen bağlayıcı arasından seçim yapabilirsiniz.

Bir iş akışında bağlayıcı işlemini ilk kez kullandığınızda, bazı bağlayıcılar önce bağlantı oluşturmanızı gerektirmez, ancak diğer birçok bağlayıcı bu adımı gerektirir. Oluşturduğunuz her bağlantı aslında hedef uygulamaya, hizmete, sisteme, protokole veya platforma erişim sağlayan ayrı bir Azure kaynağıdır.

Ancak bazen önceden oluşturulmuş bağlayıcılar olarak kullanılamamış REST API'lerini çağırmak isteyebilirsiniz. Daha özel senaryoları desteklemek için kendi özel bağlayıcılarınızı oluşturarak önceden oluşturulmuş işlemler olarak sağlanmayan tetikleyiciler ve eylemler sunabilirsiniz.

Bu makalede , Tüketim mantıksal uygulaması iş akışları ve Standart mantıksal uygulama iş akışları için özel bağlayıcılar hakkında genel bir bakış sağlanır. Her mantıksal uygulama türü, sırasıyla çok kiracılı Azure ve tek kiracılı Azure'da barındırılan farklı bir Azure Logic Apps çalışma zamanı tarafından desteklenir. Azure Logic Apps'teki bağlayıcılar hakkında daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:

Tüketim mantığı uygulamaları

Çok kiracılı Azure Logic Apps'teSwagger tabanlı veya SOAP tabanlı API'lerden Tüketim mantıksal uygulaması iş akışlarında kullanılmak üzere belirli sınırlara kadar özel bağlayıcılar oluşturabilirsiniz. Bağlayıcılar belgeleri, eksiksiz temel ve gelişmiş öğreticiler de dahil olmak üzere Tüketim mantıksal uygulamaları için özel bağlayıcılar oluşturma hakkında daha fazla genel bakış bilgisi sağlar. Aşağıdaki liste ayrıca Tüketim mantıksal uygulamaları için özel bağlayıcılar hakkındaki bilgilere doğrudan bağlantılar sağlar:

Standart mantıksal uygulamalar

Tek kiracılı Azure Logic Apps'te, yeniden tasarlanan Azure Logic Apps çalışma zamanı Standart mantıksal uygulama iş akışlarını destekler. Bu çalışma zamanı, Tüketim mantıksal uygulaması iş akışlarını destekleyen çok kiracılı Azure Logic Apps çalışma zamanından farklıdır. Tek kiracılı çalışma zamanı, herkesin Standart iş akışlarında kullanacağı kendi yerleşik bağlayıcılarınızı oluşturmanız için önemli bir özellik sağlayan Azure İşlevleri genişletilebilirlik modelini kullanır. Çoğu durumda, yerleşik sürüm daha iyi performans, özellikler, fiyatlandırma vb. sağlar.

Tek kiracılı Azure Logic Apps resmi olarak kullanıma sunulduğunda yeni yerleşik bağlayıcılar Azure Blob Depolama, Azure Event Hubs, Azure Service Bus ve SQL Server içerir. Zaman içinde bu yerleşik bağlayıcı listesi büyümeye devam eder. Ancak Standart mantıksal uygulama iş akışlarında bulunmayan bağlayıcılara ihtiyacınız varsa, Standart iş akışlarında hizmet sağlayıcısı tabanlı yerleşik bağlayıcılar tarafından kullanılan genişletilebilirlik modelini kullanarak kendi yerleşik bağlayıcılarınızı oluşturabilirsiniz.

Hizmet sağlayıcısı tabanlı yerleşik bağlayıcılar

Tek kiracılı Azure Logic Apps'te, belirli özniteliklere sahip yerleşik bir bağlayıcı, resmi olmayan bir şekilde hizmet sağlayıcısı olarak bilinir. Örneğin, bu bağlayıcılar Standart mantıksal uygulama iş akışlarında kullanmak üzere kendi özel yerleşik bağlayıcılarınızı oluşturmanızı sağlayan Azure İşlevleri genişletilebilirlik modelini temel alır.

Buna karşılık, hizmet dışı sağlayıcı yerleşik bağlayıcıları aşağıdaki özniteliklere sahiptir:

  • Azure İşlevleri genişletilebilirlik modelini temel almıyor.

  • Zamanlama, HTTP, İstek ve XML işlemleri gibi Azure Logic Apps çalışma zamanı içinde doğrudan bir iş olarak uygulanır.

Şu anda hizmet dışı sağlayıcı yerleşik bağlayıcısı veya doğrudan Azure Logic Apps çalışma zamanında çalışan yeni bir iş türü oluşturma özelliği yoktur. Ancak, hizmet sağlayıcısı altyapısını kullanarak kendi yerleşik bağlayıcılarınızı oluşturabilirsiniz.

Aşağıdaki bölümde, özel yerleşik bağlayıcılar için genişletilebilirlik modelinin nasıl çalıştığı hakkında daha fazla bilgi sağlanmaktadır.

Yerleşik bağlayıcı genişletilebilirlik modeli

Azure İşlevleri genişletilebilirlik modeline bağlı olarak, tek kiracılı Azure Logic Apps'teki yerleşik bağlayıcı genişletilebilirlik modeli, herkesin Standart iş akışlarında kullanabileceği Azure İşlevleri uzantıları olarak kendi yerleşik bağlayıcılarınızı oluşturmak, paketlemek, kaydetmek ve yüklemek için kullanabileceğiniz bir hizmet sağlayıcısı altyapısına sahiptir. Bu model, özel yerleşik bağlayıcınızda bir Azure İşlevleri tetikleyicisini veya eylemi hizmet sağlayıcısı tetikleyicisi olarak kullanıma sağlamayı destekleyen özel yerleşik tetikleyici özellikleri içerir.

Aşağıdaki diyagramda, Azure Logic Apps tasarımcısının ve çalışma zamanının Azure İşlevleri tabanlı tetikleyiciye sahip özel bir yerleşik bağlayıcı için beklediği yöntem uygulamaları gösterilmektedir:

Azure İşlevleri tabanlı hizmet sağlayıcısı altyapısını gösteren kavramsal diyagram.

Aşağıdaki bölümlerde bağlayıcınızın uygulaması gereken arabirimler hakkında daha fazla bilgi sağlanır.

IServiceOperationsProvider

Bu arabirim, özel yerleşik bağlayıcınız için işlem bildirimi sağlayan yöntemleri içerir.

  • İşlem bildirimi

    İşlem bildirimi, özel yerleşik bağlayıcınızda uygulanan işlemler hakkındaki meta verileri içerir. Azure Logic Apps tasarımcısı, bağlayıcınızın işlemleri için yazma ve izleme deneyimlerini yönlendirmek için öncelikli olarak bu meta verileri kullanır. Örneğin tasarımcı, belirli bir işlemin gerektirdiği giriş parametrelerini anlamak ve işlemin çıkışlarının şemasına göre çıkışların özellik belirteçlerinin oluşturulmasını kolaylaştırmak için işlem meta verilerini kullanır.

    Tasarımcı, bağlayıcınızın sağladığı ve tasarımcı yüzeyinde gösterdiği işlemleri sorgulamak için GetService() ve GetOperations() yöntemlerini gerektirir ve kullanır. GetService() yöntemi, bağlantının tasarımcı tarafından gerekli olan giriş parametrelerini de belirtir.

    Bu yöntemler ve bunların uygulanması hakkında daha fazla bilgi için, bu makalenin devamında yer alan Uygulama yöntemleri bölümünü gözden geçirin.

  • İşlem çağrıları

    İşlem çağrıları, Azure Logic Apps çalışma zamanı tarafından iş akışı tanımında belirtilen işlemleri çağırmak için iş akışı yürütme sırasında kullanılan yöntem uygulamalarıdır.

    • Tetikleyiciniz Azure İşlevleri tabanlı bir tetikleyici türüyse GetBindingConnectionInformation() yöntemi Azure Logic Apps'teki çalışma zamanı tarafından Azure İşlevleri tetikleyici bağlamasına gerekli bağlantı parametreleri bilgilerini sağlamak için kullanılır.

    • Bağlayıcınızın eylemleri varsa, çalışma zamanı tarafından iş akışı yürütme sırasında çalışan bağlayıcınızdaki her eylemi çağırmak için InvokeOperation() yöntemi kullanılır. Aksi takdirde, bu yöntemi uygulamanız gerekmez.

Bu yöntemler ve bunların uygulanması hakkında daha fazla bilgi için, bu makalenin devamında yer alan Uygulama yöntemleri bölümünü gözden geçirin.

IServiceOperationsTriggerProvider

Özel yerleşik tetikleyici özellikleri, özel yerleşik bağlayıcınızda hizmet sağlayıcısı tetikleyicisi olarak bir Azure İşlevleri tetikleyicisi veya eylemi eklemeyi veya kullanıma sağlamayı destekler. Azure İşlevleri tabanlı tetikleyici türünü ve Azure yönetilen bağlayıcı tetikleyicisi ile aynı Azure İşlevleri bağlamasını kullanmak için, bağlantı bilgilerini sağlamak ve Azure İşlevleri gerektirdiği şekilde bağlamaları tetiklemek için aşağıdaki yöntemleri uygulayın.

  • getFunctionTriggerType() yöntemi, Azure İşlevleri tetikleyici bağlamasında tür parametresiyle aynı dizeyi döndürmek için gereklidir.

  • GetFunctionTriggerDefinition() varsayılan bir uygulamaya sahiptir, bu nedenle bu yöntemi açıkça uygulamanız gerekmez. Ancak, tetikleyicinin varsayılan davranışını güncelleştirmek istiyorsanız (tasarımcının kullanıma sunmadığı ek parametreler sağlamak gibi), bu yöntemi uygulayabilir ve varsayılan davranışı geçersiz kılabilirsiniz.

Uygulanacak yöntemler

Aşağıdaki bölümlerde bağlayıcınızın uygulaması gereken yöntemler hakkında daha fazla bilgi sağlanır. Tam örnek için Örnek CosmosDbServiceOperationProvider.cs bölümünü gözden geçirin ve Tek kiracılı Azure Logic Apps'te Standart mantıksal uygulamalar için özel yerleşik bağlayıcılar oluşturun.

GetService()

Tasarımcı, hizmetiniz için hizmet açıklaması, bağlantı giriş parametreleri, yetenekler, marka rengi, simge URL'si gibi üst düzey meta verileri almak için bu yöntemi gerektirir.

public ServiceOperationApi GetService()
{
   return this.{custom-service-name-apis}.ServiceOperationServiceApi();
}

Daha fazla bilgi için Örnek CosmosDbServiceOperationProvider.cs bölümünü gözden geçirin.

GetOperations()

Tasarımcı, hizmetiniz tarafından uygulanan işlemleri almak için bu yöntemi gerektirir. İşlemler listesi Swagger şemasını temel alır. Tasarımcı ayrıca belirli işlemlerin giriş parametrelerini anlamak için işlem meta verilerini kullanır ve bir işlemin çıkışının şemasını temel alarak çıkışları özellik belirteçleri olarak oluşturur.

public IEnumerable<ServiceOperation> GetOperations(bool expandManifest)
{
   return expandManifest ? serviceOperationsList : GetApiOperations();
}

Daha fazla bilgi için Örnek CosmosDbServiceOperationProvider.cs bölümünü gözden geçirin.

GetBindingConnectionInformation()

Azure İşlevleri tabanlı tetikleyici türünü kullanmak istiyorsanız, bu yöntem Azure İşlevleri tetikleyici bağlamasına gerekli bağlantı parametreleri bilgilerini sağlar.

public string GetBindingConnectionInformation(string operationId, InsensitiveDictionary<JToken> connectionParameters)
{
   return ServiceOperationsProviderUtilities
      .GetRequiredParameterValue(
         serviceId: ServiceId,
         operationId: operationID,
         parameterName: "connectionString",
         parameters: connectionParameters)?
      .ToValue<string>();
}

Daha fazla bilgi için Örnek CosmosDbServiceOperationProvider.cs bölümünü gözden geçirin.

InvokeOperation()

Özel yerleşik bağlayıcınızda yalnızca bir tetikleyici varsa, bu yöntemi uygulamanız gerekmez. Ancak bağlayıcınızın uygulayacak eylemleri varsa, iş akışı yürütme sırasında bağlayıcınızda çalışan her eylem için çağrılan InvokeOperation() yöntemini uygulamanız gerekir. Bağlayıcınızın eylemlerinin gerektirdiği şekilde FTPClient, HTTPClient gibi herhangi bir istemciyi kullanabilirsiniz. Bu örnekte HTTPClient kullanılır.

public Task<ServiceOperationResponse> InvokeOperation(string operationId, InsensitiveDictionary<JToken> connectionParameters, ServiceOperationRequest serviceOperationRequest)
{
   using (var client = new HttpClient())
   {
      response = client.SendAsync(httpRequestMessage).ConfigureAwait(false).ToJObject();
   }
   return new ServiceOperationResponse(body: response);
}

Daha fazla bilgi için Örnek CosmosDbServiceOperationProvider.cs bölümünü gözden geçirin.

GetFunctionTriggerType()

Bağlayıcınızda Azure İşlevleri tabanlı bir tetikleyiciyi tetikleyici olarak kullanmak için, Azure İşlevleri tetikleyici bağlamasında tür parametresiyle aynı dizeyi döndürmeniz gerekir.

Aşağıdaki örnek, kullanıma hazır yerleşik Azure Cosmos DB tetikleyicisinin "type": "cosmosDBTrigger"dizesini döndürür:

public string GetFunctionTriggerType()
{
   return "CosmosDBTrigger";
}

Daha fazla bilgi için Örnek CosmosDbServiceOperationProvider.cs dosyasını gözden geçirin.

GetFunctionTriggerDefinition()

Bu yöntemin varsayılan bir uygulaması vardır, bu nedenle bu yöntemi açıkça uygulamanız gerekmez. Ancak, tetikleyicinin varsayılan davranışını güncelleştirmek istiyorsanız (örneğin, tasarımcının kullanıma sunmadığı ek parametreler sağlamak), bu yöntemi uygulayabilir ve varsayılan davranışı geçersiz kılabilirsiniz.

Sonraki adımlar

Uygulama adımlarını başlatmaya hazır olduğunuzda aşağıdaki makaleye geçin: