{"id":458,"date":"2023-05-23T10:14:57","date_gmt":"2023-05-23T17:14:57","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/semantic-kernel\/?p=458"},"modified":"2023-05-24T09:44:14","modified_gmt":"2023-05-24T16:44:14","slug":"how-to-deploy-semantic-kernel-to-azure-as-a-web-application-service","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/agent-framework\/how-to-deploy-semantic-kernel-to-azure-as-a-web-application-service\/","title":{"rendered":"How to deploy Semantic Kernel to Azure as a web application service"},"content":{"rendered":"<h2><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-89\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge.png\" alt=\"Image skpatternlarge\" width=\"1638\" height=\"136\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge.png 1638w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-300x25.png 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-1024x85.png 1024w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-768x64.png 768w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-1536x128.png 1536w\" sizes=\"(max-width: 1638px) 100vw, 1638px\" \/><\/a><\/h2>\n<p><span data-contrast=\"auto\">We have heard feedback from our community about having the ability to deploy Semantic Kernel to Azure. <\/span><span data-contrast=\"auto\">We have listened and want to share how you can deploy Semantic Kernel to your Azure Subscription as a web application service. <\/span><\/p>\n<p><span data-contrast=\"auto\">Deploying to Azure provides a great pathway for developers to take advantage of Azure compute and other services such as Azure Cognitive Services for Responsible AI and vectorized databases. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0Setup and d<\/span><span data-contrast=\"auto\">eployment are extremely simple! You can use existing Azure Open AI resources and create new resources or even use Open AI resources.\u00a0<\/span><\/p>\n<p>So what is deployed? Below are the key resources created in the Azure Resource Group.<\/p>\n<ol dir=\"auto\">\n<li>Azure web app service: hosts Semantic Kernel.<\/li>\n<li>Application Insights: application logs and debugging.<\/li>\n<li>Azure Cosmos DB: used for chat storage (optional).<\/li>\n<li>Qdrant vector database (within a container): used for embedding (optional).<\/li>\n<li>Azure Speech service: used for speech-to-text (optional).<\/li>\n<\/ol>\n<p>Once the deployment is complete you will have a web app running all your back-end services for Semantic Kernel which can be reached via a web service end point. <span data-contrast=\"auto\">Using this deployment, you can continue to develop your own front-end application or proceed with further deployments with a customized version of Semantic Kernel.\u00a0 <\/span><\/p>\n<p><span data-contrast=\"auto\">To get started select the use case and deployment option that is best for you. For more details on script parameters and considerations you can refer to the Semantic Kernel learn site <a href=\"https:\/\/aka.ms\/sk-docs-azuredeploy\">here<\/a>.\u00a0<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 112px;\">\n<tbody>\n<tr style=\"height: 28px;\">\n<td style=\"width: 41.4654%; height: 28px;\"><strong>Use Case<\/strong><\/td>\n<td style=\"width: 25.2012%; height: 28px;\"><strong>Deployment Option<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 41.4654%; height: 28px;\"><u>Use existing : Azure OpenAI Resources <\/u>Use this option to use an existing Azure OpenAI instance and connect the Semantic Kernel web API to it.<\/td>\n<td style=\"width: 25.2012%; height: 28px;\"><a title=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-portal\" href=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-portal\" data-href=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-portal\"><img decoding=\"async\" src=\"https:\/\/aka.ms\/deploytoazurebutton\" alt=\"Deploy to Azure\" data-src=\"https:\/\/aka.ms\/deploytoazurebutton\" \/><\/a><\/p>\n<p><a title=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-powershell\" href=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-powershell\" data-href=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-powershell\">PowerShell File<\/a><\/p>\n<p><a title=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-bash\" href=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-bash\" data-href=\"https:\/\/aka.ms\/sk-deploy-existing-azureopenai-bash\">Bash File<\/a><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 41.4654%; height: 28px;\"><u>Create new : Azure OpenAI Resources <\/u>Use this option to deploy Semantic Kernel in a web app service and have it use a new instance of Azure OpenAI<\/td>\n<td style=\"width: 25.2012%; height: 28px;\"><a title=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-portal\" href=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-portal\" data-href=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-portal\"><img decoding=\"async\" src=\"https:\/\/aka.ms\/deploytoazurebutton\" alt=\"Deploy to Azure\" data-src=\"https:\/\/aka.ms\/deploytoazurebutton\" \/><\/a><\/p>\n<p><a title=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-powershell\" href=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-powershell\" data-href=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-powershell\">PowerShell File<\/a><\/p>\n<p><a title=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-bash\" href=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-bash\" data-href=\"https:\/\/aka.ms\/sk-deploy-new-azureopenai-bash\">Bash File<\/a><\/td>\n<\/tr>\n<tr style=\"height: 28px;\">\n<td style=\"width: 41.4654%; height: 28px;\"><u>Use existing: OpenAI Resources <\/u>Use this option to use your OpenAI account and connect the Semantic Kernel web API to it.<\/td>\n<td style=\"width: 25.2012%; height: 28px;\"><a title=\"https:\/\/aka.ms\/sk-deploy-openai-portal\" href=\"https:\/\/aka.ms\/sk-deploy-openai-portal\" data-href=\"https:\/\/aka.ms\/sk-deploy-openai-portal\"><img decoding=\"async\" src=\"https:\/\/aka.ms\/deploytoazurebutton\" alt=\"Deploy to Azure\" data-src=\"https:\/\/aka.ms\/deploytoazurebutton\" \/><\/a><\/p>\n<p><a title=\"https:\/\/aka.ms\/sk-deploy-openai-powershell\" href=\"https:\/\/aka.ms\/sk-deploy-openai-powershell\" data-href=\"https:\/\/aka.ms\/sk-deploy-openai-powershell\">PowerShell File<\/a><\/p>\n<p><a title=\"https:\/\/aka.ms\/sk-deploy-openai-bash\" href=\"https:\/\/aka.ms\/sk-deploy-openai-bash\" data-href=\"https:\/\/aka.ms\/sk-deploy-openai-bash\">Bash File<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As an example, if you are using the &#8220;Deploy to Azure&#8221; button with OpenAI resources, you will be presented with a page like below. You will need to review and update the template form to create the resources.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/05\/AzureDeployment-Blogv1.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-515\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/05\/AzureDeployment-Blogv1.jpg\" alt=\"Image AzureDeployment Blogv1\" width=\"590\" height=\"719\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/05\/AzureDeployment-Blogv1.jpg 590w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/05\/AzureDeployment-Blogv1-246x300.jpg 246w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/a><\/p>\n<p>Next click on <strong>Review + create.\u00a0<\/strong>The deployment may take a few minutes and you will be prompted on the portal once all your resources are ready to use.<\/p>\n<p>To confirm your web application server is up and running go to https:\/\/YOUR_INSTANCE_NAME.azurewebsites.net\/probe. To find your instance name go to the <a href=\"https:\/\/ms.portal.azure.com\/\">Azure Portal<\/a> and find the resource group which was just created and click on the &#8216;App Service&#8217;. Your instance name will end with &#8220;-skweb&#8221;.\u00a0Once the server is running, you will see the following page.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/05\/ServerRunningv1.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-517\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/05\/ServerRunningv1.jpg\" alt=\"Image ServerRunningv1\" width=\"1341\" height=\"213\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/05\/ServerRunningv1.jpg 1341w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/05\/ServerRunningv1-300x48.jpg 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/05\/ServerRunningv1-1024x163.jpg 1024w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/05\/ServerRunningv1-768x122.jpg 768w\" sizes=\"(max-width: 1341px) 100vw, 1341px\" \/><\/a><\/p>\n<p>That&#8217;s it; you have your Semantic Kernel Service up and running!<\/p>\n<p>In an upcoming blog we will step through how you can make updates to your deployment.<\/p>\n<h2><strong>Next Steps:<\/strong><\/h2>\n<p>Find more information about Semantic Kernel deployments <a href=\"https:\/\/aka.ms\/sk-docs-azuredeploy\">here <\/a>and how to customize your Semantic Kernel click <a href=\"https:\/\/aka.ms\/sk-docs-azuredeploy-custom\">here<\/a><\/p>\n<p>Join the community and let us know what you think:\u00a0<a href=\"https:\/\/aka.ms\/sk\/discord\" target=\"_blank\" rel=\"noopener\">https:\/\/aka.ms\/sk\/discord<\/a><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-92\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternsmallbw.png\" alt=\"Image skpatternsmallbw\" width=\"1211\" height=\"137\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternsmallbw.png 1211w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternsmallbw-300x34.png 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternsmallbw-1024x116.png 1024w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternsmallbw-768x87.png 768w\" sizes=\"(max-width: 1211px) 100vw, 1211px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have heard feedback from our community about having the ability to deploy Semantic Kernel to Azure. We have listened and want to share how you can deploy Semantic Kernel to your Azure Subscription as a web application service. Deploying to Azure provides a great pathway for developers to take advantage of Azure compute and [&hellip;]<\/p>\n","protected":false},"author":116113,"featured_media":515,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[17,1],"tags":[],"class_list":["post-458","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-semantic-kernel"],"acf":[],"blog_post_summary":"<p>We have heard feedback from our community about having the ability to deploy Semantic Kernel to Azure. We have listened and want to share how you can deploy Semantic Kernel to your Azure Subscription as a web application service. Deploying to Azure provides a great pathway for developers to take advantage of Azure compute and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/users\/116113"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/comments?post=458"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/458\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media\/515"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media?parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/categories?post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/tags?post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}