@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
65 lines • 9.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const dsf = require("../../index");
class ExampleOpenSearchApiStack extends cdk.Stack {
constructor(scope, id, props) {
super(scope, id, props);
this.node.setContext('@data-solutions-framework-on-aws/removeDataOnDestroy', true);
/// !show
const osCluster = new dsf.consumption.OpenSearchCluster(this, 'MyOpenSearchCluster', {
domainName: "mycluster",
samlEntityId: '<IdpIdentityId>',
samlMetadataContent: '<IdpMetadataXml>',
samlMasterBackendRole: '<IAMIdentityCenterAdminGroupId>',
deployInVpc: false,
dataNodeInstanceType: 't3.small.search',
dataNodeInstanceCount: 1,
masterNodeInstanceCount: 0,
removalPolicy: cdk.RemovalPolicy.DESTROY
});
//Add another admin
osCluster.addRoleMapping('AnotherAdmin', 'all_access', 'sometestId');
const indexTemplateCr = osCluster.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}`;
// add dependency on index template creation
const bulkCr = osCluster.callOpenSearchApi('AddBulk', '_bulk', bulk + '\n\n', 'POST');
bulkCr.node.addDependency(indexTemplateCr);
const add1Cr = osCluster.callOpenSearchApi('AddData1', 'movies-01/_doc/1111', { "title": "Rush", "year": 2013 }, 'PUT');
add1Cr.node.addDependency(indexTemplateCr);
const add2Cr = osCluster.callOpenSearchApi('AddData3', 'movies-01/_doc/2222', { "title": "Toy Story", "year": 2014 }, 'PUT');
add2Cr.node.addDependency(indexTemplateCr);
const add3Cr = osCluster.callOpenSearchApi('AddData4', 'movies-01/_doc', { "title": "The Little Mermaid", "year": 2015 }, 'POST');
add3Cr.node.addDependency(indexTemplateCr);
/// !hide
}
}
const app = new cdk.App();
new ExampleOpenSearchApiStack(app, 'ExampleOpenSearchApiStack', { env: { region: 'us-east-1' } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNlYXJjaC1hcGkubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN1bXB0aW9uL2V4YW1wbGVzL29wZW5zZWFyY2gtYXBpLmxpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFtQztBQUVuQyxtQ0FBbUM7QUFHbkMsTUFBTSx5QkFBMEIsU0FBUSxHQUFHLENBQUMsS0FBSztJQUUvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFHLEtBQW9CO1FBRTdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNEQUFzRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLFNBQVM7UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDO1lBQ2xGLFVBQVUsRUFBQyxXQUFXO1lBQ3RCLFlBQVksRUFBQyxpQkFBaUI7WUFDOUIsbUJBQW1CLEVBQUMsa0JBQWtCO1lBQ3RDLHFCQUFxQixFQUFDLGlDQUFpQztZQUN2RCxXQUFXLEVBQUMsS0FBSztZQUNqQixvQkFBb0IsRUFBQyxpQkFBaUI7WUFDdEMscUJBQXFCLEVBQUMsQ0FBQztZQUN2Qix1QkFBdUIsRUFBQyxDQUFDO1lBQ3pCLGFBQWEsRUFBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87U0FDeEMsQ0FBQyxDQUFDO1FBRUgsbUJBQW1CO1FBQ25CLFNBQVMsQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxZQUFZLENBQUMsQ0FBQztRQUVwRSxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUMsd0JBQXdCLEVBQ2xHO1lBQ0UsZ0JBQWdCLEVBQUU7Z0JBQ2hCLFVBQVU7YUFDWDtZQUNELFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQixFQUFFLENBQUM7d0JBQ3JCLG9CQUFvQixFQUFFLENBQUM7cUJBQ3hCO2lCQUNGO2dCQUNELFVBQVUsRUFBRTtvQkFDVixZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFOzRCQUNQLE1BQU0sRUFBRSxNQUFNO3lCQUNmO3dCQUNELE1BQU0sRUFBRTs0QkFDTixNQUFNLEVBQUUsU0FBUzt5QkFDbEI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFDLHdDQUF3QyxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFDLEdBQUcsUUFBUTs7TUFFcEIsUUFBUTswQ0FDNEIsQ0FBQztRQUV2Qyw0Q0FBNEM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsSUFBSSxHQUFDLE1BQU0sRUFBQyxNQUFNLENBQUMsQ0FBQztRQUNqRixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUzQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLHFCQUFxQixFQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckgsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBQyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFILE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsRUFBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9ILE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNDLFNBQVM7SUFFWCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLHlCQUF5QixDQUFDLEdBQUcsRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBkc2YgZnJvbSAnLi4vLi4vaW5kZXgnO1xuXG5cbmNsYXNzIEV4YW1wbGVPcGVuU2VhcmNoQXBpU3RhY2sgZXh0ZW5kcyBjZGsuU3RhY2sge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcgLCBwcm9wczpjZGsuU3RhY2tQcm9wcykge1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5ub2RlLnNldENvbnRleHQoJ0BkYXRhLXNvbHV0aW9ucy1mcmFtZXdvcmstb24tYXdzL3JlbW92ZURhdGFPbkRlc3Ryb3knLCB0cnVlKTtcbiAgICAvLy8gIXNob3dcbiAgICBjb25zdCBvc0NsdXN0ZXIgPSBuZXcgZHNmLmNvbnN1bXB0aW9uLk9wZW5TZWFyY2hDbHVzdGVyKHRoaXMsICdNeU9wZW5TZWFyY2hDbHVzdGVyJyx7XG4gICAgICBkb21haW5OYW1lOlwibXljbHVzdGVyXCIsXG4gICAgICBzYW1sRW50aXR5SWQ6JzxJZHBJZGVudGl0eUlkPicsXG4gICAgICBzYW1sTWV0YWRhdGFDb250ZW50Oic8SWRwTWV0YWRhdGFYbWw+JyxcbiAgICAgIHNhbWxNYXN0ZXJCYWNrZW5kUm9sZTonPElBTUlkZW50aXR5Q2VudGVyQWRtaW5Hcm91cElkPicsXG4gICAgICBkZXBsb3lJblZwYzpmYWxzZSxcbiAgICAgIGRhdGFOb2RlSW5zdGFuY2VUeXBlOid0My5zbWFsbC5zZWFyY2gnLFxuICAgICAgZGF0YU5vZGVJbnN0YW5jZUNvdW50OjEsXG4gICAgICBtYXN0ZXJOb2RlSW5zdGFuY2VDb3VudDowLFxuICAgICAgcmVtb3ZhbFBvbGljeTpjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAgfSk7XG5cbiAgICAvL0FkZCBhbm90aGVyIGFkbWluXG4gICAgb3NDbHVzdGVyLmFkZFJvbGVNYXBwaW5nKCdBbm90aGVyQWRtaW4nLCAnYWxsX2FjY2VzcycsJ3NvbWV0ZXN0SWQnKTtcblxuICAgIGNvbnN0IGluZGV4VGVtcGxhdGVDciA9IG9zQ2x1c3Rlci5jYWxsT3BlblNlYXJjaEFwaSgnQ3JlYXRlSW5kZXhUZW1wbGF0ZScsJ19pbmRleF90ZW1wbGF0ZS9tb3ZpZXMnLFxuICAgIHtcbiAgICAgIFwiaW5kZXhfcGF0dGVybnNcIjogW1xuICAgICAgICBcIm1vdmllcy0qXCJcbiAgICAgIF0sXG4gICAgICBcInRlbXBsYXRlXCI6IHtcbiAgICAgICAgXCJzZXR0aW5nc1wiOiB7XG4gICAgICAgICAgXCJpbmRleFwiOiB7XG4gICAgICAgICAgICBcIm51bWJlcl9vZl9zaGFyZHNcIjogMSxcbiAgICAgICAgICAgIFwibnVtYmVyX29mX3JlcGxpY2FzXCI6IDBcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibWFwcGluZ3NcIjoge1xuICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGV4dFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ5ZWFyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgbWV0YWRhdGE9J3sgXCJpbmRleFwiIDogeyBcIl9pbmRleFwiIDogXCJtb3ZpZXMtMDJcIn19JztcbiAgICBjb25zdCBidWxrPWAke21ldGFkYXRhfVxuICAgIHtcInRpdGxlXCI6IFwiQmFyYmllXCIsIFwieWVhclwiOiAyMDIzfVxuICAgICR7bWV0YWRhdGF9XG4gICAge1widGl0bGVcIjogXCJPcGVuaGVpbWVyXCIsIFwieWVhclwiOiAyMDIzfWA7XG4gICAgXG4gICAgLy8gYWRkIGRlcGVuZGVuY3kgb24gaW5kZXggdGVtcGxhdGUgY3JlYXRpb25cbiAgICBjb25zdCBidWxrQ3IgPSBvc0NsdXN0ZXIuY2FsbE9wZW5TZWFyY2hBcGkoJ0FkZEJ1bGsnLCdfYnVsaycsYnVsaysnXFxuXFxuJywnUE9TVCcpO1xuICAgIGJ1bGtDci5ub2RlLmFkZERlcGVuZGVuY3koaW5kZXhUZW1wbGF0ZUNyKTtcblxuICAgIGNvbnN0IGFkZDFDciA9IG9zQ2x1c3Rlci5jYWxsT3BlblNlYXJjaEFwaSgnQWRkRGF0YTEnLCAnbW92aWVzLTAxL19kb2MvMTExMScse1widGl0bGVcIjogXCJSdXNoXCIsIFwieWVhclwiOiAyMDEzfSwgJ1BVVCcpO1xuICAgIGFkZDFDci5ub2RlLmFkZERlcGVuZGVuY3koaW5kZXhUZW1wbGF0ZUNyKTtcbiAgICBjb25zdCBhZGQyQ3IgPSBvc0NsdXN0ZXIuY2FsbE9wZW5TZWFyY2hBcGkoJ0FkZERhdGEzJywgJ21vdmllcy0wMS9fZG9jLzIyMjInLHtcInRpdGxlXCI6IFwiVG95IFN0b3J5XCIsIFwieWVhclwiOiAyMDE0fSwgJ1BVVCcpO1xuICAgIGFkZDJDci5ub2RlLmFkZERlcGVuZGVuY3koaW5kZXhUZW1wbGF0ZUNyKTtcbiAgICBjb25zdCBhZGQzQ3IgPSBvc0NsdXN0ZXIuY2FsbE9wZW5TZWFyY2hBcGkoJ0FkZERhdGE0JywgJ21vdmllcy0wMS9fZG9jJyx7XCJ0aXRsZVwiOiBcIlRoZSBMaXR0bGUgTWVybWFpZFwiLCBcInllYXJcIjogMjAxNX0sICdQT1NUJyk7XG4gICAgYWRkM0NyLm5vZGUuYWRkRGVwZW5kZW5jeShpbmRleFRlbXBsYXRlQ3IpO1xuICAgIC8vLyAhaGlkZVxuXG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbm5ldyBFeGFtcGxlT3BlblNlYXJjaEFwaVN0YWNrKGFwcCwgJ0V4YW1wbGVPcGVuU2VhcmNoQXBpU3RhY2snLCB7IGVudjoge3JlZ2lvbjondXMtZWFzdC0xJ30gfSk7Il19