本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CloudFormation 使用在 Streams 使用者应用程序中设置 Neptune-to-Neptune复制
您可以使用 CloudFormation 模板来设置 Neptune 流使用者应用程序以支持 Neptune-to-Neptune复制。
主题
为你所在的地区选择一个 CloudFormation 模板
要在 CloudFormation 控制台上启动相应的 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 (指定堆栈详细信息) 页面提供了属性和参数,可用于控制应用程序的设置。
堆栈名称-您正在创建的新 CloudFormation 堆栈的名称。通常可以使用默认值 NeptuneStreamPoller。
在 Parameters (参数) 下,提供以下内容:
流使用者运行的 VPC 的网络配置
VPC– 提供将运行轮询 Lambda 函数的 VPC 的名称。SubnetIDs– 与其建立网络接口的子网。添加与您的 Neptune 集群对应的子网。SecurityGroupIds— 提供授予 IDs 对源 Neptune 数据库集群的入站写入访问权限的安全组。RouteTableIds– 如果您还没有 Amazon DynamoDB 端点,则需要在 Neptune VPC 中创建一个。您必须提供与子网 IDs 关联的以逗号分隔的路由表列表。CreateDDBVPCEndPoint– 一个布尔值,默认为true,表示是否需要创建 DynamoDB VPC 端点。如果您已在 VPC 中创建 DynamoDB 端点,则只需将其更改为false。CreateMonitoringEndPoint– 一个布尔值,默认为true,表示是否需要创建监控 VPC 端点。如果您已在 VPC 中创建镜像终端节点,则只需将其更改为false。
流轮询器
ApplicationName– 您通常可以将此设置保留为默认值 (NeptuneStream)。如果您使用不同的名称,则该名称必须是唯一的。LambdaMemorySize– 用于设置 Lambda 轮询器函数可用的内存大小。默认值为 2,048 MB。LambdaRuntime– 从 Neptune 流中检索项目的 Lambda 函数使用的语言。您可以将其设置为python3.9或java8。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的时间单位(minutes、hours或days)。默认值 (minutes) 通常就足够了。StartingCheckpoint— 直播轮询器的起始检查点。默认值为0:0,表示从 Neptune 流的开头开始。StreamPollerInitialState— 轮询器的初始状态。默认值为ENABLED,这意味着流复制将在整个堆栈创建完成后立即开始。
Neptune 流
-
NeptuneStreamEndpoint–(必需)Neptune 源流的端点。它采用两种形式之一:https://(或其别名your DB cluster:port/propertygraph/streamhttps://)。your DB cluster:port/pg/streamhttps://.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,则无法同时指定TargetNeptuneClusterEndpoint,TargetNeptuneClusterPort的设置将被忽略。 -
BlockSparqlReplicationOnBlankNode— 布尔标志,如果设置为true,则停止复制 SPARQL (RDF) 数据。 BlankNode 默认值为false。
警报
Required to create Cloud watch Alarm—true如果要为新堆栈创建 CloudWatch 警报,请将其设置为。SNS Topic ARN for Cloudwatch Alarm Notifications— 应在 CloudWatch 其中发送警报通知的 SNS 主题 ARN(仅在启用警报时才需要)。Email for Alarm Notifications– 应向其发送警报通知的电子邮件地址(仅在启用警报时才需要)。
对于警报通知的目标,您可以添加仅限 SNS、仅限电子邮件或同时使用 SNS 和电子邮件。
运行 CloudFormation 模板
现在,您可以完成预调配 Neptune 流使用者应用程序实例的过程,如下所示:
在 CloudFormation指定堆栈详细信息页面上,选择下一步。
在选项页面上,选择下一步。
-
在审核页面上,选中第一个复选框以确认 CloudFormation 将创建 IAM 资源。选中第二个复选框以确认新堆栈的
CAPABILITY_AUTO_EXPAND。注意
CAPABILITY_AUTO_EXPAND明确确认在创建堆栈时将扩展宏,而无需事先审核。用户通常通过处理的模板创建更改集,以便在实际创建堆栈之前对宏所做的更改进行审核。有关更多信息,请参阅 CloudFormation CreateStackAPI 参考中的AWS CloudFormation API。然后选择创建。
使用最新的 Lambda 构件更新流轮询器
您可以使用最新的 Lambda 代码构件更新流轮询器,如下所示:
在中 AWS 管理控制台,导航到主父 CloudFormation 堆栈 CloudFormation 并选择该堆栈。
为堆栈选择更新选项。
选择替换当前模板。
-
对于模板源,选择 Amazon S3 URL 并输入以下 S3 URL:
https://aws-neptune-customer-samples.s3.amazonaws.com/neptune-stream/neptune_to_neptune.json 在不更改任何 CloudFormation 参数的情况下选择 “下一步”。
选择 Update Stack。
现在,堆栈将使用最新的构件更新 Lambda 构件。