2017-04-26 107 views
0

我認爲PutS3Object處理器可以解析對Access Key和Secret Key的引用,因爲這兩個配置參數支持表達式語言。但我無法讓它工作。如何配置NiFi PutS3Object處理器使用S3屬性的流屬性

我已成功地將文件放入S3存儲桶中,方法是使用具有實際值的Access Key和Secret Key配置PutS3Object處理器。但是,當我嘗試在UpdateAttribute處理器中設置這些值,然後使用表達式來引用訪問密鑰和祕密密鑰設置中的屬性時,它們似乎未設置,並且put對象調用失敗。

以下是訪問密鑰和密鑰分別定義爲$ {s3.accessKey}和$ {s3.secretAccessKey}時的錯誤消息。這兩個屬性已經在PutS3Object處理器之前的UpdateAttribute處理器中設置。

com.amazonaws.services.s3.model.AmazonS3Exception:授權標頭格式錯誤;必須在證書中提供非空的訪問密鑰(AKID)。 (服務:Amazon S3;狀態碼:400;錯誤代碼:AuthorizationHeaderMalformed;

com.amazonaws.services.s3.model.AmazonS3Exception:授權標頭格式錯誤;必須提供非空的訪問密鑰(AKID)

回答

1

恐怕AWS訪問密鑰屬性所允許的表達式不包含FlowFile屬性,表達式旨在與全局配置的「可變註冊表」值一起使用,以便訪問密鑰可以作爲部分提供該功能在「NiFi系統管理員指南」中的Custom Properties中描述。

允許FlowFile屬性重新設置通過NiFi JIRA ticket system詢問功能請求。

+0

我明白了,非常感謝您的幫助 – user1723105