Usar o AWS CloudFormation para configurar a replicação do Neptune-para-Neptune com a aplicação de consumidor de fluxos
É possível usar um modelo do CloudFormation para configurar a aplicação de consumidor de fluxos do Neptune para oferecer compatibilidade com a replicação do Neptune-para-Neptune.
Tópicos
Escolher um modelo do CloudFormation para a região
Para executar a pilha apropriada do CloudFormation no console do CloudFormation, selecione um dos botões Iniciar pilha na tabela a seguir, de acordo com a região da AWS que deseja usar.
Na página Create Stack (Criar pilha), selecione Next (Avançar).
Adicionar detalhes sobre a pilha de consumidor de fluxos do Neptune que você está criando
A página Specify Stack Details (Especificar detalhes da pilha) fornece propriedades e parâmetros que você pode usar para controlar a configuração do aplicativo:
Nome da pilha: o nome da pilha do CloudFormation que você está criando. Geralmente, você pode usar o valor padrão, NeptuneStreamPoller.
Em Parameters (Parâmetros), forneça o seguinte:
Configuração de rede para a VPC na qual o consumidor de fluxos é executado
VPC– forneça o nome da VPC na qual a função do Lambda de sondagem será executada.SubnetIDs– as sub-redes para as quais será estabelecida uma interface de rede. Adicione sub-redes correspondentes ao cluster do Neptune.SecurityGroupIds– forneça os IDs dos grupos de segurança que concedem o acesso de entrada de gravação ao cluster de banco de dados de origem do Neptune.RouteTableIds– isso é necessário para criar um endpoint do Amazon DynamoDB na VPC do Neptune, caso ainda não tenha um. Forneça uma lista separada por vírgulas de IDs de tabela de rotas associados às sub-redes.CreateDDBVPCEndPoint: um valor booliano cujo padrão étrue, indicando se é necessário ou não criar um endpoint da VPC de banco de dados do Dynamo. Você só precisará alterá-lo parafalsese já tiver criado um endpoint do DynamoDB na VPC.CreateMonitoringEndPoint: um valor booliano cujo padrão étrue, indicando se é necessário ou não criar um endpoint da VPC de monitoramento. Você só precisará alterá-lo parafalsese já tiver criado um endpoint de monitoramento na VPC.
Instrumento de sondagem de fluxos
ApplicationName– geralmente, você pode manter a configuração padrão (NeptuneStream). Se você usar um nome diferente, ele deverá ser exclusivo.LambdaMemorySize– usado para definir o tamanho da memória disponível para a função do instrumento de sondagem do Lambda. O valor padrão é de 2.048 megabytes.LambdaRuntime– a linguagem usada na função do Lambda que recupera os itens do fluxo do Neptune. É possível definir comopython3.9oujava8.LambdaS3Bucket– o bucket do Amazon S3 que contém artefatos de código do Lambda. Deixe em branco, a menos que esteja usando uma função de sondagem personalizada do Lambda, carregada em outro bucket do Amazon S3.LambdaS3Key– a chave do Amazon S3 que corresponde aos seus artefatos de código do Lambda. Deixe em branco, a menos que esteja usando uma função de sondagem personalizada do Lambda.LambdaLoggingLevel– em geral, mantenha a configuração padrão, que éINFO.ManagedPolicies– lista as políticas gerenciadas a serem usadas na execução da função do Lambda. Em geral, deixe em branco, a menos que esteja usando uma função de sondagem personalizada do Lambda.StreamRecordsHandler– em geral, deixe em branco, a menos que esteja usando um manipulador personalizado para os registros nos fluxos do Neptune.StreamRecordsBatchSize– o número máximo de registros a serem obtidos no fluxo. É possível usar esse parâmetro para ajustar o desempenho. Recomendamos iniciar com o valor padrão (5000). O máximo permitido é 10.000. Quanto maior o número, menor serão as chamadas de rede necessárias para ler os registros do fluxo, mas maior será a memória necessária para processar os registros. Valores mais baixos desse parâmetro geram uma menor taxa de transferência.MaxPollingWaitTime– o tempo máximo de espera entre duas pesquisas (em segundos). Determina com que frequência o instrumento de sondagem do Lambda será invocado para sondar os fluxos do Neptune. Defina esse valor como 0 para a sondagem contínua. O valor máximo é de 3.600 segundos (1 hora). Recomendamos o valor padrão (60 segundos) para começar, dependendo da rapidez com que os dados do gráfico mudam.MaxPollingInterval– o período máximo de sondagem contínua (em segundos). Use isso para definir um tempo limite para a função de sondagem do Lambda. O valor deve estar no intervalo entre cinco segundos e novecentos segundos. Recomendamos começar com o valor padrão (600 segundos).StepFunctionFallbackPeriod– o número de unidades de período de fallback da função de etapa para aguardar o instrumento de sondagem, após o qual a função de etapa é chamada pelo Amazon CloudWatch Events para se recuperar de uma falha. Recomendamos iniciar com o valor padrão (5 minutos).StepFunctionFallbackPeriodUnit: as unidades de tempo usadas para medir oStepFunctionFallbackPeriodUnitanterior (minutes,hoursoudays). Em geral, o padrão (minutes) é suficiente.StartingCheckpoint: o ponto de verificação inicial do instrumento de sondagem de fluxos. O padrão é0:0, o que significa começar do início do fluxo do Neptune.StreamPollerInitialState– o estado inicial do instrumento de sondagem. O padrão éENABLED, o que significa que a replicação de fluxos começará assim que a criação de toda a pilha for concluída.
Fluxo do Neptune
-
NeptuneStreamEndpoint: (obrigatório) o endpoint do fluxo de origem do Neptune. Isso assume uma destas duas formas:https://(ou o alias,your DB cluster:port/propertygraph/streamhttps://).your DB cluster:port/pg/streamhttps://.your DB cluster:port/sparql/stream
Neptune Query Engine– escolha Gremlin, openCypher ou SPARQL.IAMAuthEnabledOnSourceStream– se o cluster de banco de dados do Neptune estiver usando a autenticação do IAM, defina esse parâmetro comotrue.StreamDBClusterResourceId– se o cluster de banco de dados do Neptune estiver usando a autenticação do IAM, defina esse parâmetro como o ID do recurso do cluster. O ID do recurso não é igual ao ID do cluster. Em vez disso, o formato é:cluster-seguido por 28 caracteres alfanuméricos. Ele pode ser encontrado em Detalhes do cluster no console do Neptune.
Cluster de banco de dados do Neptune de destino
-
TargetNeptuneClusterEndpoint– o endpoint do cluster (somente nome do host) do cluster de backup de destino.Observe que, se você especificar
TargetNeptuneClusterEndpoint, não poderá especificarTargetSPARQLUpdateEndpoint. -
TargetNeptuneClusterPort– o número da porta do cluster de destino.Observe que, se você especificar
TargetSPARQLUpdateEndpoint, a configuração deTargetNeptuneClusterPortserá ignorada. -
IAMAuthEnabledOnTargetCluster– defina como verdadeiro se a autenticação do IAM precisar ser habilitada no cluster de destino. -
TargetAWSRegion: a região da AWS do cluster de backup de destino, comous-east-1). Você deve fornecer esse parâmetro somente quando a região da AWS do cluster de backup de destino for diferente da região do cluster de origem do Neptune, como no caso da replicação entre regiões. Se as regiões de origem e de destino forem iguais, esse parâmetro será opcional.Observe que, se o valor
TargetAWSRegionnão for uma região da AWS válida compatível com o Neptune, ocorrerá uma falha no processo. -
TargetNeptuneDBClusterResourceId: opcional: isso só é necessário quando a autenticação do IAM está habilitada no cluster de banco de dados de destino. Defina como o ID do recurso do cluster de destino. -
SPARQLTripleOnlyMode– sinalizador booliano que determina se o modo somente triplo está habilitado. No modo somente triplo, não há replicação de grafo nomeado. O valor padrão éfalse. -
TargetSPARQLUpdateEndpoint– URL do endpoint de destino para atualização do SPARQL, comohttps://abc.com/xyz. Esse endpoint pode ser qualquer armazenamento SPARQL compatível com quádruplos ou triplos.Observe que, se você especificar
TargetSPARQLUpdateEndpoint, também não poderá especificarTargetNeptuneClusterEndpointe a configuração deTargetNeptuneClusterPortserá ignorada. -
BlockSparqlReplicationOnBlankNode: sinalizador booliano que, se definido comotrue, interrompe a replicação do BlankNode em dados SPARQL (RDF). O valor padrão éfalse.
Alarme
Required to create Cloud watch Alarm: defina comotruese quiser criar um alarme do CloudWatch para a nova pilha.SNS Topic ARN for Cloudwatch Alarm Notifications– o ARN do tópico do SNS para o qual as notificações de alarme do CloudWatch devem ser enviadas (necessário somente se os alarmes estiverem habilitados).Email for Alarm Notifications– o endereço de e-mail para o qual as notificações de alarme devem ser enviadas (somente necessário se os alarmes estiverem habilitados).
Para o destino da notificação de alarmes, é possível adicionar somente SNS, somente e-mail ou SNS e e-mail.
Executar o modelo do CloudFormation
Agora é possível concluir o processo de provisionamento de uma instância de aplicação do consumidor de fluxos do Neptune da seguinte forma:
No CloudFormation, na página Specify Stack Details (Especificar detalhes da pilha), selecione Next (Próximo).
Na página Options (Opções), escolha Next (Avançar).
-
Na página Revisar, marque a primeira caixa de seleção para confirmar que o CloudFormation criará recursos do IAM. Marque a segunda caixa de seleção para confirmar
CAPABILITY_AUTO_EXPANDpara a nova pilha.nota
CAPABILITY_AUTO_EXPANDconfirma explicitamente que os macros serão expandidos ao criar a pilha, sem revisão anterior. Os usuários geralmente criam um conjunto de alterações a partir de um modelo processado para que as alterações feitas pelos macros possam ser revisadas antes de criar a pilha. Para obter mais informações, consulte a API CreateStack do CloudFormation na Referência da API do AWS CloudFormation.Escolha Criar.
Como atualizar o instrumento de sondagem de fluxos com os artefatos mais recentes do Lambda
É possível atualizar o instrumento de sondagem de fluxos com os artefatos de código mais recentes do Lambda:
No Console de gerenciamento da AWS, navegue até CloudFormation e selecione a pilha do CloudFormation principal.
Selecione a opção Atualizar para a pilha.
Selecione Substituir modelo atual.
-
Para a origem do modelo, escolha o URL do Amazon S3 e insira o seguinte URL do S3:
https://aws-neptune-customer-samples.s3.amazonaws.com/neptune-stream/neptune_to_neptune.json Selecione Próximo sem alterar nenhum parâmetro CloudFormation.
Escolha Update Stack (Atualizar pilha).
A pilha agora atualizará os artefatos do Lambda com os mais recentes.