Bot sağlama ve yayımlama

ŞUNLAR IÇIN GEÇERLIDIR: SDK v4

Bu makalede botunuz için kaynak oluşturmak, botunuzu dağıtıma hazırlamak ve botunuzu Azure'a dağıtmak için Azure CLI'nin nasıl kullanılacağı açıklanır.

Bu makalede, dağıtılmaya hazır bir bota sahip olduğunuz varsayılır. Basit bir yankı botu oluşturma hakkında bilgi için bkz . Bot Framework SDK'sı ile bot oluşturma. Bot Framework Örnekleri deposunda sağlanan örneklerden birini de kullanabilirsiniz.

İpucu

Bu makalede botunuz için bir Azure Bot kaynağı oluşturulur. Web Uygulaması Bot kaynağı veya Bot Kanalları Kayıt kaynağı kullanan mevcut botlar çalışmaya devam eder, ancak bu kaynak türlerini kullanan yeni botlar oluşturamazsınız.

Not

Bot Framework JavaScript, C# ve Python SDK'ları desteklenmeye devam edecektir, ancak Java SDK'sı son uzun vadeli destek Kasım 2023'te sona erecek şekilde kullanımdan kaldırılacaktır.

Java SDK ile oluşturulan mevcut botlar çalışmaya devam edecektir.

Yeni bot derlemesi için Power Virtual Agents'ı kullanmayı göz önünde bulundurun ve doğru sohbet botu çözümünü seçme hakkında bilgi edinin.

Daha fazla bilgi için bkz . Bot oluşturmanın geleceği.

Önkoşullar

  • Java botları için Maven'i yükleyin.

  • Bu işlem, botunuz için kaynak oluşturmak için iki Azure Resource Manager şablonu (ARM şablonu) kullanır.

    Geçerli şablonlarınız yoksa, bot projenizde deploymentTemplates klasörünün bir kopyasını oluşturun: C#, JavaScript, Python veya Java.

Botları sağlamak ve yayımlamak için Azure CLI'yı kullanmak için şunları yapmanız gerekir:

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

  • Azure CLI yüklemesi.

    Programlama diliniz için Azure CLI'nın aşağıdaki sürümünü kullanın. Bazı adımlar CLI'nın sonraki sürümlerinde çalışmaz.

    Dil CLI sürümü
    C# ve JavaScript 2.39.0 veya üzeri
    Python 2.55.0 veya üzeri
    Java 2.29.2

Not

Botunuz depolama hizmeti veya dil hizmetleri gibi ek kaynaklar kullanıyorsa bunların ayrı olarak dağıtılması gerekir.

Dağıtımınızı planlama

Başlamadan önce bu kararları verin.

Karar Notlar
Azure'da bot kaynaklarınızın kimliklerini nasıl yöneteceksiniz? Kullanıcı tarafından atanan yönetilen kimlik, tek kiracılı uygulama kaydı veya mutli kiracı uygulama kaydı kullanabilirsiniz. Daha fazla bilgi için bkz . Kimlik kaynağı oluşturma.
Bot kaynaklarınızı hangi kaynak grubunda veya kaynak gruplarında oluşturacaksınız? Bu işlemi bilene kadar tek bir kaynak grubu kullanmanızı öneririz. Daha fazla bilgi için bkz . Azure kaynaklarını yönetme.
Botunuzun bölgesel mi yoksa küresel mi olacağı Bölgesel botlar hakkında bilgi için bkz. Azure AI Bot Hizmeti'de bölgeselleştirme.

Bot kimliğiniz Azure'da birkaç farklı yolla yönetilebilir.

  • Kullanıcı tarafından atanan yönetilen kimlik olarak bot kimlik bilgilerini kendiniz yönetmeniz gerekmez.
  • Tek kiracılı bir uygulama olarak.
  • Çok kiracılı bir uygulama olarak.

Kullanıcı tarafından atanan yönetilen kimlik ve tek kiracılı uygulama türleri için destek, 4.15.0 sürümünde C# ve JavaScript için Bot Framework SDK'sına eklendi. Bu uygulama türleri diğer dillerde veya Bot Framework Composer, Bot Framework Emulator veya ngrok'ta desteklenmez.

Uygulama türü Destek
Kullanıcı tarafından atanan yönetilen kimlik Azure AI Bot Hizmeti ve C# ile JavaScript SDK'ları
Tek kiracılı Azure AI Bot Hizmeti ve C#, JavaScript ve Python SDK'ları
Çok kiracılı Azure AI Bot Hizmeti, tüm Bot Framework SDK dilleri, Composer, Öykünücü ve ngrok

Önemli

Python botları, Windows hizmetlerini veya botlarını içeren bir kaynak grubuna dağıtılamaz. Ancak, aynı kaynak grubuna birden çok Python botu dağıtılabilir. Farklı bir kaynak grubunda Azure AI hizmetleri gibi başka hizmetler oluşturun.

Azure kaynakları

Botunuzu dağıtmadan önce, ihtiyaç duyacağı Azure kaynaklarını oluşturur (veya sağlarsınız). Bazı adımlar için mevcut bir kaynağı kullanabilir veya yeni bir kaynak oluşturabilirsiniz.

Oluşturacağınız yeni kaynakların adlarına ve kullanacağınız mevcut kaynakların adlarına önceden karar vermek yararlı olabilir. Botunuz bu tür kaynakları kullanır.

  • Botu sağlamak, yayımlamak ve yönetmek için kullanacağınız Azure aboneliği
  • Bir veya daha fazla kaynak grubu
  • Kullanıcı tarafından atanan yönetilen kimlik veya Microsoft Entra Id uygulama kaydı
  • App Service Planı kaynağı
  • App Service kaynağı
  • Azure Bot kaynağı

Kaynaklar arasında kullanılan bilgiler

Azure'da kaynak oluştururken Azure, sonraki adımlarda ihtiyacınız olan kimlikleri, parolaları ve diğer bilgileri oluşturur veya ister. Aşağıdaki tabloda, kaydetmeniz gereken kaynak adlarının ötesindeki bilgiler, hangi adımda oluşturulduğu ve hangi adımlarda kullanıldığı listelenir.

Dikkat

Bu kimliklerin ve parolaların çoğu hassas bilgilerdir. Yaygın güvenlik yönergeleri hakkında bilgi için bkz . Bot Framework güvenlik yönergeleri.

Bilgiler Nerede oluşturuldu veya bulundu Kullanıldığı yer
Kiracı kimliği Oturum açın ve aboneliği seçin App Service kaynağı oluşturmak için Azure CLI kullanma, Azure Bot kaynağı oluşturmak veya güncelleştirmek için Azure CLI kullanma, Proje yapılandırma ayarlarını güncelleştirme
Uygulama türü Kimlik kaynağı oluşturma App Service kaynağı oluşturmak için Azure CLI kullanma, Azure Bot kaynağı oluşturmak veya güncelleştirmek için Azure CLI kullanma, Proje yapılandırma ayarlarını güncelleştirme
Client ID Kimlik kaynağı oluşturma App Service kaynağı oluşturmak için Azure CLI kullanma, Azure Bot kaynağı oluşturmak veya güncelleştirmek için Azure CLI kullanma, Proje yapılandırma ayarlarını güncelleştirme
Temel uygulama hizmeti URL'si App Service kaynağı oluşturmak için Azure CLI kullanma Azure Bot kaynağı oluşturmak veya güncelleştirmek için Azure CLI kullanma
App Service adı App Service kaynağı oluşturmak için Azure CLI kullanma Botunuzu Azure'da yayımlama

Oturum açın ve aboneliği seçin

  1. Komut penceresi açın.

  2. Azure'da oturum açın.

    az login
    
    • Bir tarayıcı penceresi açılır. Oturum açma işlemini tamamlayın.
    • Başarılı olduğunda komut, hesabınızın erişim iznine sahip olduğu aboneliklerin listesini oluşturur.
  3. Kullanılacak aboneliği ayarlamak için şunu çalıştırın:

    az account set --subscription "<subscription>"
    

    Abonelik> için<, kullanılacak aboneliğin kimliğini veya adını kullanın.

  4. Kullanıcı tarafından atanan bir yönetilen kimlik veya tek kiracılı bir bot oluşturacaksanız aboneliğin kaydını tenantId oluşturun. Aşağıdaki adımlarda kiracı kimliğini kullanacaksınız.

İpucu

Genel olmayan bir bulutta çalışmanız gerekiyorsa bkz . Azure CLI ile Azure bulut yönetimi.

Kaynak grupları oluşturun

Henüz uygun bir kaynak grubunuz yoksa, ihtiyacınız olan yeni kaynak gruplarını oluşturmak için komutunu kullanın az group create .

az group create --name "<group>" --location "<region>"
Seçenek Açıklama
Adı Oluşturulacak kaynak grubunun adı.
konum Kaynak grubunun oluşturulacağı bölge.

Daha fazla bilgi için bkz . Azure CLI ile Azure kaynak gruplarını yönetme.

Kimlik kaynağı oluşturma

  1. Kullanıcı tarafından atanan yönetilen kimlik oluşturmak için komutunu kullanın az identity create . Başarılı olduğunda komutu JSON çıkışı oluşturur.

    az identity create --resource-group "<group>" --name "<identity>"
    
    Seçenek Açıklama
    resource-group Kimliğin oluşturulacağı kaynak grubunun adı.
    Adı Oluşturulacak kimlik kaynağının adı.

    Daha fazla bilgi için az identity başvurusuna bakın.

  2. Sonraki adımlarda ihtiyacınız olacak değerleri kaydedin.

    1. Kimlik kaynağının kaynak grubu adı
    2. Kimlik kaynağının adı
    3. clientId komut çıkışından

ARM şablonlarıyla kaynak oluşturma

Botunuz için App Service ve Azure Bot kaynaklarını oluşturun. Her iki adımda da kaynak veya kaynak oluşturmak için arm şablonu ve az deployment group create Azure CLI komutu kullanılır.

  1. Botunuz için bir App Service kaynağı oluşturun. App service yeni veya mevcut bir App Service Planı içinde olabilir.

    Ayrıntılı adımlar için bkz . App Service oluşturmak için Azure CLI kullanma.

  2. Botunuz için bir Azure Bot kaynağı oluşturun.

    Ayrıntılı adımlar için bkz . Azure Botu oluşturmak veya güncelleştirmek için Azure CLI kullanma.

Önemli

Bu adımları her iki sırayla da yapabilirsiniz. Ancak önce Azure Botunuzu oluşturursanız App Service kaynağınızı oluşturduktan sonra mesajlaşma uç noktasını güncelleştirmeniz gerekir.

Proje yapılandırma ayarlarını güncelleştirme

Bot kimlik bilgileri

Botunuzun yapılandırma dosyasına kimlik bilgileri eklemek için bu adımları izleyin. Dosya, botu oluşturmak için kullandığınız programlama diline bağlı olarak farklılık gösterir.

Önemli

Bot Framework SDK'sının Java sürümü yalnızca çok kiracılı botları destekler. Bot Framework SDK'sının Python sürümü çok kiracılı ve tek kiracılı botları destekler. C# ve JavaScript sürümleri, bot kimliğini yönetmek için üç uygulama türünü de destekler.

Dil Dosya adı Notlar
C# appsettings.json Botunuzun kimliğini yönetmek için üç uygulama türünü de destekler.
JavaScript .Env Botunuzun kimliğini yönetmek için üç uygulama türünü de destekler.
Java application.properties Yalnızca çok kiracılı botları destekler.
Python config.py Çok kiracılı ve tek kiracılı botları destekler. Özellikleri yöntem çağrılarına os.environ.get bağımsız değişken olarak sağlayın.

Eklemeniz gereken kimlik bilgileri botunun uygulama türüne bağlıdır. Yapılandırma dosyanızda aşağıdaki değerleri sağlayın.

Yalnızca C# ve JavaScript botlarında kullanılabilir.

Özellik Değer
MicrosoftAppType UserAssignedMSI
MicrosoftAppId Kullanıcı tarafından atanan yönetilen kimliğin istemci kimliği.
MicrosoftAppPassword Uygulanamaz. Kullanıcı tarafından atanan yönetilen kimlik botu için bunu boş bırakın.
MicrosoftAppTenantId Kullanıcı tarafından atanan yönetilen kimliğin kiracı kimliği.

Proje dosyalarınızı hazırlama

Botunuzu dağıtmadan önce proje dosyalarınızı hazırlayın.

  1. Projenizin kök klasörüne geçin. C# için kök, .csproj dosyasını içeren klasördür.

  2. Yayın modunda temiz bir yeniden derleme yapın.

  3. Daha önce yapmadıysanız, yerel kaynak kodu dizininizin köküne gerekli dosyaları eklemek için komutunu çalıştırın az bot prepare-deploy . Bu komut bot proje klasörünüzde bir .deployment dosya oluşturur.

    az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
    
    Seçenek Açıklama
    Lang Botun dili veya çalışma zamanı. Csharp adresini kullanın.
    code-dir Oluşturulan dağıtım dosyalarını yerleştirecek dizin. Projenizin kök klasörünü kullanın. Varsayılan, geçerli dizindir.
    proj-file-path Botunuzun seçeneğine göre .csproj dosyasının code-dir yolu.
  4. Projenizin kök klasöründe, tüm dosyaları ve alt klasörleri içeren bir zip dosyası oluşturun.

Botunuzu Azure'da yayımlama

Bu noktada, botunuzun kodunu App Service kaynağınıza dağıtmaya hazırsınız.

Not

Bu adımın tamamlanması birkaç dakika sürebilir. Ayrıca, dağıtımın bitip botunuzun test edilebilir olması arasında birkaç dakika daha sürebilir.

Uygulama hizmetiniz (web uygulaması) için Kudu zip push dağıtımını kullanarak dağıtım gerçekleştirmek için komut satırından aşağıdaki komutu çalıştırın.

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
Seçenek Açıklama
resource-group Botunuzu içeren Azure kaynak grubunun adı.
Adı Daha önce kullandığınız uygulama hizmetinin adı.
src Oluşturduğunuz sıkıştırılmış proje dosyasının mutlak veya göreli yolu.

İpucu

Varsayılan olarak, bu komut üretim yuvasına dağıtılır. Farklı bir yuva belirtmek için isteğe bağlı --slot parametresini kullanın. Daha fazla bilgi için az webapp deployment source config-zip komut başvurusuna bakın.

Web Sohbetinde Test

  1. Tarayıcınızda Azure portalına gidin.
  2. Bot kaynağınıza gidin.
  3. Web Sohbeti bölmesinde Test'i açın.
  4. Dağıtılan botunuzla etkileşime geçin.

Bot kaydı hakkında daha fazla bilgi için bkz. Bot Hizmeti ile bot kaydetme.

Kaynakları temizleme

Bu uygulamayı yayımlamayacaksanız, aşağıdaki adımlarla ilişkili kaynakları silin:

  1. Azure portalında botunuzun kaynak grubunu açın.
    1. Grubu ve içerdiği tüm kaynakları silmek için Kaynak grubunu sil'i seçin.
    2. Onay bölmesine kaynak grubu adını girin ve Sil'i seçin.
  2. Tek kiracılı veya çok kiracılı bir uygulama oluşturduysanız:
    1. Microsoft Entra Id dikey penceresine gidin.
    2. Botunuz için kullandığınız uygulama kaydını bulun ve silin.

Ek kaynaklar

Bot barındırmak için kullanılan Azure uygulamaları ve kaynakları hakkında daha fazla bilgi için bu makalelere bakın.

Konu Makale
Azure CLI Azure CLI nedir?
Azure abonelik yönetimi Azure CLI ile Azure aboneliklerini yönetme
Azure bölgeleri Bölgeler ve kullanılabilirlik alanları
Kaynak grupları ve kaynak yönetimi Azure kaynaklarını yönetme
Yönetilen kimlikler Azure kaynakları için yönetilen kimlikler nedir?
Tek kiracılı ve çok kiracılı uygulamalar Microsoft Entra Id'de kiracılık
Web uygulamaları App Service
Web uygulamaları için işlem kaynakları App Service planları
Azure Resource Manager şablonları (ARM şablonları) ARM şablonları nedir? ve Azure Resource Manager (ARM) dağıtım şablonlarını Azure CLI ile kullanma
Azure faturalandırması Faturalama ve maliyet yönetimi

Kudu dosyaları

Web uygulaması dağıtım komutu C#, JavaScript ve Python botlarını dağıtmak için Kudu kullanır. Botunuzun kodunu dağıtmak için yapılandırılmamış zip dağıtım API'sini kullanırken davranış aşağıdaki gibidir:

Kudu, varsayılan olarak .zip dosyalardan yapılan dağıtımların çalışmaya hazır olduğunu ve npm yükleme veya dotnet restore/dotnet publish gibi dağıtım sırasında ek derleme adımları gerektirmediğini varsayar.

Dağıtılmakta olan zip dosyasına gerekli tüm bağımlılıkları içeren yerleşik kodunuzu eklemeniz önemlidir; aksi takdirde botunuz istendiği gibi çalışmaz. Daha fazla bilgi için App Service'e dosya dağıtma hakkındaki Azure belgelerine bakın.

Sonraki adımlar