UNPKG

@cdklabs/aws-data-solutions-framework

Version:
65 lines 9.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const cdk = require("aws-cdk-lib"); const dsf = require("../../index"); const aws_iam_1 = require("aws-cdk-lib/aws-iam"); class ExampleOpenSearchApiStackMethodCall extends cdk.Stack { constructor(scope, id, props) { super(scope, id, props); this.node.setContext('@data-solutions-framework-on-aws/removeDataOnDestroy', true); const domainEndpoint = 'search-XXXXXX.XXXXXX.es.amazonaws.com'; const apiRole = aws_iam_1.Role.fromRoleName(this, 'ApiRole', '<IAMRoleWithOpenSearchPermissions>'); const osApi = new dsf.consumption.OpenSearchApi(this, 'MyOpenSearchApi', { iamHandlerRole: apiRole, openSearchEndpoint: domainEndpoint, openSearchClusterType: dsf.consumption.OpenSearchClusterType.PROVISIONED, removalPolicy: cdk.RemovalPolicy.DESTROY }); //Add another admin osApi.addRoleMapping('AnotherAdmin', 'all_access', 'sometestId'); /// !show //create index template const indexTemplateCr = osApi.callOpenSearchApi('CreateIndexTemplate', '_index_template/movies', { "index_patterns": [ "movies-*" ], "template": { "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 0 } }, "mappings": { "properties": { "title": { "type": "text" }, "year": { "type": "integer" } } } } }); const metadata = '{ "index" : { "_index" : "movies-02"}}'; const bulk = `${metadata} {"title": "Barbie", "year": 2023} ${metadata} {"title": "Openheimer", "year": 2023}`; // bulk ingestion using POST const bulkCr = osApi.callOpenSearchApi('AddBulk', '_bulk', bulk + '\n\n', 'POST'); //dependency to enforce sequential API calls bulkCr.node.addDependency(indexTemplateCr); const add1Cr = osApi.callOpenSearchApi('AddData1', 'movies-01/_doc/1111', { "title": "Rush", "year": 2013 }, 'PUT'); add1Cr.node.addDependency(indexTemplateCr); const add2Cr = osApi.callOpenSearchApi('AddData3', 'movies-01/_doc/2222', { "title": "Toy Story", "year": 2014 }, 'PUT'); add2Cr.node.addDependency(indexTemplateCr); const add3Cr = osApi.callOpenSearchApi('AddData4', 'movies-01/_doc', { "title": "The Little Mermaid", "year": 2015 }, 'POST'); add3Cr.node.addDependency(indexTemplateCr); /// !hide } } const app = new cdk.App(); new ExampleOpenSearchApiStackMethodCall(app, 'ExampleOpenSearchApiStandaloneStack', { env: { region: 'us-east-1' } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNlYXJjaC1hcGktc3RhbmRhbG9uZS1jb25zdHJ1Y3Rvci1jYWxsb3BlbnNlYXJjaGFwaS5saXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uc3VtcHRpb24vZXhhbXBsZXMvb3BlbnNlYXJjaC1hcGktc3RhbmRhbG9uZS1jb25zdHJ1Y3Rvci1jYWxsb3BlbnNlYXJjaGFwaS5saXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBbUM7QUFFbkMsbUNBQW1DO0FBQ25DLGlEQUEyQztBQUczQyxNQUFNLG1DQUFvQyxTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBRXpELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUcsS0FBb0I7UUFFN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0RBQXNELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbkYsTUFBTSxjQUFjLEdBQUMsdUNBQXVDLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsY0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFDekYsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUM7WUFDdEUsY0FBYyxFQUFDLE9BQU87WUFDdEIsa0JBQWtCLEVBQUMsY0FBYztZQUNqQyxxQkFBcUIsRUFBQyxHQUFHLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVc7WUFDdkUsYUFBYSxFQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztTQUN4QyxDQUFDLENBQUM7UUFDSCxtQkFBbUI7UUFDbkIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWhFLFNBQVM7UUFDVCx1QkFBdUI7UUFDdkIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFDLHdCQUF3QixFQUM1RjtZQUNFLGdCQUFnQixFQUFFO2dCQUNoQixVQUFVO2FBQ1g7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRTt3QkFDUCxrQkFBa0IsRUFBRSxDQUFDO3dCQUNyQixvQkFBb0IsRUFBRSxDQUFDO3FCQUN4QjtpQkFDRjtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsWUFBWSxFQUFFO3dCQUNaLE9BQU8sRUFBRTs0QkFDUCxNQUFNLEVBQUUsTUFBTTt5QkFDZjt3QkFDRCxNQUFNLEVBQUU7NEJBQ04sTUFBTSxFQUFFLFNBQVM7eUJBQ2xCO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBQyx3Q0FBd0MsQ0FBQztRQUN4RCxNQUFNLElBQUksR0FBQyxHQUFHLFFBQVE7O1FBRXBCLFFBQVE7NENBQzRCLENBQUM7UUFFdkMsNEJBQTRCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLElBQUksR0FBQyxNQUFNLEVBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0UsNENBQTRDO1FBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUMsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqSCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLHFCQUFxQixFQUFDLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEgsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBQyxFQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0gsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsU0FBUztJQUVYLENBQUM7Q0FDRjtBQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLElBQUksbUNBQW1DLENBQUMsR0FBRyxFQUFFLHFDQUFxQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGRzZiBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5cblxuY2xhc3MgRXhhbXBsZU9wZW5TZWFyY2hBcGlTdGFja01ldGhvZENhbGwgZXh0ZW5kcyBjZGsuU3RhY2sge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcgLCBwcm9wczpjZGsuU3RhY2tQcm9wcykge1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoJ0BkYXRhLXNvbHV0aW9ucy1mcmFtZXdvcmstb24tYXdzL3JlbW92ZURhdGFPbkRlc3Ryb3knLCB0cnVlKTtcbiAgICBcbiAgICBjb25zdCBkb21haW5FbmRwb2ludD0nc2VhcmNoLVhYWFhYWC5YWFhYWFguZXMuYW1hem9uYXdzLmNvbSc7XG4gICAgY29uc3QgYXBpUm9sZSA9IFJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdBcGlSb2xlJywgJzxJQU1Sb2xlV2l0aE9wZW5TZWFyY2hQZXJtaXNzaW9ucz4nKTtcbiAgICBjb25zdCBvc0FwaSA9IG5ldyBkc2YuY29uc3VtcHRpb24uT3BlblNlYXJjaEFwaSh0aGlzLCAnTXlPcGVuU2VhcmNoQXBpJyx7XG4gICAgICBpYW1IYW5kbGVyUm9sZTphcGlSb2xlLFxuICAgICAgb3BlblNlYXJjaEVuZHBvaW50OmRvbWFpbkVuZHBvaW50LFxuICAgICAgb3BlblNlYXJjaENsdXN0ZXJUeXBlOmRzZi5jb25zdW1wdGlvbi5PcGVuU2VhcmNoQ2x1c3RlclR5cGUuUFJPVklTSU9ORUQsXG4gICAgICByZW1vdmFsUG9saWN5OmNkay5SZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICB9KTtcbiAgICAvL0FkZCBhbm90aGVyIGFkbWluXG4gICAgb3NBcGkuYWRkUm9sZU1hcHBpbmcoJ0Fub3RoZXJBZG1pbicsICdhbGxfYWNjZXNzJywnc29tZXRlc3RJZCcpO1xuXG4gICAgLy8vICFzaG93XG4gICAgLy9jcmVhdGUgaW5kZXggdGVtcGxhdGVcbiAgICBjb25zdCBpbmRleFRlbXBsYXRlQ3IgPSBvc0FwaS5jYWxsT3BlblNlYXJjaEFwaSgnQ3JlYXRlSW5kZXhUZW1wbGF0ZScsJ19pbmRleF90ZW1wbGF0ZS9tb3ZpZXMnLFxuICAgICAge1xuICAgICAgICBcImluZGV4X3BhdHRlcm5zXCI6IFtcbiAgICAgICAgICBcIm1vdmllcy0qXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJ0ZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgXCJzZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcImluZGV4XCI6IHtcbiAgICAgICAgICAgICAgXCJudW1iZXJfb2Zfc2hhcmRzXCI6IDEsXG4gICAgICAgICAgICAgIFwibnVtYmVyX29mX3JlcGxpY2FzXCI6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGV4dFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwieWVhclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc3QgbWV0YWRhdGE9J3sgXCJpbmRleFwiIDogeyBcIl9pbmRleFwiIDogXCJtb3ZpZXMtMDJcIn19JztcbiAgICAgIGNvbnN0IGJ1bGs9YCR7bWV0YWRhdGF9XG4gICAgICB7XCJ0aXRsZVwiOiBcIkJhcmJpZVwiLCBcInllYXJcIjogMjAyM31cbiAgICAgICR7bWV0YWRhdGF9XG4gICAgICB7XCJ0aXRsZVwiOiBcIk9wZW5oZWltZXJcIiwgXCJ5ZWFyXCI6IDIwMjN9YDtcbiAgICAgIFxuICAgICAgLy8gYnVsayBpbmdlc3Rpb24gdXNpbmcgUE9TVFxuICAgICAgY29uc3QgYnVsa0NyID0gb3NBcGkuY2FsbE9wZW5TZWFyY2hBcGkoJ0FkZEJ1bGsnLCdfYnVsaycsYnVsaysnXFxuXFxuJywnUE9TVCcpO1xuICAgICAgLy9kZXBlbmRlbmN5IHRvIGVuZm9yY2Ugc2VxdWVudGlhbCBBUEkgY2FsbHNcbiAgICAgIGJ1bGtDci5ub2RlLmFkZERlcGVuZGVuY3koaW5kZXhUZW1wbGF0ZUNyKTtcbiAgXG4gICAgICBjb25zdCBhZGQxQ3IgPSBvc0FwaS5jYWxsT3BlblNlYXJjaEFwaSgnQWRkRGF0YTEnLCAnbW92aWVzLTAxL19kb2MvMTExMScse1widGl0bGVcIjogXCJSdXNoXCIsIFwieWVhclwiOiAyMDEzfSwgJ1BVVCcpO1xuICAgICAgYWRkMUNyLm5vZGUuYWRkRGVwZW5kZW5jeShpbmRleFRlbXBsYXRlQ3IpO1xuICAgICAgY29uc3QgYWRkMkNyID0gb3NBcGkuY2FsbE9wZW5TZWFyY2hBcGkoJ0FkZERhdGEzJywgJ21vdmllcy0wMS9fZG9jLzIyMjInLHtcInRpdGxlXCI6IFwiVG95IFN0b3J5XCIsIFwieWVhclwiOiAyMDE0fSwgJ1BVVCcpO1xuICAgICAgYWRkMkNyLm5vZGUuYWRkRGVwZW5kZW5jeShpbmRleFRlbXBsYXRlQ3IpO1xuICAgICAgY29uc3QgYWRkM0NyID0gb3NBcGkuY2FsbE9wZW5TZWFyY2hBcGkoJ0FkZERhdGE0JywgJ21vdmllcy0wMS9fZG9jJyx7XCJ0aXRsZVwiOiBcIlRoZSBMaXR0bGUgTWVybWFpZFwiLCBcInllYXJcIjogMjAxNX0sICdQT1NUJyk7XG4gICAgICBhZGQzQ3Iubm9kZS5hZGREZXBlbmRlbmN5KGluZGV4VGVtcGxhdGVDcik7XG4gICAgLy8vICFoaWRlXG5cbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xubmV3IEV4YW1wbGVPcGVuU2VhcmNoQXBpU3RhY2tNZXRob2RDYWxsKGFwcCwgJ0V4YW1wbGVPcGVuU2VhcmNoQXBpU3RhbmRhbG9uZVN0YWNrJywgeyBlbnY6IHtyZWdpb246J3VzLWVhc3QtMSd9IH0pOyJdfQ==