Usar CreateMatchingWorkflow com um SDK da AWS - Exemplos de código do AWS SDK

Há mais exemplos do AWS SDK disponíveis no repositório do GitHub Documento de Exemplos do AWS SDK.

Usar CreateMatchingWorkflow com um SDK da AWS

Os exemplos de código a seguir mostram como usar o CreateMatchingWorkflow.

Java
SDK para Java 2.x
nota

Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository.

/** * Creates an asynchronous CompletableFuture to manage the creation of a matching workflow. * * @param roleARN the AWS IAM role ARN to be used for the workflow execution * @param workflowName the name of the workflow to be created * @param outputBucket the S3 bucket path where the workflow output will be stored * @param jsonGlueTableArn the ARN of the Glue Data Catalog table to be used as the input source * @param jsonErSchemaMappingName the name of the schema to be used for the input source * @return a CompletableFuture that, when completed, will return the ARN of the created workflow */ public CompletableFuture<String> createMatchingWorkflowAsync( String roleARN , String workflowName , String outputBucket , String jsonGlueTableArn , String jsonErSchemaMappingName , String csvGlueTableArn , String csvErSchemaMappingName) { InputSource jsonInputSource = InputSource.builder() .inputSourceARN(jsonGlueTableArn) .schemaName(jsonErSchemaMappingName) .applyNormalization(false) .build(); InputSource csvInputSource = InputSource.builder() .inputSourceARN(csvGlueTableArn) .schemaName(csvErSchemaMappingName) .applyNormalization(false) .build(); OutputAttribute idOutputAttribute = OutputAttribute.builder() .name("id") .build(); OutputAttribute nameOutputAttribute = OutputAttribute.builder() .name("name") .build(); OutputAttribute emailOutputAttribute = OutputAttribute.builder() .name("email") .build(); OutputAttribute phoneOutputAttribute = OutputAttribute.builder() .name("phone") .build(); OutputSource outputSource = OutputSource.builder() .outputS3Path("s3://" + outputBucket + "/eroutput") .output(idOutputAttribute, nameOutputAttribute, emailOutputAttribute, phoneOutputAttribute) .applyNormalization(false) .build(); ResolutionTechniques resolutionType = ResolutionTechniques.builder() .resolutionType(ResolutionType.ML_MATCHING) .build(); CreateMatchingWorkflowRequest workflowRequest = CreateMatchingWorkflowRequest.builder() .roleArn(roleARN) .description("Created by using the AWS SDK for Java") .workflowName(workflowName) .inputSourceConfig(List.of(jsonInputSource, csvInputSource)) .outputSourceConfig(List.of(outputSource)) .resolutionTechniques(resolutionType) .build(); return getResolutionAsyncClient().createMatchingWorkflow(workflowRequest) .whenComplete((response, exception) -> { if (response != null) { logger.info("Workflow created successfully."); } else { Throwable cause = exception.getCause(); if (cause instanceof ValidationException) { throw new CompletionException("Invalid request: Please check input parameters.", cause); } if (cause instanceof ConflictException) { throw new CompletionException("A conflicting workflow already exists. Resolve conflicts before proceeding.", cause); } throw new CompletionException("Failed to create workflow: " + exception.getMessage(), exception); } }) .thenApply(CreateMatchingWorkflowResponse::workflowArn); }
JavaScript
SDK para JavaScript (v3)
nota

Há mais no GitHub. Encontre o exemplo completo e veja como configurar e executar no AWS Code Examples Repository.

//The default inputs for this demo are read from the ../inputs.json. import { fileURLToPath } from "node:url"; import { CreateMatchingWorkflowCommand, EntityResolutionClient, } from "@aws-sdk/client-entityresolution"; import data from "../inputs.json" with { type: "json" }; const region = "eu-west-1"; const erClient = new EntityResolutionClient({ region: region }); export const main = async () => { const createMatchingWorkflowParams = { roleArn: `${data.inputs.roleArn}`, workflowName: `${data.inputs.workflowName}`, description: "Created by using the AWS SDK for JavaScript (v3).", inputSourceConfig: [ { inputSourceARN: `${data.inputs.JSONinputSourceARN}`, schemaName: `${data.inputs.schemaNameJson}`, applyNormalization: false, }, { inputSourceARN: `${data.inputs.CSVinputSourceARN}`, schemaName: `${data.inputs.schemaNameCSV}`, applyNormalization: false, }, ], outputSourceConfig: [ { outputS3Path: `s3://${data.inputs.myBucketName}/eroutput`, output: [ { name: "id", }, { name: "name", }, { name: "email", }, { name: "phone", }, ], applyNormalization: false, }, ], resolutionTechniques: { resolutionType: "ML_MATCHING" }, }; try { const command = new CreateMatchingWorkflowCommand( createMatchingWorkflowParams, ); const response = await erClient.send(command); console.log( `Workflow created successfully.\n The workflow ARN is: ${response.workflowArn}`, ); } catch (caught) { console.error(caught.message); throw caught; } };