标签: azure-functions-runtime

Azure函数:如何将http触发器函数的查询字符串参数绑定到Cosmos DB的SQL查询

我正在尝试使用Cosmos DB输入绑定运行http触发器Azure功能.我希望http触发器的url在查询字符串上包含几个参数,这些参数绑定到输入Cosmos DB绑定的SQL查询.我正在尝试以下绑定function.json,但它不起作用(该功能甚至没有被触发):

{
  "direction": "in",
  "type": "httpTrigger",
  "authLevel": "anonymous",
  "name": "req",
  "methods": [ "get" ],
  "route": "users/{age=age?}/{gender=gender?}"
},
{
  "direction": "in",
  "type": "documentDB",
  "name": "users",
  "databaseName": "Database",
  "collectionName": "Users",
  "sqlQuery": "SELECT * FROM x where x.age = {age} and x.gender = {gender}",
  "connection": "COSMOSDB_CONNECTION_STRING"
},
Run Code Online (Sandbox Code Playgroud)

根据此答案,路由约束users/{age=age?}/{gender=gender?}对Web API有效,根据文档, 您可以将任何Web API路径约束与您的参数一起使用.最后,我想向Azure函数发出一个GET请求api/users?age=30&gender=male.那怎么办呢?

azure azure-functions azure-cosmosdb azure-functions-runtime

6
推荐指数
1
解决办法
3768
查看次数

Azure Functions ARM模板重新部署会删除我发布的函数

我有一个由ARM模板使用Azure DevOps管道部署的Azure Functions(2.0)实例。我有另一个管道,通过zip部署将功能应用程序部署到实例。这几乎可以完美地工作,但是,如果我将功能Infrastructure部署为Code,然后部署应用程序,然后将Infrastructure部署为Code,则我的功能应用程序将被删除,所有功能都将消失。我正在使用增量部署,所以我想知道为什么这样做。关于它为什么会这样或如何进行故障排除的任何想法?

我已经在下面复制了资源组部署脚本和ARM模板。

New-AzureRmResourceGroupDeployment -Name ((Get-ChildItem $TemplateFile).BaseName + '-' + ((Get-Date).ToUniversalTime()).ToString('MMdd-HHmm')) `
                                   -ResourceGroupName $ResourceGroupName `
                                   -TemplateFile $TemplateFile `
                                   -TemplateParameterFile $TemplateParametersFile `
                                   -Mode Incremental `
                                   @OptionalParameters `
                                   -Force -Verbose `
                                   -AdminsGroup $AdminsGroup `
                                   -AdminsGroupObjectId $AdminsGroupObjectId `
                                   -ErrorVariable ErrorMessages
Run Code Online (Sandbox Code Playgroud)

ARM模板

  {
  "type": "Microsoft.Web/serverfarms",
  "sku": {
    "name": "Y1",
    "tier": "Dynamic",
    "size": "Y1",
    "family": "Y",
    "capacity": 0
  },
  "kind": "app",
  "apiVersion": "2016-09-01",
  "name": "[variables('FunctionPlanNameMyStuff')]",
  "location": "[resourceGroup().location]",

  "properties": {
    "name": "[variables('FunctionPlanNameMyStuff')]",
    "perSiteScaling": false,
    "reserved": false,
    "targetWorkerCount": 0,
    "targetWorkerSizeId": 0
  }
},
{
  "comments": "MyStuff …
Run Code Online (Sandbox Code Playgroud)

azure-resource-manager azure-devops azure-functions azure-functions-runtime azure-functions-core-tools

6
推荐指数
3
解决办法
424
查看次数

Azure 函数甚至在本地执行 RunOnStartup = false

根据我的理解 Azure 函数将执行

如果RunOnStartup = true

   1. on startup 
   2. if a host changed 
   3. a new deployment happen
   4. on schedule time
Run Code Online (Sandbox Code Playgroud)

并且,如果RunOnStartup = false 或未定义

   1. on schedule time only
Run Code Online (Sandbox Code Playgroud)

但是当我使用RunOnStartup = false在本地运行它时,它也在启动时执行,并且在 azure 门户上运行良好。任何人都可以请建议为什么会发生?

更新:- 功能代码:-

    public static void Run([TimerTrigger("0 30 3 * * *", RunOnStartup = false)]TimerInfo myTimer, TraceWriter log, ExecutionContext executionContext)
    {
        log.Info($"Function1- Timer trigger function executed at: {DateTime.Now}");
        try
        {
            //main work
        }
        catch (Exception ex)
        {
            log.Error(ex.Message, ex);
        } …
Run Code Online (Sandbox Code Playgroud)

azure azure-functions azure-functions-runtime azure-functions-core-tools

6
推荐指数
1
解决办法
3295
查看次数

.net 核心 3.0 上的 Azure 函数

既然 .Net Core 3.0 已经发布了 core3 上 Azure Functions 的故事?

当我尝试将项目翻转到<TargetFramework>netcoreapp3.0</TargetFramework>它时, 它仍然报告为在 2.2 上运行。

如果我尝试访问 3.0 的 api,它只会爆炸,这是有道理的,因为尽管有项目设置,它似乎仍在强制运行。

azure azure-functions azure-functions-runtime

6
推荐指数
1
解决办法
2674
查看次数

在 Visual Studio 2017 中自动生成 OpenAPI json 文件

我正在 VS2017 5.13(预览版)中开发 Azure Functions,我想从我从 azure 门户生成的 OpenAPI(又名 swagger)生成项目文档。Visual Studio 不生成该文件,因此我从 azure 门户网站获取了初始文件,但我希望自动从代码中更新此文件。

是否有关于如何集成 swagger json 文件以从 VS 2017 中的代码生成文档的官方演练?

azure swagger swagger-2.0 azure-functions azure-functions-runtime

5
推荐指数
1
解决办法
835
查看次数

Azure 函数:无法加载文件或程序集 Microsoft.IdentityModel.Tokens,版本 = 5.2.1.0

我正在编写一个 azure 函数来生成一个 JWT 令牌并将其返回给客户端。该代码在控制台应用程序中进行了本地测试,并且似乎一切正常。这是工作控制台应用程序和我的函数应用程序中包含的包参考:

<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.2.1" />

在本地运行函数主机func host start并执行代码时,会导致错误:

Could not load file or assembly 'Microsoft.IdentityModel.Tokens, Version=5.2.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'."

我不明白为什么会发生这种情况,dll 与我的应用程序 dll 一起放在输出文件夹中。我唯一能想到的另一件事是,函数主机有自己的一组包,它来自它的源,而这个包尚不可用,仅在 12 天前发布。

我不知道。关于为什么会发生这种情况或如何解决它的任何帮助?

详细信息:
Azure Functions Core Tools (2.0.1-beta.22)
函数运行时版本:2.0.11415.0

azure azure-functions azure-functions-runtime

5
推荐指数
3
解决办法
1971
查看次数

Azure Functions:如何在本地开发环境中仅启动特定函数?

如果我想在开发环境中启动所有可用的功能,我只需执行以下操作:

 func host start
Run Code Online (Sandbox Code Playgroud)

有没有办法选择可用功能的子集,而不必将打算停用的功能移出工作目录等?

PS 我使用 Python 作为函数本身。

azure-functions azure-functions-runtime

5
推荐指数
2
解决办法
3713
查看次数

如何使用 C# 脚本 (csx) 从函数内获取 Azure 函数名称

我的目标是向客户提供代码片段。一个文件将包含客户的业务逻辑,另一个文件将提供其处理。对于后者,我需要一个函数的名称[希望避免要求客户手动输入此信息]。

我四处寻找但无法弄清楚。本质上我需要这个:

在此输入图像描述

c# azure azure-functions azure-functions-runtime

5
推荐指数
1
解决办法
4559
查看次数

Azure Function builder.GetContext().EnvironmentName 始终为“开发”

参考官方文档

如果在 Azure 中运行时不存在此应用程序设置,则假定环境为生产环境。

即使在覆盖AZURE_FUNCTIONS_ENVIRONMENTASPNETCORE_ENVIRONMENT进入生产之后,我仍然在 Azure 中进行开发。

我的 Azure Function 是在 Windows 环境上运行的无服务器消费计划,运行时版本 ~3。

.net-core azure-functions azure-functions-runtime

5
推荐指数
1
解决办法
931
查看次数

Azure Function 于 2022 年 4 月 26 日禁用将“用户”字段设置为 HTTP 请求对象

(!) 问题无法在本地重现。
Azure 函数版本 ~4
节点版本 14.18.1

创建一个简单的 HTTP 触发的 Azure Function 并设置两个简单的属性,我们得到以下代码:

module.exports = async function (context, req) {

    req.auth = {authField: 'some value'}
    req.user = {userField: 'some value'}
    context.log(`${JSON.stringify(req,null,2)}`);

    context.res = {
        body: 'responseMessage'
    };
}
Run Code Online (Sandbox Code Playgroud)

记录器打印以下对象:

{
  "method": "POST",
  "url": "xxx",
  "originalUrl": "xxx",
  "headers": {
    /// ...
  },
  "query": {},
  "params": {},
  "body": { "name": "Azure" },
  "rawBody": "{\"name\":\"Azure\"}",
  "auth": { "authField": "some value" }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,只有authset 而不是 set user。在版本中可以看到相同的失败行为4.2.0

当我使用 Azure …

node.js azure-functions azure-functions-runtime

5
推荐指数
1
解决办法
269
查看次数