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:
- Azure Arc özellikli Logic Apps nedir?
- Azure Logic Apps'te tek kiracılı ve çok kiracılı karşılaştırma
- Azure Arc'a genel bakış
- Azure Kubernetes Service'e genel bakış
- Azure Arc özellikli Kubernetes nedir?
- Azure Arc özellikli Kubernetes'te özel konumlar
- Azure Arc'ta App Service, İşlevler ve Logic Apps (Önizleme)
- Azure Arc destekli bir Kubernetes kümesini App Service, İşlevler ve Logic Apps (Önizleme) hizmetlerini çalıştıracak şekilde ayarlama
Ö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 create
ayarınıkeda.enabled=true
eklediğ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:
komutunu kullanarak
az ad sp create
bir uygulama kaydı oluşturun.Tüm ayrıntıları gözden geçirmek için komutunu çalıştırın
az ad sp show
.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:
Azure portalını kullanarak yeni bir Microsoft Entra uygulama kaydı oluşturun.
Oluşturma işlemi tamamlandıktan sonra portalda yeni uygulama kaydını bulun.
Kayıt menüsünde Genel Bakış'ı seçin ve istemci kimliği, kiracı kimliği ve istemci gizli anahtarı değerlerini kaydedin.
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:
Yerel bilgisayarınızda yüklü olan en son Azure CLI uzantısı.
Bu uzantıya sahip değilseniz işletim sisteminiz veya platformunuzun yükleme kılavuzunu gözden geçirin.
En son sürüme sahip olduğunuzdan emin değilseniz ortamınızı ve CLI sürümünüzü denetleme adımlarını izleyin.
Azure CLI için önizleme Azure Logic Apps (Standart) uzantısı.
Tek kiracılı Azure Logic Apps genel kullanıma sunulsa da Azure Logic Apps uzantısı hala önizleme aşamasındadır.
Mantıksal uygulamanızın oluşturulacağı yer için bir Azure kaynak grubu.
Bu kaynak grubunuz yoksa, kaynak grubunu oluşturmak için adımları izleyin.
Veri ve çalıştırma geçmişi saklama için mantıksal uygulamanızla birlikte kullanılacak bir Azure depolama hesabı.
Bu depolama hesabınız yoksa mantıksal uygulamanızı oluştururken bu hesabı oluşturabilir veya depolama hesabı oluşturma adımlarını izleyebilirsiniz.
Ortamı ve CLI sürümünü denetleme
Azure Portal’ında oturum açın. Aşağıdaki komutu çalıştırarak aboneliğinizin etkin olup olmadığını denetleyin:
az login
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.
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 eastus
adlı 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
Succeeded
gö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 create
gerekli 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 create
gerekli 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 show
gerekli 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-zip
gerekli 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 start
gerekli 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 stop
gerekli 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 restart
gerekli 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 delete
gerekli 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
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')" }
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.
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.
API Bağlantıları'nın altında, bu örnekte yer alan
office365
bir bağlantı seçin.Bağlantı menüsünde, Ayarlar'ın altında Erişim ilkeleri>Ekle'yi seçin.
Erişim ilkesi ekle bölmesindeki arama kutusunda daha önce kaydedilmiş istemci kimliğinizi bulun ve seçin.
bitirdiğinizde Ekle'yi seçin.
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:
|
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:
|
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 iş 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 true
ayarlanmış 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ış 2
olan 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 create
aş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
:
Azure portalında tek kiracı tabanlı mantıksal uygulamanızı bulun ve açın.
Mantıksal uygulama menüsünde, Ayarlar'ın altında Yapılandırma'yı seçin.
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.
Yeni uygulama ayarı'nı
K8SE_APP_MAX_INSTANCE_COUNT
seçin ve istediğiniz maksimum değere sahip ayarı ekleyin.Ayar için
K8SE_APP_MAX_INSTANCE_COUNT
mevcut değeri düzenleyin.
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ış 1
olan 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 scale
aş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 create
aş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:
Azure portalında tek kiracı tabanlı mantıksal uygulamanızı bulun ve açın.
Mantıksal uygulama menüsünde, Ayarlar'ın altında Ölçeği genişlet'i seçin.
Ölçeği genişletme bölmesinde, minimum örnekler kaydırıcısını istediğiniz değere sürükleyin.
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 appsettings
aş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 set
aş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 delete
aş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 show
aş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:
Azure portalında dağıtılan mantıksal uygulamanızı bulun ve açın.
Mantıksal uygulama menüsünde İş Akışları'nı ve ardından iş akışınızı seçin.
İş 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.