Tek kiracılı Azure Logic Apps’te Standart mantıksal uygulama iş akışları için DevOps dağıtımı ayarlama

Şunlar için geçerlidir: Azure Logic Apps (Standart)

Bu makalede, DevOps araçlarını ve işlemlerini kullanarak Visual Studio Code'den altyapınıza tek kiracılı Azure Logic Apps'e Standart mantıksal uygulama projesi dağıtma işlemi gösterilmektedir. Dağıtım için GitHub'ı mı yoksa Azure DevOps'u mu tercih ettiğinize bağlı olarak, senaryonuz için en uygun yolu ve araçları seçin. GitHub veya Azure DevOps kullanarak örnek mantıksal uygulama projelerinin yanı sıra Azure dağıtımına yönelik örnekler içeren örnekleri kullanabilirsiniz. Tek kiracılı DevOps hakkında daha fazla bilgi için, tek kiracılı Azure Logic Apps için DevOps dağıtımına genel bakış'ı gözden geçirin.

Önkoşullar

Altyapı kaynaklarını dağıtma

Henüz bir mantıksal uygulama projesi veya altyapısı ayarlamadıysanız, kullanmayı tercih ettiğiniz kaynak ve dağıtım seçeneklerine bağlı olarak örnek bir uygulama ve altyapı dağıtmak için aşağıdaki örnek projeleri kullanabilirsiniz:

Her iki örnek de bir mantıksal uygulamanın çalıştırmak için kullandığı aşağıdaki kaynakları içerir.

Kaynak adı Gerekli Açıklama
Mantıksal Uygulama (Standart) Yes Bu Azure kaynağı, tek kiracılı Azure Logic Apps'te çalışan iş akışlarını içerir.
İşlevler Premium veya App Service barındırma planı Yes Bu Azure kaynağı işlem, işleme, depolama, ağ gibi mantıksal uygulamanızı çalıştırmak için kullanılacak barındırma kaynaklarını belirtir.

Önemli: Geçerli deneyimde Logic App (Standart) kaynağı, İşlevler Premium barındırma planını temel alan İş Akışı Standart barındırma planını gerektirir.

Azure depolama hesabı Evet, hem durum bilgisi olan hem de olmayan iş akışları için Bu Azure kaynağı meta verileri, erişim denetimi anahtarlarını, durumu, girişleri, çıkışları, çalıştırma geçmişini ve iş akışlarınızla ilgili diğer bilgileri depolar.
Application Insights İsteğe Bağlı Bu Azure kaynağı, iş akışlarınız için izleme özellikleri sağlar.
API bağlantıları İsteğe bağlı, yoksa Bu Azure kaynakları, iş akışlarınızın Office 365, SharePoint gibi yönetilen bağlayıcı işlemlerini çalıştırmak için kullandığı yönetilen API bağlantılarını tanımlar.

Önemli: Mantıksal uygulama projenizde connections.json dosyası, iş akışlarınızın kullandığı yönetilen API bağlantıları ve Azure işlevleri için meta veriler, uç noktalar ve anahtarlar içerir. Her ortamda farklı bağlantılar ve işlevler kullanmak için connections.json dosyasını parametreleştirdiğinizden ve uç noktaları güncelleştirdiğinizden emin olun.

Daha fazla bilgi için API bağlantı kaynakları ve erişim ilkeleri'ni gözden geçirin.

Azure Resource Manager (ARM) şablonu İsteğe Bağlı Bu Azure kaynağı, yeniden kullanabileceğiniz veya dışarı aktarabileceğiniz bir temel altyapı dağıtımı tanımlar.

API bağlantı kaynakları ve erişim ilkeleri

Tek kiracılı Azure Logic Apps'te, iş akışlarınızdaki her yönetilen veya API bağlantı kaynağı ilişkili bir erişim ilkesi gerektirir. Bu ilke, yönetilen bağlayıcı altyapısına erişmek için doğru izinleri sağlamak için mantıksal uygulamanızın kimliğine ihtiyaç duyar. Dahil edilen örnek projeler, bu erişim ilkeleri dahil olmak üzere gerekli tüm altyapı kaynaklarını içeren bir ARM şablonu içerir.

Aşağıdaki diyagramda mantıksal uygulama projeniz ile altyapı kaynaklarınız arasındaki bağımlılıklar gösterilmektedir:

Tek kiracılı Azure Logic Apps modelindeki bir mantıksal uygulama projesi için altyapı bağımlılıklarını gösteren kavramsal diyagram.

Mantıksal uygulama kaynaklarını dağıtma (zip dağıtımı)

Mantıksal uygulama projenizi kaynak deponuza gönderdikten sonra, azure içinde veya dışında mantıksal uygulamaları altyapıya dağıtan derleme ve yayın işlem hatlarını ayarlayabilirsiniz.

Projenizi oluşturma

Mantıksal uygulama proje türünüz temelinde bir derleme işlem hattı ayarlamak için aşağıdaki tabloda karşılık gelen eylemleri tamamlayın:

Proje türü Açıklama ve adımlar
Nuget tabanlı NuGet tabanlı proje yapısı, .NET Framework temel alır. Bu projeleri oluşturmak için .NET Standard derleme adımlarını izlediğinden emin olun. Daha fazla bilgi için MSBuild kullanarak NuGet paketi oluşturma belgelerini gözden geçirin.
Paket tabanlı Uzantı paketi tabanlı proje dile özgü değildir ve dile özgü derleme adımları gerektirmez. Proje dosyalarınızı sıkıştırmak için herhangi bir yöntemi kullanabilirsiniz.

Önemli: .zip dosyanızın tüm iş akışı klasörleri, host.json, connections.json gibi yapılandırma dosyaları ve diğer tüm ilgili dosyalar dahil olmak üzere gerçek derleme yapıtlarını içerdiğinden emin olun.

Azure'a yayımlanmadan önce

Mantıksal uygulama projenizin connections.json dosyasının içindeki yönetilen API bağlantıları, Visual Studio Code'de yerel kullanım için özel olarak oluşturulur. Proje yapıtlarınızı Visual Studio Code'den Azure'a yayımlamadan önce bu yapıtları güncelleştirmeniz gerekir. Azure'da yönetilen API bağlantılarını kullanmak için kimlik doğrulama yöntemlerini Azure'da kullanılacak doğru biçimde olacak şekilde güncelleştirmeniz gerekir.

Kimlik doğrulama türünü güncelleştirme

Kimlik doğrulaması kullanan her yönetilen API bağlantısı için, kimlik doğrulama nesnesini Visual Studio Code yerel biçimden birinci ve ikinci kod örneklerinde gösterildiği gibi Azure portal biçimine güncelleştirmeniz gerekir:

Visual Studio Code biçimi

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "Raw",
         "scheme": "Key",
         "parameter": "@appsetting('sql-connectionKey')"
      }
   }
}

Azure portal biçimi

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "ManagedServiceIdentity",
      }
   }
}

Gerektiğinde API bağlantıları oluşturma

Mantıksal uygulama iş akışınızı yerel geliştirme ortamınızdan farklı bir Azure bölgesine veya aboneliğe dağıtıyorsanız, dağıtımdan önce bu yönetilen API bağlantılarını da oluşturduğunuzdan emin olmanız gerekir. Azure Resource Manager şablonu (ARM şablonu) dağıtımı, yönetilen API bağlantıları oluşturmanın en kolay yoludur.

Aşağıdaki örnekte ARM şablonunda SQL tarafından yönetilen API bağlantısı kaynak tanımı gösterilmektedir:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Bağlantı kaynağı tanımını tamamlamak için özellikler nesnesinde kullanmanız gereken değerleri bulmak için, belirli bir bağlayıcı için aşağıdaki API'yi kullanabilirsiniz:

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

Yanıtta, ilgili bağlayıcı için kaynak tanımını tamamlamanız için gereken tüm bilgileri içeren connectionParameters nesnesini bulun. Aşağıdaki örnekte SQL yönetilen bağlantısı için örnek bir kaynak tanımı gösterilmektedir:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Alternatif olarak, Azure Logic Apps'teki iş akışı tasarımcısını kullanarak bağlantı oluştururken ağ izlemesini yakalayabilir ve gözden geçirebilirsiniz. PUT Daha önce açıklandığı gibi bağlayıcının yönetilen API'sine gönderilen çağrıyı bulun ve gerekli tüm bilgiler için istek gövdesini gözden geçirin.

Azure'a yayın

Azure'a dağıtan bir yayın işlem hattı ayarlamak için GitHub, Azure DevOps veya Azure CLI için ilişkili adımları izleyin.

Not

Azure Logic Apps şu anda Azure dağıtım yuvalarını desteklememektedir.

GitHub dağıtımları için mantıksal uygulamanızı Azure İşlevleri'daki GitHub Actions gibi GitHub Actions kullanarak dağıtabilirsiniz. Bu eylem için aşağıdaki bilgileri geçirmeniz gerekir:

  • Dağıtım için kullanılacak mantıksal uygulama adı
  • Tüm iş akışı klasörleri, host.json, connections.json gibi yapılandırma dosyaları ve diğer tüm ilgili dosyalar dahil olmak üzere gerçek derleme yapıtlarınızı içeren zip dosyası.
  • Kimlik doğrulaması için kullanılan yayımlama profiliniz
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Daha fazla bilgi için GitHub Action kullanarak sürekli teslim belgelerini gözden geçirin.

Azure'a yayından sonra

Her API bağlantısının erişim ilkeleri vardır. Zip dağıtımı tamamlandıktan sonra mantıksal uygulama kaynağınızı Azure portal açmanız ve dağıtılan mantıksal uygulama için izinleri ayarlamak üzere her API bağlantısı için erişim ilkeleri oluşturmanız gerekir. Zip dağıtımı sizin için uygulama ayarları oluşturmaz. Bu nedenle, dağıtımdan sonra bu uygulama ayarlarını yerel Visual Studio Code projenizdeki local.settings.json dosyasına göre oluşturmanız gerekir.

Sonraki adımlar

Tek kiracılı Azure Logic Apps deneyimlerinizi öğrenmek istiyoruz!