-
Notifications
You must be signed in to change notification settings - Fork 162
/
Copy pathworkspace.dsl
134 lines (98 loc) · 3.68 KB
/
workspace.dsl
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
workspace {
model {
user = person "User" {
tags "User"
}
softwareSystem = softwareSystem "Video Transcription Service" {
s3bucket = container "Amazon S3 bucket" {
tags "SimpleStorageServiceBucket"
user -> this "Uploads"
}
objectcreated = container "ObjectCreated event handler" "" "AWS Lambda function" {
tags "LambdaLambdaFunction"
component "Boto3" "AWS SDK for Python" {
technology "Python package"
url https://aws.amazon.com/sdk-for-python/
}
s3bucket -> this "ObjectCreated event"
}
stepfunction = container "transcribe workflow" "" "Step Functions workflow" {
tags "StepFunctions"
objectcreated -> this
}
extractaudio = container "extract audio" "" "AWS Lambda function" {
tags "LambdaLambdaFunction"
component "Boto3" "AWS SDK for Python" {
technology "Python package"
url https://aws.amazon.com/sdk-for-python/
}
stepfunction -> this "step 1"
}
mediaconvert = container "AWS Elemental MediaConvert" {
tags "ElementalMediaConvert"
extractaudio -> this "create job"
this -> s3bucket "save audio"
}
transcribeaudio = container "transcribe audio" "" "AWS Lambda function" {
tags "LambdaLambdaFunction"
component "Boto3" "AWS SDK for Python" {
technology "Python package"
url https://aws.amazon.com/sdk-for-python/
}
stepfunction -> this "step 2"
}
transcribe = container "Amazon Transcribe" {
tags "Transcribe"
transcribeaudio -> this "start transcription job"
this -> s3bucket "save transcription"
}
}
live = deploymentEnvironment "Live" {
deploymentNode "Amazon Web Services" {
tags "AWSCloud"
deploymentNode "us-east-1" {
tags "Region"
deploymentNode "Amazon S3" {
tags "SimpleStorageService"
containerInstance s3bucket
}
deploymentNode "AWS Step Functions" {
tags "StepFunctions"
containerInstance extractaudio
containerInstance transcribeaudio
}
infrastructureNode "AWS Elemental MediaConvert" {
tags "ElementalMediaConvert"
}
infrastructureNode "Amazon Transcribe" {
tags "Transcribe"
}
}
}
}
}
views {
styles {
element "Person" {
shape Person
}
}
systemContext softwareSystem "SystemContext" {
include *
autoLayout
}
container softwareSystem {
include *
autolayout lr
}
component objectcreated {
include *
autoLayout lr
}
deployment softwareSystem live {
include *
autoLayout lr
}
theme https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v18.0/dist/aws-icons-structurizr-theme.json
}
}