如何使用Elasticsearch File System Crawler将PDF索引至AWS Elasticsearch服务?
配置FSCrawler向AWS Elasticsearch服务索引PDF文件
你需要在FSCrawler的配置中添加AWS SigV4签名认证相关参数,才能让它正常向AWS Elasticsearch服务推送索引数据。我把修改后的完整配置给你,关键新增部分我标出来了:
{ "name" : "job_name2", "fs" : { "url" : "/tmp/es", "update_rate" : "15m", "excludes" : [ "~*" ], "json_support" : false, "filename_as_id" : false, "add_filesize" : true, "remove_deleted" : true, "add_as_inner_object" : false, "store_source" : false, "index_content" : true, "attributes_support" : false, "raw_metadata" : true, "xml_support" : false, "index_folders" : true, "lang_detect" : false, "continue_on_error" : false, "pdf_ocr" : true, "ocr" : { "language" : "eng" } }, "elasticsearch" : { "nodes" : [ { // 替换成你的AWS Elasticsearch服务域名 "host" : "your-aws-es-domain.region.es.amazonaws.com", // AWS ES默认用HTTPS,端口是443 "port" : 443, "scheme" : "HTTPS" } ], "bulk_size" : 100, "flush_interval" : "5s", // 新增AWS认证配置块 "auth": { "type": "aws_sigv4", "aws": { "access_key": "你的AWS_ACCESS_KEY", "secret_key": "你的AWS_SECRET_KEY", "region": "你的AWS区域(比如us-east-1)", "service": "es" } } }, "rest" : { "scheme" : "HTTP", "host" : "127.0.0.1", "port" : 8080, "endpoint" : "fscrawler" } }
关键配置说明:
- AWS节点信息:把
host替换成你自己的AWS ES服务域名,scheme改成HTTPS,端口对应443(AWS ES默认不开放HTTP端口) - AWS认证块:
auth.type设置为aws_sigv4,这是AWS要求的签名方式;aws子块里填写你的密钥、区域,service固定为es(因为是Elasticsearch服务) - 安全建议:不要把密钥硬编码在配置文件里!可以用环境变量替代,比如
"access_key": "${AWS_ACCESS_KEY_ID}"和"secret_key": "${AWS_SECRET_ACCESS_KEY}",运行FSCrawler时直接注入环境变量即可 - IAM角色替代:如果你的FSCrawler运行在EC2、ECS或EKS等AWS资源上,可以给资源绑定具有ES访问权限的IAM角色,这样不用配置
access_key和secret_key,FSCrawler会自动获取角色凭证
额外注意事项:
- 确保你的AWS账号(或IAM角色)拥有
es:ESHttpPut、es:ESHttpPost等索引相关的权限,可以通过IAM策略配置 - 如果你开启了PDF OCR,要确保FSCrawler所在环境有Tesseract OCR依赖(已经在本地正常运行的话这部分应该没问题)
内容的提问来源于stack exchange,提问作者Fisseha Berhane
相关产品推荐
相关产品推荐

