我需要加密写入Azure存储的所有邮件。
我想使用Azure队列触发WebJobs,因此在下面采用以下方法加密队列消息:
https://docs.microsoft.com/en-us/azure/storage/storage-client-side-encryption
这会在队列上加密消息。
然后我想编写一个WebJob(甚至更好的Azure函数)来响应Queue消息并解密并处理它。
不幸的是,Web作业总是会出现异常
System.FormatException:输入不是有效的Base-64字符串 包含非基数64 字符,两个以上的填充字符或非法字符 填充字符
有没有人有办法做到这一点。我甚至试图像示例
中那样实现我自己的CustomQueueProcessFactory但Azure WebJob库仅在我需要加密之前使用CloudQueueMessage调用它。
有什么想法吗?
感谢。
答案 0 :(得分:1)
我相信您可以通过修改create方法中的服务客户端选项,使用CustomQueueProcessor
执行此操作。
public QueueProcessor Create(QueueProcessorFactoryContext context)
{
...
// demonstrates how the Queue.ServiceClient options can be configured
context.Queue.ServiceClient.DefaultRequestOptions.EncryptionPolicy = policy;
...
}
不幸的是,我们不能在Azure功能中提供这种级别的控制(如果您将功能运行时部署为应用服务计划中的站点扩展,则可以破解它,但是您无法获得任何功能消费规模等)。