-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstacktape.ts
More file actions
60 lines (58 loc) · 1.46 KB
/
stacktape.ts
File metadata and controls
60 lines (58 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import {
HttpApiGateway,
HttpApiIntegration,
LambdaFunction,
MongoDbAtlasCluster,
StacktapeLambdaBuildpackPackaging,
defineConfig
} from 'stacktape';
export default defineConfig(() => {
const mainApiGateway = new HttpApiGateway({
cors: {
enabled: true
}
});
const mongoDbCluster = new MongoDbAtlasCluster({
clusterTier: 'M2'
});
const savePost = new LambdaFunction({
packaging: new StacktapeLambdaBuildpackPackaging({
entryfilePath: './src/lambdas/save-post.py'
}),
memory: 512,
connectTo: [mongoDbCluster],
environment: { DATABASE_NAME: 'posts' },
events: [
new HttpApiIntegration({
httpApiGatewayName: 'mainApiGateway',
path: '/posts',
method: 'POST'
})
]
});
const getPosts = new LambdaFunction({
packaging: new StacktapeLambdaBuildpackPackaging({
entryfilePath: './src/lambdas/get-posts.py'
}),
memory: 512,
connectTo: [mongoDbCluster],
environment: { DATABASE_NAME: 'posts' },
events: [
new HttpApiIntegration({
httpApiGatewayName: 'mainApiGateway',
path: '/posts',
method: 'GET'
})
]
});
return {
resources: { mainApiGateway, mongoDbCluster, savePost, getPosts },
providerConfig: {
mongoDbAtlas: {
publicKey: '<<your-mongodb-public-key>>',
privateKey: '<<your-mongodb-private-key>>',
organizationId: '<<your-mongodb-organization-id>>'
}
}
};
});