我找不到关于在 Azure 上托管一个函数(使用 C#)需要多少费用的确切信息。假设我没有在 Azure 上运行任何其他程序,只有一个运行时间为 1 秒、每小时运行一次且仅消耗 1 MB RAM 的函数(据我所知,第一类是 128 MB),那么每月总共需要多少费用(包括我可能需要运行 Azure 函数的其他费用,可能是最小的消耗计划?)?是否有一些与使用无关的每月修复成本?总费用是否低于每月 5 美元?每月 5 美元我有什么替代方案?
编辑
由于缺乏有价值的回复,我决定冒险一试。一天后,我被收取了 0.01 美元的标准 IO 费用(抱歉,是德语):
我没有为该函数本身付费,因为它比免费赠款少。有人能向我解释一下我在执行以下函数时使用了什么存储(blob?文件?表?队列?)吗?该函数通过尝试仅下载 pdf 的第一个字节来检查 pdf 是否可供下载。
public static void Run(TimerInfo myTimer, TraceWriter log)
{
DateTime start = DateTime.Now;
log.Info("-------------------------------------------");
log.Info($"C# Timer trigger function executed at: {start}");
string[] urls = { "http://www.somewhere.com/foo.pdf", "http://www.somewhere.com/bar.pdf" };
for (int i = 0; i < urls.Length; i++)
{
bool hasContent = HasWebPageContent(uri);
string output = $"Exists {file} = {hasContent}";
log.Info(output);
}
log.Info($"C# Timer trigger function execution ended and ran for {DateTime.Now.Subtract(start).TotalMilliseconds} ms.");
}
private static bool HasWebPageContent(string url)
{
HttpWebRequest request;
const int bytesToGet = 1;
request = WebRequest.Create(url) as HttpWebRequest;
var buffer = new char[bytesToGet];
try
{
using (WebResponse response = request.GetResponse())
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
sr.Read(buffer, 0, bytesToGet);
}
}
}
catch { return false; }
return true;
}
答案1
Azure Functions 每月费用的公式很简单:
内存大小 X 执行时间 x 每月执行次数
如果内存大小 X 执行时间< 400,000 GB/s = 免费
和
如果执行时间 X 执行次数/月< 1,000,000 = 免费
因此,对于您的特定情况,128MB x 1s x 1/月 = 免费
只需 5 美元,您就可以获得高达 1024MB 的内存、数千次的执行时间,并且每月运行超过 700 次。
请参阅定价计算器以获得更好的估计。
答案2
答案3
Azure Functions 消费计划根据资源消耗和执行情况计费。消费计划定价包括每月免费授予 100 万个请求和每月 400,000 GB 的资源消耗。
有关消费计划费用的更多信息,您可以参考此关联。
另外,您可以选择免费的应用服务计划,只需支付存储账户费用。