使用在 AWS CloudFormation Streams 使用者应用程序中设置海王星到海王星的复制 - Amazon Neptune

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用在 AWS CloudFormation Streams 使用者应用程序中设置海王星到海王星的复制

您可以使用 AWS CloudFormation 模板来设置 Neptune 流使用者应用程序,以支持海王星到海王星的复制。

为你所在的地区选择一个 AWS CloudFormation 模板

要在 AWS CloudFormation 控制台上启动相应的 AWS CloudFormation 堆栈,请根据要使用的 AWS 区域,选择下表中的启动堆栈按钮之一。

区域 查看 在 Designer 中查看 发布
美国东部(弗吉尼亚州北部) 视图 在 Designer 中查看
美国东部(俄亥俄州) 视图 在 Designer 中查看
美国西部(北加利福尼亚) 视图 在 Designer 中查看
美国西部(俄勒冈州) 视图 在 Designer 中查看
加拿大(中部) 视图 在 Designer 中查看
南美洲(圣保罗) 视图 在 Designer 中查看
欧洲地区(斯德哥尔摩) 视图 在 Designer 中查看
欧洲地区(爱尔兰) 视图 在 Designer 中查看
欧洲地区(伦敦) 视图 在 Designer 中查看
欧洲地区(巴黎) 视图 在 Designer 中查看
欧洲地区(法兰克福) 视图 在 Designer 中查看
中东(巴林) 视图 在 Designer 中查看
中东(阿联酋) 视图 在 Designer 中查看
以色列(特拉维夫) 视图 在 Designer 中查看
非洲(开普敦) 视图 在 Designer 中查看
亚太地区(东京) 视图 在 Designer 中查看
亚太地区(香港) 视图 在 Designer 中查看
亚太地区(首尔) 视图 在 Designer 中查看
亚太地区(新加坡) 视图 在 Designer 中查看
亚太地区(悉尼) 视图 在 Designer 中查看
亚太地区(孟买) 视图 在 Designer 中查看
中国(北京) 视图 在 Designer 中查看
中国(宁夏) 视图 在 Designer 中查看
AWS GovCloud (美国西部) 视图 在 Designer 中查看
AWS GovCloud (美国东部) 视图 在 Designer 中查看

Create stack (创建堆栈) 主页上,选择 Next (下一步)

添加有关您正在创建的 Neptune 流使用者堆栈的详细信息

Specify Stack Details (指定堆栈详细信息) 页面提供了属性和参数,可用于控制应用程序的设置。

堆栈名称-您正在创建的新 AWS CloudFormation 堆栈的名称。通常可以使用默认值 NeptuneStreamPoller

Parameters (参数) 下,提供以下内容:

流使用者运行的 VPC 的网络配置
  • VPC – 提供将运行轮询 Lambda 函数的 VPC 的名称。

  • SubnetIDs – 与其建立网络接口的子网。添加与您的 Neptune 集群对应的子网。

  • SecurityGroupIds – 提供向源 Neptune 数据库集群授予写入入站访问权限的安全组的 ID。

  • RouteTableIds – 如果您还没有 Amazon DynamoDB 端点,则需要在 Neptune VPC 中创建一个。您必须提供与子网关联的路由表 ID 的逗号分隔列表。

  • CreateDDBVPCEndPoint – 一个布尔值,默认为 true,表示是否需要创建 DynamoDB VPC 端点。如果您已在 VPC 中创建 DynamoDB 端点,则只需将其更改为 false

  • CreateMonitoringEndPoint – 一个布尔值,默认为 true,表示是否需要创建监控 VPC 端点。如果您已在 VPC 中创建镜像终端节点,则只需将其更改为 false

流轮询器
  • ApplicationName – 您通常可以将此设置保留为默认值 (NeptuneStream)。如果您使用不同的名称,则该名称必须是唯一的。

  • LambdaMemorySize – 用于设置 Lambda 轮询器函数可用的内存大小。默认值为 2,048 MB。

  • LambdaRuntime – 从 Neptune 流中检索项目的 Lambda 函数使用的语言。您可以将其设置为 python3.9java8

  • LambdaS3Bucket – 包含 Lambda 代码构件的 Amazon S3 桶。除非您使用从其它 Amazon S3 桶加载的自定义 Lambda 轮询函数,否则将此设置保留为空。

  • LambdaS3Key – 与您的 Lambda 代码构件对应的 Amazon S3 键。除非您使用自定义 Lambda 轮询函数,否则将此设置保留为空。

  • LambdaLoggingLevel – 通常,将此设置保留为默认值,即 INFO

  • ManagedPolicies – 列出用于执行 Lambda 函数的托管式策略。通常,除非您使用自定义 Lambda 轮询函数,否则将此设置保留为空。

  • StreamRecordsHandler – 通常,除非您为 Neptune 流中的记录使用自定义处理程序,否则将此设置保留为空。

  • StreamRecordsBatchSize – 要从流中提取的最大记录数。您可以使用此参数来优化性能。默认值 (5000) 是一个很好的开始。允许的最大值为 10,000。数字越大,从流读取记录所需的网络调用就越少,但处理记录所需的内存越多。此参数的值越低,吞吐量就越低。

  • MaxPollingWaitTime – 两次轮询之间的最长等待时间(以秒为单位)。确定调用 Lambda 轮询器轮询 Neptune 流的频率。将此值设置为 0 以进行连续轮询。最大值为 3600 秒(1 小时)。默认值(60 秒)是一个很好的开始,具体取决于图形数据更改的速度。

  • MaxPollingInterval – 最长连续轮询周期(以秒为单位)。使用此参数设置 Lambda 轮询函数的超时。该值应介于 5 秒到 900 秒之间。默认值(600 秒)是一个很好的开始。

  • StepFunctionFallbackPeriod— 等待轮询器的 step-function-fallback-period 单位数,之后通过 Amazon CloudWatch Events 调用步骤函数以从故障中恢复。默认值(5 分钟)是一个很好的开始。

  • StepFunctionFallbackPeriodUnit – 用于衡量前面的 StepFunctionFallbackPeriodUnit 的时间单位(minuteshoursdays)。默认值 (minutes) 通常就足够了。

Neptune 流
  • NeptuneStreamEndpoint –(必需)Neptune 源流的端点。它采用两种形式之一:

    • https://your DB cluster:port/propertygraph/stream(或其别名 https://your DB cluster:port/pg/stream)。

    • https://your DB cluster:port/sparql/stream.

  • Neptune Query Engine – 选择 Gremlin、openCypher 或 SPARQL。

  • IAMAuthEnabledOnSourceStream – 如果您的 Neptune 数据库集群使用 IAM 身份验证,请将此参数设置为 true

  • StreamDBClusterResourceId – 如果您的 Neptune 数据库集群使用 IAM 身份验证,请将此参数设置为集群资源 ID。资源 ID 与集群 ID 不同。相反,它采取的形式是:cluster- 后跟 28 个字母数字字符。可以在 Neptune 控制台的集群详细信息下找到它。

目标 Neptune 数据库集群
  • TargetNeptuneClusterEndpoint – 目标备份集群的集群端点(仅限主机名)。

    请注意,如果您指定 TargetNeptuneClusterEndpoint,则不能同时指定 TargetSPARQLUpdateEndpoint

  • TargetNeptuneClusterPort – 目标集群的端口号。

    请注意,如果您指定 TargetSPARQLUpdateEndpoint,则会忽略 TargetNeptuneClusterPort 的设置。

  • IAMAuthEnabledOnTargetCluster – 如果要在目标集群上启用 IAM 身份验证,则设置为 true。

  • TargetAWSRegion— 目标备份集群的 AWS 区域,例如us-east-1)。只有当目标备份集群的 AWS 区域与 Neptune 源集群的区域不同时(例如跨区域复制),您才必须提供此参数。如果源区域和目标区域相同,则此参数是可选的。

    请注意,如果该TargetAWSRegion值不是 Nep tune 支持的有效 AWS 区域,则该过程将失败。

  • TargetNeptuneDBClusterResourceId可选:只有在目标数据库集群上启用 IAM 身份验证时才需要此参数。设置为目标集群的资源 ID。

  • SPARQLTripleOnlyMode - 确定是否启用仅限三重模式的布尔标志。在仅限三重模式下,不存在命名图形复制。默认值为 false

  • TargetSPARQLUpdateEndpoint – SPARQL 更新的目标端点的 URL,例如 https://abc.com/xyz。此端点可以是任何支持四元组或三元组的 SPARQL 存储。

    请注意,如果您指定 TargetSPARQLUpdateEndpoint,则无法同时指定 TargetNeptuneClusterEndpointTargetNeptuneClusterPort 的设置将被忽略。

  • BlockSparqlReplicationOnBlankNode — 布尔标志,如果设置为true,则停止复制 SPARQL (RDF) 数据。 BlankNode 默认值为 false

警报
  • Required to create Cloud watch Alarmtrue 如果要为新堆栈创建 CloudWatch 警报,请将其设置为。

  • SNS Topic ARN for Cloudwatch Alarm Notifications— 应在 CloudWatch 其中发送警报通知的 SNS 主题 ARN(仅在启用警报时才需要)。

  • Email for Alarm Notifications – 应向其发送警报通知的电子邮件地址(仅在启用警报时才需要)。

对于警报通知的目标,您可以添加仅限 SNS、仅限电子邮件或同时使用 SNS 和电子邮件。

运行 AWS CloudFormation 模板

现在,您可以完成预调配 Neptune 流使用者应用程序实例的过程,如下所示:

  1. 在 AWS CloudFormation指定堆栈详细信息页面上,选择下一步

  2. 选项页面上,选择下一步

  3. 审核页面上,选中第一个复选框以确认 AWS CloudFormation 将创建 IAM 资源。选中第二个复选框以确认新堆栈的 CAPABILITY_AUTO_EXPAND

    注意

    CAPABILITY_AUTO_EXPAND 明确确认在创建堆栈时将扩展宏,而无需事先审核。用户通常通过处理的模板创建更改集,以便在实际创建堆栈之前对宏所做的更改进行审核。有关更多信息,请参阅 AWS CloudFormation CreateStackAPI 参考中的AWS CloudFormation API

    然后选择创建

使用最新的 Lambda 构件更新流轮询器

您可以使用最新的 Lambda 代码构件更新流轮询器,如下所示:

  1. 在中 AWS Management Console,导航到主父 AWS CloudFormation 堆栈 AWS CloudFormation 并选择该堆栈。

  2. 为堆栈选择更新选项。

  3. 选择替换当前模板

  4. 对于模板源,选择 Amazon S3 URL 并输入以下 S3 URL:

    https://aws-neptune-customer-samples.s3.amazonaws.com/neptune-stream/neptune_to_neptune.json
  5. 在不更改任何 AWS CloudFormation 参数的情况下选择 “下一步”。

  6. 选择 Update Stack

现在,堆栈将使用最新的构件更新 Lambda 构件。