java - Azure Java函数,获取BlobOutput路径注释中的HttpTrigger主体属性值

标签 java azure function dynamic-binding

我有一个 HttpTrigger 函数,其请求正文为

{
"id":"222",
"name":"some name"
}

我想将请求正文中的 Id 获取到 @BlobOuput 路径,如下所示

@BlobOutput(name="blob",  path="input-blob/{body.id}")

有什么办法可以实现这个功能吗?

最佳答案

如何从httptrigger请求体中读取@BlobOuput路径,请引用以下步骤。

我使用以下请求正文进行测试

{
"BlobName":"test.txt",
 "Content":"test"
}
  1. 创建自定义类作为请求正文。
public class BlobInfo {
    public String Content;
    public String BlobName;

    public String getContent() {
        return Content;
    }

    public void setContent(String content) {
        Content = content;
    }

    public String getBlobName() {
        return BlobName;
    }

    public void setBlobName(String blobName) {
        BlobName = blobName;
    }
}
  • 函数代码
  • @FunctionName("HttpExample")
        public HttpResponseMessage run(
                @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<BlobInfo>> request, // request body gets automatically de-serialized into the custom object you create
                @BlobOutput(name="output",  path = "test/{BlobName}" //  use the custom object's property you need as file name
                        ,connection = "AzureWebJobsStorage") OutputBinding<String> outputItem,
                final ExecutionContext context) throws IOException {
            context.getLogger().info("Java HTTP trigger processed a request.");
            BlobInfo body = request.getBody().get();
            context.getLogger().info(body.Content);
            context.getLogger().info(body.BlobName);
            outputItem.setValue("Hello World!");
    
            return request.createResponseBuilder(HttpStatus.OK).body("success").build();
    
        }
    
  • 测试
  • POST <function url>
    Content-Type:application/json
    
    {
     "BlobName":"test.txt",
     "Content":"test"
    }
    

    enter image description here enter image description here

    关于java - Azure Java函数,获取BlobOutput路径注释中的HttpTrigger主体属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60970419/

    相关文章:

    javascript - Javascript 对象中的函数数组

    java - 如何上传相对目录下的文件

    java - 使用 Java 数组进行计算

    javascript - 删除运算符不适用于原型(prototype)属性

    c# - 为什么 Log4Net 条目位于不同项目的日志文件中?

    azure - Cortana Skill 是否支持使用 Azure AD B2C 帐户登录?

    php glob 与 scandir

    java - 如何将对象数组合并为单个格式化字符串

    java - IDEA Intellij 如何调试从 Java 类调用的 PL/SQL 代码

    azure - 从 Azure 函数运行容器的最佳方法