使用消费计划隔离Azure函数

c2e8gylq  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(85)

我是Azure的新手,我不知道我尝试做的事情是否可行
我在我的Azure API管理服务中定义了一个合成Graphql API。在那里我有我的查询和变化,到目前为止一切顺利。
现在,假设我在我的graphql模式中有这个查询:

Query {
    myQuery(userId: UUID!): [Cars]
}

字符串
这将解析用户拥有的所有汽车。此查询由Azure函数处理,该函数是作为隔离Azure函数实现的HttpTrigger,因为我们希望使用.Net 8。
我们的问题是,这个函数必须在运行查询之前手动启动,并且在调用完成后停止它。我们想要的是Azure函数自动启动/停止,以保存资金。
有什么方法可以做到这一点吗?因为即使我将Azure函数创建为Consumptio(Serveless),我也没有看到它以这种方式工作
你知道吗?
PD:我用这个配置创建了我的Azure函数:x1c 0d1x,HttpTrigger是在Jetbrain Rider中创建的,然后部署到Azure上。我没有使用Visual Studio

sg2wtvxw

sg2wtvxw1#

首先,Azure函数无服务器最适合您的场景,HTTP触发器是Azure函数支持的触发器之一。请查找更多详细信息here
其次,无服务器模型是可扩展的,具有冷启动功能,因此第一个请求可能需要一段时间才能启动所需的计算,然后其余部分将正常工作。
对于成本,无服务器模型依赖于执行次数和执行时间。因此将其与自动缩放相结合意味着只需为您的消费付费,而不管触发功能的方式如何。请查找更多详细信息here
对于触发,可能需要以适当的方式创建HTTP触发器,以便能够触发函数。

[Function("HttpTrigger1")]
public static HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post",
Route = "products/{category:alpha}/{id:int?}")] HttpRequestData req, string category, int? id,
FunctionContext executionContext)
{
    var logger = executionContext.GetLogger("HttpTrigger1");
    logger.LogInformation("C# HTTP trigger function processed a request.");

    var message = String.Format($"Category: {category}, ID: {id}");
    var response = req.CreateResponse(HttpStatusCode.OK);
    response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
    response.WriteString(message);

    return response;
}

字符串
在此定义一个Azure Function,当向Route属性中指定的URL模式发出HTTP GET或POST请求时,将触发该Azure Function。当Azure Function主机在指定的路由上接收到与定义的HTTP方法(get,post)匹配的请求时,它将执行此函数的Run方法,并传入URL中与category和id路由参数对应的部分。
对于路由,这里有一个例子:

Route = "carrental/{customerID:int}/rent"


这意味着该函数将由对URL(如/API/carrental/user/rent)的POST或GET请求触发,其中“user”是customerID的示例
调用该函数的URL可能如下所示

https://<APP_NAME>.azurewebsites.net/api/carrental/{customerName}/rent


希望这对你有帮助

相关问题