-
Notifications
You must be signed in to change notification settings - Fork 162
/
Copy pathS3 Upload Workflow.puml
68 lines (56 loc) · 2.38 KB
/
S3 Upload Workflow.puml
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
@startuml Amazon S3 Upload Workflow
'Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
'SPDX-License-Identifier: MIT (For details, see https://github.com/awslabs/aws-icons-for-plantuml/blob/master/LICENSE)
title Amazon S3 video upload workflow
' Uncomment the line below for "dark mode" styling
'!$AWS_DARK = true
!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v18.0/dist
!include AWSPuml/AWSCommon.puml
!include AWSPuml/AWSExperimental.puml
!include AWSPuml/Groups/all.puml
!include AWSPuml/Compute/LambdaLambdaFunction.puml
!include AWSPuml/General/Documents.puml
!include AWSPuml/General/Multimedia.puml
!include AWSPuml/General/Tapestorage.puml
!include AWSPuml/General/User.puml
!include AWSPuml/MediaServices/ElementalMediaConvert.puml
!include AWSPuml/MachineLearning/Transcribe.puml
!include AWSPuml/Storage/SimpleStorageService.puml
$AWSGroupColoring(S3BucketGroup, $AWSColor(Storage))
!define S3BucketGroup(g_alias, g_label="Amazon S3 bucket") $AWSDefineGroup(g_alias, g_label, SimpleStorageService, S3BucketGroup)
' Groups are rectangles with a custom style using stereotype - need to hide
hide stereotype
skinparam linetype ortho
skinparam rectangle {
BorderColor transparent
}
rectangle "$UserIMG()\nUser" as user
AWSCloudGroup(cloud) {
RegionGroup(region, "Region (us-east-1)") {
S3BucketGroup(s3) {
rectangle "$MultimediaIMG()\nvideo\t" as video
rectangle "\t $TapestorageIMG()\n\taudio\t" as audio
rectangle "\t $DocumentsIMG()\n\t transcript\t" as transcript
user -r-> video: <$Callout_1>\l//upload//
video -r-> audio
audio -r-> transcript
}
rectangle "$LambdaLambdaFunctionIMG()\nObjectCreated\nevent handler" as e1
rectangle "$ElementalMediaConvertIMG()\nAWS Elemental\nMediaConvert" as mediaconvert
rectangle "$TranscribeIMG()\nAmazon Transcribe\n" as transcribe
video -d-> e1: <$Callout_2>
e1 -[hidden]r-> mediaconvert
mediaconvert -[hidden]r-> transcribe
mediaconvert -u-> audio: <$Callout_3>
transcribe -u-> transcript: <$Callout_4>
StepFunctionsWorkflowGroup(sfw) {
rectangle "$LambdaLambdaFunctionIMG()\nextract audio" as sfw1
rectangle "$LambdaLambdaFunctionIMG()\ntranscribe audio" as sfw2
e1 -r-> sfw1: //Start//\n//Execution//
sfw1 -r-> sfw2
sfw1 -u-> mediaconvert
sfw2 -u-> transcribe
}
}
}
@enduml