Хочется чтобы платить копейку, если не заходят. Но при этом знать, что если дал новость и на твой сайт в один день зайдет 100 тыс. чел. — то он корректно отработает.
Варианта для .Net Core 2 с половиной:
1. Amazon Lambda.
2. Azure Functions.
3. Немного не то, но близко: IBM Cloud Foundry
Google Cloud Functions нет .Net Core:
IBM Cloud Functions нет .Net Core:
1. Amazon Lambda безбожно тормозит при первом запуске. Держать горячим с помощью периодических запросов? Тогда сколько это будет стоить?
3. Cloud Foundry аналогично — проблема с первым запуском. Кроме того, оно не дешевое — просто есть бесплатный ресурс — а это не одно и то же.
2. Azure Functions — не помню.
В общем — кто что рассматривал и на чем остановился?
Здравствуйте, Shmj, Вы писали:
S>1. Amazon Lambda безбожно тормозит при первом запуске. Держать горячим с помощью периодических запросов? Тогда сколько это будет стоить?
Недорого.
S>2. Azure Functions — не помню.
Что не помнишь?
S>В общем — кто что рассматривал и на чем остановился?
Здравствуйте, Ночной Смотрящий, Вы писали:
S>>В общем — кто что рассматривал и на чем остановился?
НС>Для кора Azure AppServices наиболее безпроблемен.
Хотелось бы платить за каждый запрос, а не от $0.013/hour. Специфика — обычно на сайт заходит 50 чел. в день. Но! Если дал новость платную — может зайти 100 тыс. чел.
Здравствуйте, Shmj, Вы писали:
НС>>Для кора Azure AppServices наиболее безпроблемен. S>Хотелось бы платить за каждый запрос, а не от $0.013/hour.
Это только для према, который подразумеваем выделение VM персонально под твое приложение. Если тебя устраивает ферма, то:
Azure Functions consumption plan is billed based on per-second resource consumption and executions. Consumption plan pricing includes a monthly free grant of 1 million requests and 400.000 GB-s of resource consumption per month per subscription in pay-as-you-go pricing across all function apps in that subscription.
НС>Azure Functions consumption plan is billed based on per-second resource consumption and executions. Consumption plan pricing includes a monthly free grant of 1 million requests and 400.000 GB-s of resource consumption per month per subscription in pay-as-you-go pricing across all function apps in that subscription.
А вы смотрели те Azure Functions? Там нельзя задеплоить Web-приложение простым образом. По умолчанию создается 1 файл C#, где даже NuGet-пакеты нужно подключать странным образом. В Amazon Lambda можно просто задеплоить приложение.
Здравствуйте, Ночной Смотрящий, Вы писали:
S>> Там нельзя задеплоить Web-приложение простым образом.
НС>Undefied identifier "простым образом". Выбираешь пункт в студии Publish, указываешь куда. Куда уж проще?
Видимо попутали с App Service. В Azure Functions нельзя задеплоить сайт (быть может если вручную делать конвеер запросов или как то так — то можно, но не проверял).
Ну так установите и посмотрите. Там получается вот такой файл:
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace FunctionApp3
{
public static class Function1
{
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
name = name ?? data?.name;
string responseMessage = string.IsNullOrEmpty(name)
? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
: $"Hello, {name}. This HTTP triggered function executed successfully.";
return new OkObjectResult(responseMessage);
}
}
}
Это похоже на шаблон полноценного сайта? Amazon Lambda поддерживает полноценный Razor-сайт.
Возможно поверх этого, если обработаете req и отдадите нужную responseMessage — то и получите сайт. Но это не реализовано.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Так тебе App Service м нужен. Зачем тебе именно голый Function?
App Service начинается от Monthly cost $9.49. По сути это просто вирт. машина с упрощенным деплоем, там нет Serverless. Даже на начальном плане — это просто шаред-хостинг, на чуть более дорогом плане — это вирт. машина.
Serverless — это когда не думаешь о мощностях — платишь за запрос или ресурс. Т.е. когда 100 пользователей в день — платишь 1 цент в день. Когда 100 тыс. пользователей в день — платишь $10 в день.