0

在 Azure 中,我有一个使用 .NET 的 Azure 函数,定义如下

#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Net.Http;
public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
using(var client = new HttpClient())
{
String accessToken = XXXXXXXXXX;
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", accessToken);
var result = await client.GetAsync("https://allstate.myabsorb.com/api/rest/v1/Coupons");
string resultContent = await result.Content.ReadAsStringAsync();
log.LogInformation(resultContent);
}
return (ActionResult) new OkResult();
}

我最初将其作为独立功能运行,并且运行成功。上面代码中的XXXXX代表一个授权令牌,如果我将此令牌硬编码到代码中,它将成功运行。但是,随着令牌的变化,我在 Azure 数据工厂中创建了一个步骤,用于检索更新的令牌并将其存储在一个变量中。我想获取该 ADF 变量并将其传递给函数。我需要在代码中做什么才能让函数在函数执行时能够解释此 ADF 变量?

我试图传递给函数的只是一个字符串。我只是不知道如何做到这一点,也找不到任何简单到足以让我光滑的猿大脑理解的例子。我觉得这应该是一个相当简单的过程,但我就是想不通......怎么办?

编辑:澄清一下,我的主要问题是我不知道在代码中放入什么来接收来自 ADF 的变量。

4

2 回答 2

0

我在这里找到了答案。XXXX只需将其中的“名称”替换为req.Query["name"]Azure 数据工厂管道“设置变量”活动中的变量名称。

于 2021-05-13T15:08:46.247 回答
0

您可以将令牌放在标题或正文中。

例如,如果您将令牌放在正文中,那么您可以像这样在 http 触发器中获取令牌:

req.Body

在 ADF 一侧。您可以使用动态内容来获取变量:

在此处输入图像描述

点击空白处:

在此处输入图像描述

设置变量活动(您可以从其他地方在这里设置动态值。):

在此处输入图像描述

功能应用活动:

在此处输入图像描述

这是官方文档:

https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions

https://docs.microsoft.com/en-us/azure/data-factory/control-flow-system-variables

于 2021-05-13T06:21:58.637 回答