Azure Arc özellikli Logic Apps ile tek kiracı tabanlı mantıksal uygulama iş akışları oluşturma ve dağıtma (Önizleme)

Not

Bu özellik önizleme aşamasındadır ve Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'na tabidir.

Azure Arc özellikli Logic Apps ile tek kiracılı tabanlı mantıksal uygulama iş akışları oluşturup, yönettiğiniz bir Kubernetes altyapısına dağıtabilirsiniz. Mantıksal uygulamalarınız, Azure Uygulaması Service platform uzantıları paketini yüklediğiniz ve etkinleştirdiğiniz Azure Arc özellikli Kubernetes kümesine eşlenen özel bir konumda çalışır.

Örneğin, bu küme Azure Kubernetes Service, çıplak Kubernetes veya başka bir kurulum olabilir. Uzantı paketi, Kubernetes kümenizde Azure Logic Apps, Azure Uygulaması Service ve Azure İşlevleri gibi platform hizmetlerini çalıştırmanızı sağlar.

Daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:

Önkoşullar

Bu bölümde, mantıksal uygulama iş akışlarınızı oluşturmak ve dağıtmak için kullanabileceğiniz tüm yaklaşımlar ve araçlardaki yaygın önkoşullar açıklanmaktadır. Araçlara özgü önkoşullar, ilgili adımlarla birlikte görünür.

  • Etkin aboneliği olan bir Azure hesabı. Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.

  • Azure Arc özellikli Kubernetes kümesine ve Azure Logic Apps, Azure Uygulaması Service ve Azure İşlevleri barındırıp çalıştırabileceğiniz özel konuma sahip bir Kubernetes ortamı.

    Önemli

    Kubernetes ortamınız, özel konumunuz ve mantıksal uygulamanız için aynı kaynak konumunu kullandığınızdan emin olun.

    Kubernetes kümenizde App Service paket uzantısını oluşturduğunuzda, mantıksal uygulama iş akışlarınızı çalıştırmak için varsayılan ölçeklendirme davranışını değiştirebilirsiniz. Azure CLI komutunu kullanarak uzantıyı oluşturduğunuzda yapılandırma az k8s-extension createayarını keda.enabled=trueeklediğinizden emin olun:

    az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"

    Daha fazla bilgi için aşağıdaki belgeleri gözden geçirin:

  • Kendi Microsoft Entra kimliğiniz

    İş akışlarınızın Office 365 Outlook veya Azure Depolama gibi Azure tarafından barındırılan bağlantıları kullanması gerekiyorsa mantıksal uygulamanızın kimlik doğrulaması için bir Microsoft Entra kimliği kullanması gerekir. Azure Arc özellikli Logic Apps herhangi bir altyapıda çalışabilir ancak Azure tarafından barındırılan bağlantıları kullanma izinlerine sahip bir kimlik gerektirir. Bu kimliği ayarlamak için Microsoft Entra Id'de mantıksal uygulamanızın gerekli kimlik olarak kullandığı bir uygulama kaydı oluşturun.

    Not

    Azure Arc özellikli Logic Apps için yönetilen kimlik desteği şu anda kullanılamıyor.

    Azure CLI kullanarak bir Microsoft Entra uygulama kaydı oluşturmak için şu adımları izleyin:

    1. komutunu kullanarak az ad sp create bir uygulama kaydı oluşturun.

    2. Tüm ayrıntıları gözden geçirmek için komutunu çalıştırın az ad sp show .

    3. Her iki komutun çıktısından istemci kimliğini, nesne kimliğini, kiracı kimliğini ve daha sonra kullanmak üzere saklamanız gereken istemci gizli dizi değerlerini bulun ve kaydedin.

    Azure portalını kullanarak bir Microsoft Entra uygulama kaydı oluşturmak için şu adımları izleyin:

    1. Azure portalını kullanarak yeni bir Microsoft Entra uygulama kaydı oluşturun.

    2. Oluşturma işlemi tamamlandıktan sonra portalda yeni uygulama kaydını bulun.

    3. Kayıt menüsünde Genel Bakış'ı seçin ve istemci kimliği, kiracı kimliği ve istemci gizli anahtarı değerlerini kaydedin.

    4. Nesne kimliğini bulmak için Yerel dizinde yönetilen uygulama alanının yanında uygulama kaydınızın adını seçin. Özellikler görünümünden nesne kimliğini kopyalayın.

Mantıksal uygulamalar oluşturma ve dağıtma

Azure CLI veya Visual Studio Code kullanmak isteyip istemediğinize bağlı olarak, belirli önkoşulları ve adımları gözden geçirmek için eşleşen sekmeyi seçin.

Başlamadan önce aşağıdaki öğelere sahip olmanız gerekir:

Ortamı ve CLI sürümünü denetleme

  1. Azure Portal’ında oturum açın. Aşağıdaki komutu çalıştırarak aboneliğinizin etkin olup olmadığını denetleyin:

    az login
    
  2. Aşağıdaki komutu çalıştırarak terminal veya komut penceresinde Azure CLI sürümünüzü denetleyin:

    az --version
    

    En son sürüm için en son sürüm notları bölümüne bakın.

  3. En son sürüme sahip değilseniz, işletim sisteminiz veya platformunuz için yükleme kılavuzunu izleyerek yüklemenizi güncelleştirin.

Azure CLI için Azure Logic Apps (Standart) uzantısını yükleme

Aşağıdaki komutu çalıştırarak Azure CLI için önizleme tek kiracılı Azure Logic Apps (Standart) uzantısını yükleyin:

az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"

Kaynak grubu oluştur

Mantıksal uygulamanız için henüz bir kaynak grubunuz yoksa komutunu az group createçalıştırarak grubu oluşturun. Azure hesabınız için varsayılan bir abonelik ayarlamadığınız sürece, parametresini abonelik adınız veya tanımlayıcınızla kullandığınızdan --subscription emin olun. Aksi takdirde parametresini --subscription kullanmanız gerekmez.

İpucu

Varsayılan aboneliği ayarlamak için aşağıdaki komutu çalıştırın ve değerini abonelik adınız veya tanımlayıcınızla değiştirin MySubscription .

az account set --subscription MySubscription

Örneğin, aşağıdaki komut konumunda eastusadlı MyResourceGroupName Azure aboneliğini kullanarak adlı MySubscription bir kaynak grubu oluşturur:

az group create --name MyResourceGroupName 
   --subscription MySubscription 
   --location eastus

Kaynak grubunuz başarıyla oluşturulduysa çıkış olarak provisioningState Succeededgösterilir:

<...>
   "name": "testResourceGroup",
   "properties": {
      "provisioningState": "Succeeded"
    },
<...>

Mantıksal Uygulama oluşturma

Azure Arc özellikli bir mantıksal uygulama oluşturmak için aşağıdaki az logicapp creategerekli parametrelerle komutunu çalıştırın. Mantıksal uygulamanızın, özel konumunuzun ve Kubernetes ortamınızın kaynak konumlarının tümü aynı olmalıdır.

Parametreler Açıklama
--name -n Mantıksal uygulamanız için benzersiz bir ad
--resource-group -g Mantıksal uygulamanızı oluşturmak istediğiniz kaynak grubunun adı. Kullanacağınız bir kaynak grubu yoksa bir kaynak grubu oluşturun.
--storage-account -s Mantıksal uygulamanızla kullanılacak depolama hesabı. Aynı kaynak grubundaki depolama hesapları için bir dize değeri kullanın. Farklı bir kaynak grubundaki depolama hesapları için bir kaynak kimliği kullanın.
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

Özel bir Azure Container Registry (ACR) görüntüsü kullanarak Azure Arc özellikli bir mantıksal uygulama oluşturmak için aşağıdaki az logicapp creategerekli parametrelerle komutunu çalıştırın:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   --deployment-container-image-name myacr.azurecr.io/myimage:tag
   --docker-registry-server-password MyPassword 
   --docker-registry-server-user MyUsername

Mantıksal uygulama ayrıntılarını göster

Azure Arc özellikli mantıksal uygulamanızla ilgili ayrıntıları göstermek için aşağıdaki az logicapp showgerekli parametrelerle komutunu çalıştırın:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Mantıksal uygulamayı dağıtma

Azure Arc özellikli mantıksal uygulamanızı Azure Uygulaması Service'in Kudu zip dağıtımını kullanarak dağıtmak için aşağıdaki az logicapp deployment source config-zipgerekli parametrelerle komutunu çalıştırın:

Önemli

Zip dosyanızın projenizin yapıtlarını kök düzeyinde içerdiğinden emin olun. Bu yapıtlar tüm iş akışı klasörlerini, host.json, connections.json gibi yapılandırma dosyalarını ve diğer ilgili dosyaları içerir. Proje yapınızda henüz mevcut olmayan klasörlere ek klasör eklemeyin veya herhangi bir yapıt koymayın. Örneğin, bu listede örnek bir MyBuildArtifacts.zip dosya yapısı gösterilmektedir:

MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --src MyBuildArtifact.zip

Mantıksal uygulamayı başlatma

Azure Arc özellikli mantıksal uygulamanızı başlatmak için aşağıdaki az logicapp startgerekli parametrelerle komutunu çalıştırın:

az logicapp start --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Mantıksal uygulamayı durdurma

Azure Arc özellikli mantıksal uygulamanızı durdurmak için aşağıdaki az logicapp stopgerekli parametrelerle komutunu çalıştırın:

az logicapp stop --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Mantıksal uygulamayı yeniden başlatma

Azure Arc özellikli mantıksal uygulamanızı yeniden başlatmak için aşağıdaki az logicapp restartgerekli parametrelerle komutunu çalıştırın:

az logicapp restart --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Mantıksal uygulamayı silme

Azure Arc özellikli mantıksal uygulamanızı silmek için aşağıdaki az logicapp deletegerekli parametrelerle komutunu çalıştırın:

az logicapp delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Bağlantı kimlik doğrulamayı ayarlama

Şu anda Azure Arc özellikli Kubernetes kümeleri yönetilen API bağlantılarının kimliğini doğrulamak için mantıksal uygulamayla yönetilen kimlik kullanmayı desteklememektedir. İş akışlarınızda yönetilen bağlayıcıları kullandığınızda bu Azure tarafından barındırılan ve yönetilen bağlantıları oluşturursunuz.

Bunun yerine, Microsoft Entra Id'de kendi uygulama kaydınızı oluşturmanız gerekir. Ardından bu uygulama kaydını Azure Arc özellikli Logic Apps'te dağıtılan ve çalıştırılan mantıksal uygulamalar için kimlik olarak kullanabilirsiniz. Daha fazla bilgi için en üst düzey önkoşulları gözden geçirin.

Uygulama kaydınızdan istemci kimliğine, nesne kimliğine, kiracı kimliğine ve istemci gizli dizisine ihtiyacınız vardır. Dağıtmak için Visual Studio Code kullanıyorsanız, mantıksal uygulamanızı Microsoft Entra kimliğiyle ayarlamak için yerleşik bir deneyime sahip olursunuz. Daha fazla bilgi için Bkz . Mantıksal uygulama iş akışları oluşturma ve dağıtma - Visual Studio Code.

Ancak geliştirme için Visual Studio Code kullanıyorsanız ancak dağıtmak için Azure CLI veya otomatik işlem hatları kullanıyorsanız aşağıdaki adımları izleyin.

Projenizde bağlantı ve uygulama ayarlarını yapılandırma

  1. Mantıksal uygulama projenizin connections.json dosyasında yönetilen bağlantının nesnesini bulun authentication . Bu nesnenin içeriğini, daha önce en üst düzey önkoşullarda oluşturduğunuz uygulama kayıt bilgilerinizle değiştirin:

    "authentication": {
       "type": "ActiveDirectoryOAuth",
       "audience": "https://management.core.windows.net/",
       "credentialType": "Secret",
       "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')",
       "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')",
       "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')"
    } 
    
  2. Mantıksal uygulama projenizin local.settings.json dosyasına istemci kimliğinizi, nesne kimliğinizi, kiracı kimliğinizi ve istemci gizli dizinizi ekleyin. Dağıtımdan sonra bu ayarlar mantıksal uygulama ayarlarınız haline gelir.

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>",
          "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID",
          "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>",
          "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>"
       }
    }
    

Önemli

Üretim senaryoları veya ortamları için, örneğin bir anahtar kasası kullanarak bu tür gizli dizileri ve hassas bilgileri koruduğunuz ve güvenli hale getirdiğinizden emin olun.

Erişim ilkeleri ekleme

Tek kiracılı Azure Logic Apps'te her mantıksal uygulama, Azure tarafından barındırılan ve yönetilen bağlantıları kullanmak için erişim ilkeleri tarafından izin verilen bir kimliğe sahiptir. Azure portalını veya altyapı dağıtımlarını kullanarak bu erişim ilkelerini ayarlayabilirsiniz.

ARM şablonu

Azure Resource Manager şablonunuzda (ARM şablonu), yönetilen her API bağlantısı için aşağıdaki kaynak tanımını ekleyin ve aşağıdaki bilgileri sağlayın:

Parametre Açıklama
<bağlantı adı> Yönetilen API bağlantınızın adı, örneğin office365
<object-ID> Daha önce uygulama kaydınızdan kaydedilen Microsoft Entra kimliğinizin nesne kimliği
<kiracı kimliği> Daha önce uygulama kaydınızdan kaydedilen Microsoft Entra kimliğinizin kiracı kimliği
{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

Daha fazla bilgi için Microsoft.Web/connections/accesspolicies (ARM şablonu) belgelerini gözden geçirin.

Azure portal

Bu görev için, uygulama kimliği olarak daha önce kaydedilmiş istemci kimliğinizi kullanın.

  1. Azure portalında mantıksal uygulamanızı bulun ve açın. Mantıksal uygulama menünüzün İş Akışları'nın altında, mantıksal uygulama kaynağınız için iş akışlarındaki tüm bağlantıları listeleyen Bağlantılar'ı seçin.

  2. API Bağlantıları'nın altında, bu örnekte yer alan office365 bir bağlantı seçin.

  3. Bağlantı menüsünde, Ayarlar'ın altında Erişim ilkeleri>Ekle'yi seçin.

  4. Erişim ilkesi ekle bölmesindeki arama kutusunda daha önce kaydedilmiş istemci kimliğinizi bulun ve seçin.

  5. bitirdiğinizde Ekle'yi seçin.

  6. Mantıksal uygulamanızda Azure'da barındırılan her bağlantı için bu adımları yineleyin.

DevOps dağıtımlarını otomatikleştirme

Azure Arc özellikli mantıksal uygulamalarınızı derlemek ve dağıtmak için tek kiracı tabanlı mantıksal uygulamalarla aynı işlem hatlarını ve işlemleri kullanabilirsiniz. DevOps işlem hatlarını kullanarak altyapı dağıtımlarını otomatikleştirmek için, hem kapsayıcı hem de kapsayıcı dağıtımları için altyapı düzeyinde aşağıdaki değişiklikleri yapın.

Standart dağıtım (tutarsız)

Mantıksal uygulama dağıtımı için zip dağıtımı kullanıyorsanız kapsayıcı görüntülerini barındırmak için bir Docker kayıt defteri ayarlamanız gerekmez. Kubernetes'te mantıksal uygulamalar teknik olarak kapsayıcılarda çalışsa da Azure Arc özellikli Logic Apps bu kapsayıcıları sizin için yönetir. Bu senaryo için altyapınızı ayarlarken aşağıdaki görevleri tamamlayın:

  • Kubernetes'te mantıksal uygulama oluşturduğunuzu kaynak sağlayıcısına bildirin.
  • Dağıtımınıza bir App Service planı ekleyin. Daha fazla bilgi için App Service planını dağıtıma dahil et'i gözden geçirin.

Azure Resource Manager şablonunuzda (ARM şablonu) aşağıdaki değerleri ekleyin:

Kalem JSON özelliği Açıklama
Konum location Özel konumunuz ve Kubernetes ortamınızla aynı kaynak konumunu (Azure bölgesi) kullandığınızdan emin olun. Mantıksal uygulamanızın, özel konumunuzun ve Kubernetes ortamınızın kaynak konumlarının tümü aynı olmalıdır.

Not: Bu değer özel konumunuzun adıyla aynı değildir.

Uygulama türü kind Azure platformunun uygulamanızı tanımlayabilmesi için dağıttığınız uygulama türü. Azure Logic Apps için bu bilgiler aşağıdaki örneğe benzer: kubernetes,functionapp,workflowapp,linux
Genişletilmiş Konum extendedLocation Bu nesne, Kubernetes ortamınız için özel konumunuzu gerektirir "name" ve olarak ayarlanmış "CustomLocation"olmalıdır"type".
Barındırma planı kaynak kimliği serverFarmId İlişkili App Service planının kaynak kimliği aşağıdaki gibi biçimlendirilmiştir:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

Depolama bağlantı dizesi AzureWebJobsStorage Depolama hesabınızın bağlantı dizesi

Önemli: ARM şablonunuzda depolama hesabınız için bağlantı dizesi sağlamanız gerekir. Üretim senaryoları veya ortamları için, örneğin bir anahtar kasası kullanarak bu tür gizli dizileri ve hassas bilgileri koruduğunuz ve güvenli hale getirdiğinizden emin olun.

ARM şablonu

Aşağıdaki örnekte, ARM şablonunuzda kullanabileceğiniz örnek azure arc özellikli Logic Apps kaynak tanımı açıklanmaktadır. Daha fazla bilgi için Microsoft.Web/sites şablon biçimi (JSON) belgelerini gözden geçirin.

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": "kubernetes,functionapp,workflowapp,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "clientAffinityEnabled": false,
      "name": "[parameters('name')]",
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "dotnet"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "Node|12"
      }
   }
}

Not

Varsayılan olarak, mantıksal uygulamanız için FUNCTIONS_WORKER_RUNTIME uygulama ayarı şeklindedir dotnet. node Daha önce varsayılan değerdi. Ancak artık dotnet farklı bir değere sahip uygulamalar için bile tüm yeni ve mevcut dağıtılan Arc özellikli mantıksal uygulamalar için varsayılan değerdir. Bu değişiklik iş akışınızın çalışma zamanını etkilememelidir ve her şey daha önce olduğu gibi çalışmalıdır. Daha fazla bilgi için FUNCTIONS_WORKER_RUNTIME uygulama ayarına bakın.

Mantıksal uygulamanızın APP_KIND uygulama ayarı workflowapp olarak ayarlanmıştır, ancak bazı senaryolarda, örneğin Azure Resource Manager şablonları veya ayarın dahil edilemeyebileceği diğer senaryolar nedeniyle bu uygulama ayarı eksiktir. JavaScript Kodu Yürüt eylemi veya iş akışı çalışmayı durdurur gibi bazı eylemler çalışmazsa, APP_KIND uygulama ayarının mevcut olup olmadığını ve workflowapp olarak ayarlanıp ayarlanmadığını denetleyin. Daha fazla bilgi için APP_KIND uygulama ayarına bakın.

Kapsayıcı dağıtımı

Kapsayıcı araçlarını ve dağıtım işlemlerini kullanmayı tercih ediyorsanız mantıksal uygulamalarınızı kapsayıcıya alabilir ve Azure Arc özellikli Logic Apps'e dağıtabilirsiniz. Bu senaryo için altyapınızı ayarlarken aşağıdaki üst düzey görevleri tamamlayın:

  • Kapsayıcı görüntülerinizi barındırmak için bir Docker kayıt defteri ayarlayın.

  • Mantıksal uygulamanızı kapsayıcıya almak için mantıksal uygulama projenizin kök klasörüne aşağıdaki Dockerfile dosyasını ekleyin ve Docker kayıt defterinizde görüntü oluşturma ve yayımlama adımlarını izleyin; örneğin Öğretici: Azure Container Registry Görevleri ile bulutta kapsayıcı görüntüleri oluşturma ve dağıtma.

    Not

    Depolama sağlayıcınız olarak SQL kullanıyorsanız, Azure İşlevleri görüntü sürümü 3.3.1 veya sonraki bir sürümü kullandığınızdan emin olun.

    FROM mcr.microsoft.com/azure-functions/node:3.3.1
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_V2_COMPATIBILITY_MODE=true
    COPY . /home/site/wwwroot
    RUN cd /home/site/wwwroot
    
  • Kubernetes'te mantıksal uygulama oluşturduğunuzu kaynak sağlayıcısına bildirin.

  • Dağıtım şablonunuzda, dağıtmayı planladığınız Docker kayıt defteri ve kapsayıcı görüntüsünün üzerine gelin. Tek kiracılı Azure Logic Apps, Docker kayıt defterinizden kapsayıcı görüntüsünü almak için bu bilgileri kullanır.

  • Dağıtımınıza bir App Service planı ekleyin. Daha fazla bilgi için App Service planını dağıtıma dahil et'i gözden geçirin.

Azure Resource Manager şablonunuzda (ARM şablonu)aşağıdaki değerleri ekleyin:

Kalem JSON özelliği Açıklama
Konum location Özel konumunuz ve Kubernetes ortamınızla aynı kaynak konumunu (Azure bölgesi) kullandığınızdan emin olun. Mantıksal uygulamanızın, özel konumunuzun ve Kubernetes ortamınızın kaynak konumlarının tümü aynı olmalıdır.

Not: Bu değer özel konumunuzun adıyla aynı değildir.

Uygulama türü kind Azure platformunun uygulamanızı tanımlayabilmesi için dağıttığınız uygulama türü. Azure Logic Apps için bu bilgiler aşağıdaki örneğe benzer: kubernetes,functionapp,workflowapp,container
Genişletilmiş Konum extendedLocation Bu nesne, Kubernetes ortamınız için özel konumunuzu gerektirir "name" ve olarak "CustomLocation"ayarlanmış olmalıdır"type".
Kapsayıcı adı linuxFxVersion Kapsayıcınızın adı aşağıdaki gibi biçimlendirilmiş: DOCKER\|<container-name>
Barındırma planı kaynak kimliği serverFarmId İlişkili App Service planının kaynak kimliği aşağıdaki gibi biçimlendirilmiştir:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

Depolama bağlantı dizesi AzureWebJobsStorage Depolama hesabınızın bağlantı dizesi

Önemli: Docker kapsayıcısına dağıtım yaparken, ARM şablonunuzdaki depolama hesabınız için bağlantı dizesi sağlamanız gerekir. Üretim senaryoları veya ortamları için, örneğin bir anahtar kasası kullanarak bu tür gizli dizileri ve hassas bilgileri koruduğunuz ve güvenli hale getirdiğinizden emin olun.

Docker kayıt defterinize ve kapsayıcı görüntünüze başvurmak için şablonunuzda şu değerleri ekleyin:

Kalem JSON özelliği Açıklama
Docker kayıt defteri sunucusu URL'si DOCKER_REGISTRY_SERVER_URL Docker kayıt defteri sunucusunun URL'si
Docker kayıt defteri sunucusu DOCKER_REGISTRY_SERVER_USERNAME Docker kayıt defteri sunucusuna erişmek için kullanılan kullanıcı adı
Docker kayıt defteri sunucusu parolası DOCKER_REGISTRY_SERVER_PASSWORD Docker kayıt defteri sunucusuna erişim parolası

ARM şablonu

Aşağıdaki örnekte, ARM şablonunuzda kullanabileceğiniz örnek azure arc özellikli Logic Apps kaynak tanımı açıklanmaktadır. Daha fazla bilgi için Microsoft.Web/sites şablon biçimi (ARM şablonu) belgelerini gözden geçirin.

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": " kubernetes,functionapp,workflowapp,container",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "name": "[parameters('name')]",
      "clientAffinityEnabled": false,
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "dotnet"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }, 
            {
               "name": "DOCKER_REGISTRY_SERVER_URL",
               "value": "<docker-registry-server-URL>"
            },
            { 
               "name": "DOCKER_REGISTRY_SERVER_USERNAME",
               "value": "<docker-registry-server-username>"
            },
            {
               "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
               "value": "<docker-registry-server-password>"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "DOCKER|<container-name>"
      }
   }
}

Not

Daha önce, FUNCTIONS_WORKER_RUNTIME ayarının varsayılan değeriydinode. Şimdi, dotnet farklı bir değere sahip uygulamalar için bile tüm yeni ve mevcut dağıtılmış Standart mantıksal uygulamalar için varsayılan değerdir. Bu değişiklik iş akışınızın çalışma zamanını etkilememelidir ve her şey daha önce olduğu gibi çalışmalıdır. Daha fazla bilgi için FUNCTIONS_WORKER_RUNTIME uygulama ayarına bakın.

App Service planını dağıtıma dahil et

İster standart ister kapsayıcı dağıtımınız olsun, dağıtımınıza bir App Service planı eklemeniz gerekir. Bu plan Kubernetes ortamıyla daha az ilgili hale gelse de, hem standart hem de kapsayıcı dağıtımları için bir App Service planı gerekir.

Diğer oluşturma seçenekleri genellikle bu plan için Azure kaynağını sağlamayı işlerken, dağıtımlarınızda "kod olarak altyapı" şablonları kullanılıyorsa, plan için Azure kaynağını açıkça oluşturmanız gerekir. Barındırma planı kaynağı değişmez, yalnızca sku bilgiler değişir.

Azure Resource Manager şablonunuzda (ARM şablonu)aşağıdaki değerleri ekleyin:

Kalem JSON özelliği Açıklama
Konum location Özel konumunuz ve Kubernetes ortamınızla aynı kaynak konumunu (Azure bölgesi) kullandığınızdan emin olun. Mantıksal uygulamanızın, özel konumunuzun ve Kubernetes ortamınızın kaynak konumlarının tümü aynı olmalıdır.

Not: Bu değer özel konumunuzun adıyla aynı değildir.

Tip kind Dağıtılan ve dağıtılması gereken uygulama hizmeti planı türü kubernetes,linux
Genişletilmiş Konum extendedLocation Bu nesne, Kubernetes ortamınız için özel konumunuzu gerektirir "name" ve olarak "CustomLocation"ayarlanmış olmalıdır"type".
Barındırma planı adı name App Service planının adı
Plan katmanı sku: tier App Service plan katmanı K1
Plan adı sku: name App Service planı adı( Kubernetes

ARM şablonu

Aşağıdaki örnekte, uygulama dağıtımınızla birlikte kullanabileceğiniz örnek bir App Service planı kaynak tanımı açıklanmaktadır. Daha fazla bilgi için Microsoft.Web/serverfarms şablon biçimi (ARM şablonu) belgelerini gözden geçirin.

{
   "type": "Microsoft.Web/serverfarms",
   "apiVersion": "2020-12-01",
   "location": "<location>",
   "name": "<hosting-plan-name>",
   "kind": "kubernetes,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
   },
   "sku": {
      "tier": "Kubernetes",
      "name": "K1", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

Varsayılan ölçeklendirme davranışını değiştirme

Azure Arc özellikli Logic Apps, arka uç depolama kuyruğundaki iş sayısına göre mantıksal uygulamalarınız için ölçeklendirmeyi otomatik olarak yönetir. Ancak, varsayılan ölçeklendirme davranışını değiştirebilirsiniz.

Mantıksal uygulamada iş akışı tanımı çalıştırılacak eylemlerin sırasını belirtir. Bir iş akışı çalıştırması tetiklendiğinde, Azure Logic Apps çalışma zamanı iş akışı tanımındaki her eylem türü için bir oluşturur. Çalışma zamanı daha sonra bu işleri bir iş sıralayıcısı olarak düzenler. Bu sıralayıcı iş akışı tanımı için işleri çalıştırır, ancak temel alınan Azure Logic Apps iş düzenleme altyapısı her işi çalıştırır.

Durum bilgisi olan iş akışları için iş düzenleme altyapısı, iş sıralayıcılarındaki işleri zamanlamak için depolama kuyruğu iletilerini kullanır. Arka planda, iş dağıtıcıları (veya dağıtıcı çalışan örnekleri) bu iş kuyruklarını izler. Düzenleme altyapısı, iş kuyruklarını izlemek için varsayılan en düşük ve en fazla çalışan örneği sayısını kullanır. Durum bilgisi olmayan iş akışları için düzenleme altyapısı eylem durumlarını tamamen bellekte tutar.

Varsayılan ölçeklendirme davranışını değiştirmek için, iş kuyruklarını izleyen farklı en düşük ve en fazla çalışan örneği sayısını belirtirsiniz.

Ölçeklendirmeyi değiştirme önkoşulları

Azure Arc özellikli Kubernetes kümenizde, önceden oluşturduğunuz App Service paket uzantısının keda.enabled özelliği olarak trueayarlanmış olması gerekir. Daha fazla bilgi için en üst düzey önkoşulları gözden geçirin.

Ölçeklendirme eşiğini değiştirme

Azure Arc özellikli Logic Apps'te iş kuyruğunun uzunluğu bir ölçek olayını tetikler ve mantıksal uygulamanız için ölçeklendirmenin ne sıklıkta gerçekleştiğine ilişkin bir eşik ayarlar. Varsayılan değeri işler olarak ayarlanmış 20 olan kuyruk uzunluğunu değiştirebilirsiniz. Daha az sıklıkta ölçeklendirmek için kuyruk uzunluğunu artırın. Daha sık ölçeklendirmek için kuyruk uzunluğunu azaltın. Bu işlem biraz deneme ve hata gerektirebilir.

Kuyruk uzunluğunu değiştirmek için mantıksal uygulama projenizin kök düzeyindeki host.json dosyasında özelliğini ayarlayın Runtime.ScaleMonitor.KEDA.TargetQueueLength , örneğin:

"extensions": {
   "workflow": {
      "settings": {
         "Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
      }
   }
}

Aktarım hızı üst sınırını değiştirme

Mevcut bir mantıksal uygulama kaynağında, varsayılan değeri olarak ayarlanmış 2olan en fazla çalışan örneği sayısını değiştirebilirsiniz. Bu değer, iş kuyruklarını kaç çalışan örneğinin izleyebilebileceğine ilişkin üst sınırı denetler.

Bu üst sınırı değiştirmek için Azure CLI (yalnızca mantıksal uygulama oluşturma) ve Azure portalını kullanın.

Azure CLI

Yeni bir mantıksal uygulama oluşturmak için komutunu az logicapp createaşağıdaki parametrelerle çalıştırın:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]

En fazla örnek sayınızı yapılandırmak için parametresini --settings kullanın:

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --settings "K8SE_APP_MAX_INSTANCE_COUNT=10"

Azure portal

Tek kiracılı tabanlı mantıksal uygulama ayarlarınızda, aşağıdaki adımları izleyerek ayar değerini ekleyin veya düzenleyin K8SE_APP_MAX_INSTANCE_COUNT :

  1. Azure portalında tek kiracı tabanlı mantıksal uygulamanızı bulun ve açın.

  2. Mantıksal uygulama menüsünde, Ayarlar'ın altında Yapılandırma'yı seçin.

  3. Yapılandırma bölmesinde, Uygulama ayarları'nın altında yeni bir uygulama ayarı ekleyin veya zaten eklenmişse mevcut değeri düzenleyin.

    1. Yeni uygulama ayarı'nıK8SE_APP_MAX_INSTANCE_COUNT seçin ve istediğiniz maksimum değere sahip ayarı ekleyin.

    2. Ayar için K8SE_APP_MAX_INSTANCE_COUNT mevcut değeri düzenleyin.

  4. bitirdiğinizde, değişikliklerinizi kaydedin.

Aktarım hızını en düşük düzeyde değiştirme

Mevcut bir mantıksal uygulama kaynağında, varsayılan değeri olarak ayarlanmış 1olan en az çalışan örneği sayısını değiştirebilirsiniz. Bu değer, iş kuyruklarını kaç çalışan örneğinin izleyebilebileceğine ilişkin alt sınırı denetler. Yüksek kullanılabilirlik veya performans için bu değeri artırın.

Bu minimum değeri değiştirmek için Azure CLI'yı veya Azure portalını kullanın.

Azure CLI

Mevcut bir mantıksal uygulama kaynağı için komutunu az logicapp scaleaşağıdaki parametrelerle çalıştırın:

az logicapp scale --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --instance-count 5 

Yeni bir mantıksal uygulama oluşturmak için komutunu az logicapp createaşağıdaki parametrelerle çalıştırın:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]

Azure portal

Tek kiracılı tabanlı mantıksal uygulama ayarlarınızda, şu adımları izleyerek Ölçeği genişletme özellik değerini değiştirin:

  1. Azure portalında tek kiracı tabanlı mantıksal uygulamanızı bulun ve açın.

  2. Mantıksal uygulama menüsünde, Ayarlar'ın altında Ölçeği genişlet'i seçin.

  3. Ölçeği genişletme bölmesinde, minimum örnekler kaydırıcısını istediğiniz değere sürükleyin.

  4. bitirdiğinizde, değişikliklerinizi kaydedin.

Sorunları giderme

Dağıtılan mantıksal uygulamalarınız hakkında daha fazla bilgi edinmek için aşağıdaki seçenekleri deneyin:

Uygulama ayarlarına ve yapılandırmasına erişme

Uygulama ayarlarınıza erişmek için komutunu az logicapp config appsettingsaşağıdaki parametrelerle çalıştırın:

az logicapp config appsettings list --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Bir uygulama ayarını yapılandırmak için komutunu az logicapp config appsettings setaşağıdaki parametrelerle çalıştırın. parametresini --settings ayarınızın adı ve değeriyle kullandığınızdan emin olun.

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --settings "MySetting=1"

Bir uygulama ayarını silmek için komutunu az logicapp config appsettings deleteaşağıdaki parametrelerle çalıştırın. parametresini --setting-names silmek istediğiniz ayarın adıyla kullandığınızdan emin olun.

az logicapp config appsettings delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --setting-names MySetting

Mantıksal uygulama özelliklerini görüntüleme

Uygulama bilgilerinizi ve özelliklerinizi görüntülemek için komutunu az logicapp showaşağıdaki parametrelerle çalıştırın:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

İş akışı etkinliğini izleme

Mantıksal uygulamanızdaki bir iş akışının etkinliğini görüntülemek için şu adımları izleyin:

  1. Azure portalında dağıtılan mantıksal uygulamanızı bulun ve açın.

  2. Mantıksal uygulama menüsünde İş Akışları'nı ve ardından iş akışınızı seçin.

  3. İş akışı menüsünde İzleyici'yi seçin.

Günlükleri toplama

Mantıksal uygulamanızla ilgili günlüğe kaydedilen verileri almak için, henüz etkinleştirilmemişse mantıksal uygulamanızda Application Insights'ı etkinleştirin.

Sonraki adımlar