2017-10-19 100 views
0

我想使用Java Azure的功能SDK到:处理二进制数据SDK

  1. 接受PDF输入
  2. 过程中的PDF(使用PDFBOX库)。
  3. 返回changedPDF。

最终结果应该从队列中读取PDF并将处理后的PDF发布到另一个队列。

是否存在使用Java Azure函数SDK从队列读取/写入二进制数据的示例?

用于测试,调试和其他用途,将是不错的:

  1. 一个http触发接受通过邮寄的PDF。如何在Java中做到这一点? 目前我不清楚如何在http触发器中使用HttRequestMessage。

    1.1。我可以使用Http触发器使用零或可选参数吗?

    1.2。使用HttpRequestMessage自己解析参数?

  2. 您可以使用HttpResponseMessage作为返回类型并设置返回码。 如何将MIME类型的输出设置为application/pdf并不清楚。

我试图返回有效的html作为第一次尝试的字符串,但返回并呈现为纯文本/文本。

原因是,触发器不需要设置队列。

+0

您正在使用azure存储队列,对不对? –

回答

0

根据您的需求,我的建议可以分为以下几个步骤:

使用Azure Storage Queue Java sdk在HttpTrigger Azure的功能。

第1步:从队列中接收二进制数据。

// Setup the cloud storage account. 
    CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString); 

    // Create a queue service client 
    CloudQueueClient queueClient = account.createCloudQueueClient(); 

    // Retrieve a reference to a queue 
    // Append a random UUID to the end of the queue name so that this 

    // sample can be run more than once in quick succession. 
    CloudQueue queue = queueClient.getQueueReference("test"); 

    // Retrieve the first visible message in the queue 
    CloudQueueMessage retrieveMessage = queue.retrieveMessage(); 

步骤2:使用pdfbox库来处理您的PDF。

步骤3:将二进制数据发送到队列中。

// Setup the cloud storage account. 
    CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString); 

    // Create a queue service client 
    CloudQueueClient queueClient = account.createCloudQueueClient(); 

    // Retrieve a reference to a queue 
    // Append a random UUID to the end of the queue name so that this 

    // sample can be run more than once in quick succession. 
    CloudQueue queue = queueClient.getQueueReference("test"); 

    // Create messages and add it to the queue 
    CloudQueueMessage message1 = new CloudQueueMessage("your pdf data"); 
       queue.addMessage(message1); 

配置输入您的HttpTrigger Azure的功能的输出。

当然,Azure功能支持zerooptional参数。

第4步:您有关于配置input两种方法和output参数:

1.Annotations

public class Function { 
    public String echo(@HttpTrigger(name = "req", methods = {"post"}, authLevel = AuthorizationLevel.ANONYMOUS) 
     String req, ExecutionContext context) { 
     return String.format(req); 
    } 
} 

2.function.json

{ 
    "scriptFile": "azure-functions-example.jar", 
    "entryPoint": "com.example.MyClass.echo", 
    "bindings": [ 
    { 
     "type": "httpTrigger", 
     "name": "req", 
     "direction": "in", 
     "authLevel": "anonymous", 
     "methods": [ "post" ] 
    }, 
    { 
     "type": "http", 
     "name": "$return", 
     "direction": "out" 
    } 
    ] 
} 

你可以从获取详细信息10。

希望它可以帮助你。