{"id":2944,"date":"2024-08-24T15:10:13","date_gmt":"2024-08-24T14:10:13","guid":{"rendered":"https:\/\/contentlabstudy.com\/soft\/?p=2944"},"modified":"2024-08-24T15:26:24","modified_gmt":"2024-08-24T14:26:24","slug":"net-core-app-deployment","status":"publish","type":"post","link":"https:\/\/contentlabstudy.com\/soft\/net-core-app-deployment\/","title":{"rendered":".NET Core App Deployment"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Deploying a .NET Core application in Azure that utilizes several key infrastructure components, such as web servers, databases, load balancers, and more, involves several steps. Here&#8217;s a comprehensive guide on how to accomplish this:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: <strong>Prepare Your .NET Core Application<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Develop and Test Locally<\/strong>: Ensure your .NET Core application is fully developed and tested locally. This includes verifying that all dependencies (such as databases, configuration files, and external services) are correctly integrated.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: <strong>Set Up an Azure Account and Environment<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Azure Subscription<\/strong>: If you don\u2019t have an Azure account, sign up for a free trial or use an existing subscription.<\/li>\n\n\n\n<li><strong>Azure Resource Group<\/strong>: Create a resource group in the Azure portal. Resource groups are logical containers for all your resources, such as web apps, databases, and storage accounts.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: <strong>Deploy the Web Application (App Service)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Create an App Service<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, navigate to <strong>App Services<\/strong> and click <strong>Create<\/strong>.<\/li>\n\n\n\n<li>Select the appropriate subscription, resource group, and give your App Service a name.<\/li>\n\n\n\n<li>Choose the runtime stack that matches your .NET Core version (e.g., .NET 6, .NET 7).<\/li>\n\n\n\n<li>Select the operating system (Windows or Linux) and the region closest to your users.<\/li>\n\n\n\n<li>Choose a pricing plan that suits your performance and scalability needs.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Deploy Your Application<\/strong>:\n<ul class=\"wp-block-list\">\n<li>You can deploy your application to Azure App Service directly from Visual Studio, Azure CLI, or using CI\/CD pipelines in Azure DevOps.<\/li>\n\n\n\n<li><strong>From Visual Studio<\/strong>: Right-click on your project, choose <strong>Publish<\/strong>, select <strong>Azure<\/strong> as the target, and follow the prompts to deploy to your Azure App Service.<\/li>\n\n\n\n<li><strong>Using Azure CLI<\/strong>: Use the <code>az webapp up<\/code> command to deploy your application:bashCopy code<code>az webapp up --name &lt;AppServiceName> --resource-group &lt;ResourceGroupName> --runtime \"DOTNETCORE|6.0\"<\/code><\/li>\n\n\n\n<li><strong>Using Azure DevOps<\/strong>: Set up a CI\/CD pipeline in Azure DevOps to automate the build and deployment process.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: <strong>Set Up the Database (Azure SQL Database)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Create an Azure SQL Database<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, go to <strong>SQL databases<\/strong> and click <strong>Create<\/strong>.<\/li>\n\n\n\n<li>Choose the same resource group, name your database, and select a server (or create a new one).<\/li>\n\n\n\n<li>Configure the compute and storage according to your needs (consider the DTU or vCore model).<\/li>\n\n\n\n<li>Set up the necessary firewall rules to allow your application access to the database.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Migrate or Create Database Schema<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Use Entity Framework Core Migrations, SQL Server Management Studio (SSMS), or Azure Data Studio to create or migrate your database schema to Azure SQL Database.<\/li>\n\n\n\n<li>Ensure connection strings are updated in your application\u2019s configuration file (e.g., <code>appsettings.json<\/code>).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: <strong>Implement a Load Balancer (Azure Application Gateway)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Create an Azure Application Gateway<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, navigate to <strong>Application Gateway<\/strong> and click <strong>Create<\/strong>.<\/li>\n\n\n\n<li>Choose the same resource group and configure basic settings like name, region, and SKU (Standard, WAF, etc.).<\/li>\n\n\n\n<li>Configure the backend pool with the IP addresses or App Service instances that will receive traffic.<\/li>\n\n\n\n<li>Set up routing rules to distribute traffic between your web servers. You can use URL-based routing or path-based routing depending on your application\u2019s needs.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Configure Health Probes<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Set up health probes to monitor the status of your web application instances. If an instance becomes unhealthy, the load balancer will stop sending traffic to it.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: <strong>Configure a CDN (Azure CDN)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Create an Azure CDN Profile<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, go to <strong>Azure CDN profiles<\/strong> and click <strong>Create<\/strong>.<\/li>\n\n\n\n<li>Choose your resource group, profile name, and pricing tier based on your performance and cost requirements.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Set Up an Endpoint<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Create a new CDN endpoint, configuring it to cache and deliver static assets like images, CSS, and JavaScript from your web application.<\/li>\n\n\n\n<li>Configure custom domains and SSL if needed for secure content delivery.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: <strong>Set Up Caching (Azure Cache for Redis)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Create an Azure Cache for Redis<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, go to <strong>Azure Cache for Redis<\/strong> and click <strong>Create<\/strong>.<\/li>\n\n\n\n<li>Choose your resource group, cache name, and configure the pricing tier based on your caching needs.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Integrate Redis Cache into Your Application<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Update your .NET Core application to use Redis as a caching layer. Typically, this involves adding the Redis client library to your application and configuring it to cache frequently accessed data<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>:csharpCopy code<code>services.AddStackExchangeRedisCache(options => { options.Configuration = \"&lt;RedisConnectionString>\"; options.InstanceName = \"SampleInstance\"; });<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: <strong>Set Up a Monitoring and Logging Solution (Azure Monitor and Application Insights)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable Application Insights<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, navigate to your App Service and enable <strong>Application Insights<\/strong> for real-time monitoring and logging.<\/li>\n\n\n\n<li>Configure Application Insights in your .NET Core application using the SDK:csharpCopy code<code>services.AddApplicationInsightsTelemetry(\"&lt;Your_Instrumentation_Key>\");<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Configure Azure Monitor<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Use Azure Monitor to set up custom alerts, monitor resource utilization, and view logs across all your deployed components.<\/li>\n\n\n\n<li>Set up Log Analytics for advanced querying and analysis of logs.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 9: <strong>Set Up Security (Azure Key Vault and Azure Active Directory)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use Azure Key Vault for Secrets Management<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In the Azure portal, create a <strong>Key Vault<\/strong> to securely store secrets like database connection strings and API keys.<\/li>\n\n\n\n<li>Update your .NET Core application to retrieve secrets from Azure Key Vault:csharpCopy code<code>builder.Configuration.AddAzureKeyVault(new Uri(\"&lt;KeyVaultUri>\"), new DefaultAzureCredential());<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Implement Identity Management with Azure Active Directory (AAD)<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Integrate Azure AD for authentication and authorization in your .NET Core application.<\/li>\n\n\n\n<li>Use Microsoft Identity libraries to implement OAuth2 and OpenID Connect for secure access control.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 10: <strong>Continuous Integration and Continuous Deployment (CI\/CD)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Set Up a CI\/CD Pipeline in Azure DevOps<\/strong>:\n<ul class=\"wp-block-list\">\n<li>In Azure DevOps, create a pipeline that automates the build, testing, and deployment of your .NET Core application.<\/li>\n\n\n\n<li>Use YAML files to define the build and release process, incorporating quality gates, unit tests, and deployment stages.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 11: <strong>Testing and Final Deployment<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Deploy to a Staging Environment<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Before going live, deploy your application to a staging environment to test the entire setup under production-like conditions.<\/li>\n\n\n\n<li>Use Blue\/Green or Canary deployments to gradually release the application to production.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Monitor and Optimize<\/strong>:\n<ul class=\"wp-block-list\">\n<li>After deployment, continuously monitor your application using Azure Monitor and Application Insights.<\/li>\n\n\n\n<li>Optimize performance and scalability based on usage patterns and feedback.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 12: <strong>Backup and Disaster Recovery<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Set Up Automated Backups<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Configure automated backups for your Azure SQL Database and other critical components using Azure Backup.<\/li>\n\n\n\n<li>Ensure you have a disaster recovery plan in place, possibly using Azure Site Recovery.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This comprehensive deployment process ensures that your .NET Core application is robust, scalable, secure, and well-monitored in the Azure environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">References<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a list of web references that will help you deepen your knowledge of the deployment steps involved in deploying a .NET Core application on Azure using the various infrastructure components:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. <strong>Azure App Service<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/app-service\/\">Azure App Service Documentation<\/a><\/strong>: Microsoft\u2019s official documentation covering all aspects of deploying, configuring, and managing web applications in Azure App Service.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/app-service\/quickstart-dotnetcore?tabs=netcore6&amp;WT.mc_id=dotnet-35129-website\">Deploy a .NET Core app to Azure App Service<\/a><\/strong>: A step-by-step guide for deploying .NET Core applications to Azure App Service.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. <strong>Azure SQL Database<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-sql\/\">Azure SQL Database Documentation<\/a><\/strong>: Comprehensive guide for deploying, managing, and securing Azure SQL Databases.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/sql-database\/sql-database-connect-query-dotnet-core\">Connect a .NET Core app to Azure SQL Database<\/a><\/strong>: Instructions on how to connect your .NET Core application to an Azure SQL Database.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. <strong>Azure Application Gateway (Load Balancer)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/application-gateway\/\">Azure Application Gateway Documentation<\/a><\/strong>: Detailed documentation on setting up and managing Azure Application Gateway for load balancing.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/application-gateway\/quick-create-cli\">Create an Application Gateway with Azure CLI<\/a><\/strong>: A quick-start guide to deploying an Azure Application Gateway using the Azure CLI.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. <strong>Azure Content Delivery Network (CDN)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cdn\/\">Azure CDN Documentation<\/a><\/strong>: Microsoft\u2019s documentation for setting up and configuring Azure CDN for optimized content delivery.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cdn\/cdn-quickstart-with-storage-blob\">Integrate Azure CDN with your web app<\/a><\/strong>: A quick guide on integrating Azure CDN with your Azure App Service or storage account.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. <strong>Azure Cache for Redis<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-cache-for-redis\/\">Azure Cache for Redis Documentation<\/a><\/strong>: Detailed documentation on deploying and managing Redis as a caching layer in Azure.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-cache-for-redis\/cache-dotnet-core-quickstart\">Use Azure Cache for Redis with .NET Core<\/a><\/strong>: A guide on integrating Azure Cache for Redis into a .NET Core application.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6. <strong>Azure Monitor and Application Insights<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-monitor\/\">Azure Monitor Documentation<\/a><\/strong>: Comprehensive resources for monitoring Azure resources, including setting up alerts, dashboards, and logs.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-monitor\/app\/asp-net-core\">Application Insights for .NET Core<\/a><\/strong>: Guide to integrating Application Insights into your .NET Core application for performance monitoring and diagnostics.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7. <strong>Azure Key Vault<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/key-vault\/\">Azure Key Vault Documentation<\/a><\/strong>: Microsoft\u2019s official documentation for securely managing secrets, keys, and certificates using Azure Key Vault.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/key-vault\/general\/integrate-dotnet-core\">Integrate Azure Key Vault with .NET Core<\/a><\/strong>: A guide on how to use Azure Key Vault for managing sensitive configuration data in a .NET Core application.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8. <strong>Azure Active Directory (AAD)<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/\">Azure Active Directory Documentation<\/a><\/strong>: Complete documentation for setting up and managing Azure Active Directory for identity and access management.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/develop\/quickstart-v2-aspnet-core-webapp\">Implement Azure AD Authentication in .NET Core<\/a><\/strong>: Quickstart guide to adding Azure AD authentication to a .NET Core web application.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9. <strong>Azure DevOps CI\/CD Pipelines<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/pipelines\/\">Azure DevOps Pipelines Documentation<\/a><\/strong>: Detailed documentation on setting up CI\/CD pipelines in Azure DevOps for automating your deployments.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/pipelines\/ecosystems\/dotnet-core?view=azure-devops\">Build and deploy .NET Core apps with Azure DevOps<\/a><\/strong>: A guide specifically tailored for deploying .NET Core applications using Azure DevOps.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10. <strong>Azure Backup and Site Recovery<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/backup\/\">Azure Backup Documentation<\/a><\/strong>: Learn how to set up and manage automated backups for Azure resources, including databases.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/site-recovery\/\">Azure Site Recovery Documentation<\/a><\/strong>: Comprehensive guide on implementing disaster recovery using Azure Site Recovery.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">11. <strong>General Azure Resource Management<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-resource-manager\/\">Azure Resource Manager Documentation<\/a><\/strong>: Official documentation on managing your Azure resources, including how to organize and automate deployments using ARM templates.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-resource-manager\/templates\/\">ARM Templates Quickstart<\/a><\/strong>: A beginner\u2019s guide to automating deployments and infrastructure management in Azure using ARM templates.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">12. <strong>Security Best Practices<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/security\/fundamentals\/best-practices\">Azure Security Best Practices<\/a><\/strong>: A collection of security best practices for deploying and managing applications in Azure.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/security\/develop\/secure-devops\">Implementing Secure DevOps with Azure<\/a><\/strong>: Guide on integrating security into your CI\/CD pipelines and Azure deployments.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These resources provide a comprehensive foundation for learning how to deploy, manage, and optimize .NET Core applications in Azure, using various components like App Services, databases, load balancers, CDNs, caching, and more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deploying a .NET Core application in Azure that utilizes several key infrastructure components, such as web servers, databases, load balancers, and more, involves several steps. Here&#8217;s a comprehensive guide on how to accomplish this: Step 1: Prepare Your .NET Core Application Step 2: Set Up an Azure Account and Environment Step 3: Deploy the Web [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-2944","post","type-post","status-publish","format-standard","hentry","category-software-deployment"],"_links":{"self":[{"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/posts\/2944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/comments?post=2944"}],"version-history":[{"count":1,"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/posts\/2944\/revisions"}],"predecessor-version":[{"id":2945,"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/posts\/2944\/revisions\/2945"}],"wp:attachment":[{"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/media?parent=2944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/categories?post=2944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contentlabstudy.com\/soft\/wp-json\/wp\/v2\/tags?post=2944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}