我使用独立的Helm图表在我的AKS集群中部署了Neo4j。它全部被部署并且我的Node.js服务器正确地连接到Neo4j。
但是查询会抛出Neo4jError: Unknown function 'apoc.convert.fromJsonMap'
错误,因此apoc
显然是缺失的。
我遵循了www.example.com中描述的程序https://neo4j.com/docs/operations-manual/current/kubernetes/configuration/#operations-installing-plugins,我的价值观如下所示。
我发现的唯一区别是,在指南中,apoc core
实际上是在升级舵图之后启用的,而我安装它时已经启用了该选项。
在https://neo4j.com/docs/apoc/current/config/上我看到
自Neo4j v.5.0起,neo4j.conf文件不再支持APOC配置设置。请将所有apoc.* 设置移至apoc. conf。还可以使用环境变量设置配置设置。
因此,由于neo4j-standalone使用的是版本4.4.16,我将apoc配置从apoc.config移至neo4.config,但查询仍未找到apoc程序。
为了启用apoc,我错过了什么配置吗?非常感谢。
neo4j-db:
# neo4j-standalone:
nameOverride: "neo4j"
fullnameOverride: 'neo4j'
neo4j:
# Name of your cluster
name: "fixit-neo4j" # this will be the label: app: value for the service selector
password: "password"
##
passwordFromSecret: ""
passwordFromSecretLookup: false
edition: "community"
acceptLicenseAgreement: "yes"
offlineMaintenanceModeEnabled: false
resources:
cpu: "1000m"
memory: "2Gi"
volumes:
data:
mode: 'volumeClaimTemplate'
volumeClaimTemplate:
accessModes:
- ReadWriteOnce
storageClassName: neo4j-sc-data
resources:
requests:
storage: 4Gi
backups:
mode: 'share' # share an existing volume (e.g. the data volume)
share:
name: 'logs'
logs:
mode: 'volumeClaimTemplate'
volumeClaimTemplate:
accessModes:
- ReadWriteOnce
storageClassName: neo4j-sc-logs
resources:
requests:
storage: 4Gi
services:
# A ClusterIP service with the same name as the Helm Release name should be used for Neo4j Driver connections originating inside the
# Kubernetes cluster.
default:
# Annotations for the K8s Service object
annotations: { }
# A LoadBalancer Service for external Neo4j driver applications and Neo4j Browser
neo4j:
### this would create cluster-neo4j svc
enabled: false
# env:
# NEO4J_PLUGINS: '["graph-data-science"]'
config:
server.bolt.enabled : "true"
server.bolt.tls_level: "REQUIRED"
server.bolt.listen_address: "0.0.0.0:7687"
dbms.ssl.policy.bolt.client_auth: "NONE"
dbms.ssl.policy.bolt.enabled: "true"
server.directories.plugins: "/var/lib/neo4j/labs"
dbms.security.procedures.unrestricted: "apoc.*"
server.config.strict_validation.enabled: "false"
dbms.security.procedures.allowlist: "gds.*,apoc.*"
apoc_config:
apoc.trigger.enabled: "true"
apoc.jdbc.neo4j.url: "jdbc:foo:bar"
apoc.import.file.enabled: "true"
startupProbe:
failureThreshold: 1000
periodSeconds: 50
ssl:
# setting per "connector" matching neo4j config
bolt:
privateKey:
secretName: tls-secret
subPath: tls.key
publicCertificate:
secretName: tls-secret
subPath: tls.crt
trustedCerts:
sources: [ ]
revokedCerts:
sources: [ ]
2条答案
按热度按时间o4hqfura1#
好吧,在看了很多关于同一主题的问题之后,我发现这个问题的一些解决方案是在
config
部分添加dbms.directories.plugins: "/var/lib/neo4j/labs"
和dbms.config.strict_validation: "false"
,据我所知,config
部分镜像了server
和dbms
的这些设置。它确实起作用了,但奇怪的是官方指南中没有提到它。我的意思是,这些镜像设置是有意义的,告诉server
和dbms
在哪里寻找插件,但仍然应该提到它。我看到这么多关于这个的帖子,这意味着文档不够清晰。这很容易被认为是理所当然的,事实上,因为这个镜像插件的位置都为server
AND
dbms
需要只是没有说明任何地方的文档,我和其他人一样认为dbms
已经配置了和server.directories.plugins: "/var/lib/neo4j/labs"
相同的位置(文档中说要配置),并且还没有添加它,但是嘿..我想没有人是完美的。希望他们为了将来的开发者而改变文档,但是同时这个答案可能会有帮助。正确的配置是
m2xkgtsf2#
似乎文档中缺少安装APOC插件的内容。请更改以下行以包含APOC:
你应该很好