Skip to content

Instantly share code, notes, and snippets.

@inoh
Created December 25, 2020 05:17
Show Gist options
  • Save inoh/1d03209da75243af7492ac439832b673 to your computer and use it in GitHub Desktop.
Save inoh/1d03209da75243af7492ac439832b673 to your computer and use it in GitHub Desktop.
Resources:
Diaries3B600A46:
Type: AWS::DynamoDB::Table
Properties:
KeySchema:
- AttributeName: id
KeyType: HASH
AttributeDefinitions:
- AttributeName: id
AttributeType: S
ProvisionedThroughput:
ReadCapacityUnits: 5
WriteCapacityUnits: 5
UpdateReplacePolicy: Retain
DeletionPolicy: Retain
Metadata:
aws:cdk:path: automatic-translation-diary/Diaries/Resource
HttpApiF5A9A8A7:
Type: AWS::ApiGatewayV2::Api
Properties:
CorsConfiguration:
AllowHeaders:
- Content-Type
AllowMethods:
- GET
- POST
- OPTIONS
AllowOrigins:
- "*"
Name: AutomaticTranslationDiary
ProtocolType: HTTP
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/Resource
HttpApiDefaultStage3EEB07D6:
Type: AWS::ApiGatewayV2::Stage
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
StageName: $default
AutoDeploy: true
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/DefaultStage/Resource
HttpApiPOSTdiarieslangPOSTdiarieslangIntegrationA1A5913B:
Type: AWS::ApiGatewayV2::Integration
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
IntegrationType: AWS_PROXY
IntegrationUri:
Fn::GetAtt:
- diaryhandlersave0ED605E5
- Arn
PayloadFormatVersion: "2.0"
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/POST--diaries--{lang}/POST--diaries--{lang}-Integration/Resource
HttpApiPOSTdiarieslangDC63781A:
Type: AWS::ApiGatewayV2::Route
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
RouteKey: POST /diaries/{lang}
Target:
Fn::Join:
- ""
- - integrations/
- Ref: HttpApiPOSTdiarieslangPOSTdiarieslangIntegrationA1A5913B
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/POST--diaries--{lang}/Resource
HttpApiGETdiariesGETdiariesIntegrationCC8B76D7:
Type: AWS::ApiGatewayV2::Integration
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
IntegrationType: AWS_PROXY
IntegrationUri:
Fn::GetAtt:
- diaryhandlerdiaries221AFC2C
- Arn
PayloadFormatVersion: "2.0"
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/GET--diaries/GET--diaries-Integration/Resource
HttpApiGETdiaries07F01514:
Type: AWS::ApiGatewayV2::Route
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
RouteKey: GET /diaries
Target:
Fn::Join:
- ""
- - integrations/
- Ref: HttpApiGETdiariesGETdiariesIntegrationCC8B76D7
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/GET--diaries/Resource
HttpApiGETdiariesdiaryIdspeechlangGETdiariesdiaryIdspeechlangIntegration134C2CB5:
Type: AWS::ApiGatewayV2::Integration
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
IntegrationType: AWS_PROXY
IntegrationUri:
Fn::GetAtt:
- diaryhandlerspeech07153E8E
- Arn
PayloadFormatVersion: "2.0"
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/GET--diaries--{diaryId}--speech--{lang}/GET--diaries--{diaryId}--speech--{lang}-Integration/Resource
HttpApiGETdiariesdiaryIdspeechlangA9D4EE90:
Type: AWS::ApiGatewayV2::Route
Properties:
ApiId:
Ref: HttpApiF5A9A8A7
RouteKey: GET /diaries/{diaryId}/speech/{lang}
Target:
Fn::Join:
- ""
- - integrations/
- Ref: HttpApiGETdiariesdiaryIdspeechlangGETdiariesdiaryIdspeechlangIntegration134C2CB5
Metadata:
aws:cdk:path: automatic-translation-diary/HttpApi/GET--diaries--{diaryId}--speech--{lang}/Resource
diaryhandlersaveServiceRoleF006DD95:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service: lambda.amazonaws.com
Version: "2012-10-17"
ManagedPolicyArns:
- Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-save/ServiceRole/Resource
diaryhandlersaveServiceRoleDefaultPolicy8A38E364:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
Statement:
- Action:
- dynamodb:BatchGetItem
- dynamodb:GetRecords
- dynamodb:GetShardIterator
- dynamodb:Query
- dynamodb:GetItem
- dynamodb:Scan
- dynamodb:BatchWriteItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Effect: Allow
Resource:
- Fn::GetAtt:
- Diaries3B600A46
- Arn
- Ref: AWS::NoValue
- Action:
- translate:TranslateText
- polly:SynthesizeSpeech
Effect: Allow
Resource: "*"
Version: "2012-10-17"
PolicyName: diaryhandlersaveServiceRoleDefaultPolicy8A38E364
Roles:
- Ref: diaryhandlersaveServiceRoleF006DD95
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-save/ServiceRole/DefaultPolicy/Resource
diaryhandlersave0ED605E5:
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket:
Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3Bucket766D1809
S3Key:
Fn::Join:
- ""
- - Fn::Select:
- 0
- Fn::Split:
- "||"
- Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3
- Fn::Select:
- 1
- Fn::Split:
- "||"
- Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3
Handler: diary_handler.save
Role:
Fn::GetAtt:
- diaryhandlersaveServiceRoleF006DD95
- Arn
Runtime: python3.8
Environment:
Variables:
DYNAMODB_NAME_DIARIES:
Ref: Diaries3B600A46
FunctionName: diary_handler-save
DependsOn:
- diaryhandlersaveServiceRoleDefaultPolicy8A38E364
- diaryhandlersaveServiceRoleF006DD95
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-save/Resource
aws:asset:path: asset.be8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fc
aws:asset:property: Code
diaryhandlersaveautomatictranslationdiaryHttpApiPOSTdiarieslang23D30534Permission87E94D56:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunction
FunctionName:
Fn::GetAtt:
- diaryhandlersave0ED605E5
- Arn
Principal: apigateway.amazonaws.com
SourceArn:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- ":execute-api:"
- Ref: AWS::Region
- ":"
- Ref: AWS::AccountId
- ":"
- Ref: HttpApiF5A9A8A7
- /*/*/diaries/{lang}
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-save/automatictranslationdiaryHttpApiPOSTdiarieslang23D30534-Permission
diaryhandlerdiariesServiceRole6A239C59:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service: lambda.amazonaws.com
Version: "2012-10-17"
ManagedPolicyArns:
- Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-diaries/ServiceRole/Resource
diaryhandlerdiariesServiceRoleDefaultPolicyF0C21C34:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
Statement:
- Action:
- dynamodb:BatchGetItem
- dynamodb:GetRecords
- dynamodb:GetShardIterator
- dynamodb:Query
- dynamodb:GetItem
- dynamodb:Scan
- dynamodb:BatchWriteItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Effect: Allow
Resource:
- Fn::GetAtt:
- Diaries3B600A46
- Arn
- Ref: AWS::NoValue
- Action:
- translate:TranslateText
- polly:SynthesizeSpeech
Effect: Allow
Resource: "*"
Version: "2012-10-17"
PolicyName: diaryhandlerdiariesServiceRoleDefaultPolicyF0C21C34
Roles:
- Ref: diaryhandlerdiariesServiceRole6A239C59
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-diaries/ServiceRole/DefaultPolicy/Resource
diaryhandlerdiaries221AFC2C:
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket:
Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3Bucket766D1809
S3Key:
Fn::Join:
- ""
- - Fn::Select:
- 0
- Fn::Split:
- "||"
- Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3
- Fn::Select:
- 1
- Fn::Split:
- "||"
- Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3
Handler: diary_handler.diaries
Role:
Fn::GetAtt:
- diaryhandlerdiariesServiceRole6A239C59
- Arn
Runtime: python3.8
Environment:
Variables:
DYNAMODB_NAME_DIARIES:
Ref: Diaries3B600A46
FunctionName: diary_handler-diaries
DependsOn:
- diaryhandlerdiariesServiceRoleDefaultPolicyF0C21C34
- diaryhandlerdiariesServiceRole6A239C59
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-diaries/Resource
aws:asset:path: asset.be8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fc
aws:asset:property: Code
diaryhandlerdiariesautomatictranslationdiaryHttpApiGETdiariesC1A51623PermissionE32E9568:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunction
FunctionName:
Fn::GetAtt:
- diaryhandlerdiaries221AFC2C
- Arn
Principal: apigateway.amazonaws.com
SourceArn:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- ":execute-api:"
- Ref: AWS::Region
- ":"
- Ref: AWS::AccountId
- ":"
- Ref: HttpApiF5A9A8A7
- /*/*/diaries
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-diaries/automatictranslationdiaryHttpApiGETdiariesC1A51623-Permission
diaryhandlerspeechServiceRole7C9491A9:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service: lambda.amazonaws.com
Version: "2012-10-17"
ManagedPolicyArns:
- Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- :iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-speech/ServiceRole/Resource
diaryhandlerspeechServiceRoleDefaultPolicy6E942FDF:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
Statement:
- Action:
- dynamodb:BatchGetItem
- dynamodb:GetRecords
- dynamodb:GetShardIterator
- dynamodb:Query
- dynamodb:GetItem
- dynamodb:Scan
- dynamodb:BatchWriteItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Effect: Allow
Resource:
- Fn::GetAtt:
- Diaries3B600A46
- Arn
- Ref: AWS::NoValue
- Action:
- translate:TranslateText
- polly:SynthesizeSpeech
Effect: Allow
Resource: "*"
Version: "2012-10-17"
PolicyName: diaryhandlerspeechServiceRoleDefaultPolicy6E942FDF
Roles:
- Ref: diaryhandlerspeechServiceRole7C9491A9
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-speech/ServiceRole/DefaultPolicy/Resource
diaryhandlerspeech07153E8E:
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket:
Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3Bucket766D1809
S3Key:
Fn::Join:
- ""
- - Fn::Select:
- 0
- Fn::Split:
- "||"
- Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3
- Fn::Select:
- 1
- Fn::Split:
- "||"
- Ref: AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3
Handler: diary_handler.speech
Role:
Fn::GetAtt:
- diaryhandlerspeechServiceRole7C9491A9
- Arn
Runtime: python3.8
Environment:
Variables:
DYNAMODB_NAME_DIARIES:
Ref: Diaries3B600A46
FunctionName: diary_handler-speech
DependsOn:
- diaryhandlerspeechServiceRoleDefaultPolicy6E942FDF
- diaryhandlerspeechServiceRole7C9491A9
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-speech/Resource
aws:asset:path: asset.be8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fc
aws:asset:property: Code
diaryhandlerspeechautomatictranslationdiaryHttpApiGETdiariesdiaryIdspeechlang24CE423APermission79BA7FBE:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunction
FunctionName:
Fn::GetAtt:
- diaryhandlerspeech07153E8E
- Arn
Principal: apigateway.amazonaws.com
SourceArn:
Fn::Join:
- ""
- - "arn:"
- Ref: AWS::Partition
- ":execute-api:"
- Ref: AWS::Region
- ":"
- Ref: AWS::AccountId
- ":"
- Ref: HttpApiF5A9A8A7
- /*/*/diaries/{diaryId}/speech/{lang}
Metadata:
aws:cdk:path: automatic-translation-diary/diary_handler-speech/automatictranslationdiaryHttpApiGETdiariesdiaryIdspeechlang24CE423A-Permission
CDKMetadata:
Type: AWS::CDK::Metadata
Properties:
Modules: aws-cdk=1.78.0,@aws-cdk/assets=1.49.1,@aws-cdk/aws-apigateway=1.49.1,@aws-cdk/aws-apigatewayv2=1.49.1,@aws-cdk/aws-applicationautoscaling=1.49.1,@aws-cdk/aws-autoscaling-common=1.49.1,@aws-cdk/aws-certificatemanager=1.49.1,@aws-cdk/aws-cloudformation=1.49.1,@aws-cdk/aws-cloudwatch=1.49.1,@aws-cdk/aws-dynamodb=1.49.1,@aws-cdk/aws-ec2=1.49.1,@aws-cdk/aws-elasticloadbalancingv2=1.49.1,@aws-cdk/aws-events=1.49.1,@aws-cdk/aws-iam=1.49.1,@aws-cdk/aws-kinesis=1.49.1,@aws-cdk/aws-kms=1.49.1,@aws-cdk/aws-lambda=1.49.1,@aws-cdk/aws-lambda-event-sources=1.49.1,@aws-cdk/aws-logs=1.49.1,@aws-cdk/aws-route53=1.49.1,@aws-cdk/aws-s3=1.49.1,@aws-cdk/aws-s3-assets=1.49.1,@aws-cdk/aws-s3-notifications=1.49.1,@aws-cdk/aws-sns=1.49.1,@aws-cdk/aws-sns-subscriptions=1.49.1,@aws-cdk/aws-sqs=1.49.1,@aws-cdk/aws-ssm=1.49.1,@aws-cdk/cloud-assembly-schema=1.49.1,@aws-cdk/core=1.49.1,@aws-cdk/custom-resources=1.49.1,@aws-cdk/cx-api=1.49.1,@aws-cdk/region-info=1.49.1,jsii-runtime=Python/3.7.5
Condition: CDKMetadataAvailable
Parameters:
AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3Bucket766D1809:
Type: String
Description: S3 bucket for asset "be8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fc"
AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcS3VersionKeyA6913BB3:
Type: String
Description: S3 key for asset version "be8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fc"
AssetParametersbe8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fcArtifactHash9798EB5C:
Type: String
Description: Artifact hash for asset "be8aa0c89666e07aa3951d32e83611347714a5b61d87322a3785a3681ca879fc"
Conditions:
CDKMetadataAvailable:
Fn::Or:
- Fn::Or:
- Fn::Equals:
- Ref: AWS::Region
- ap-east-1
- Fn::Equals:
- Ref: AWS::Region
- ap-northeast-1
- Fn::Equals:
- Ref: AWS::Region
- ap-northeast-2
- Fn::Equals:
- Ref: AWS::Region
- ap-south-1
- Fn::Equals:
- Ref: AWS::Region
- ap-southeast-1
- Fn::Equals:
- Ref: AWS::Region
- ap-southeast-2
- Fn::Equals:
- Ref: AWS::Region
- ca-central-1
- Fn::Equals:
- Ref: AWS::Region
- cn-north-1
- Fn::Equals:
- Ref: AWS::Region
- cn-northwest-1
- Fn::Equals:
- Ref: AWS::Region
- eu-central-1
- Fn::Or:
- Fn::Equals:
- Ref: AWS::Region
- eu-north-1
- Fn::Equals:
- Ref: AWS::Region
- eu-west-1
- Fn::Equals:
- Ref: AWS::Region
- eu-west-2
- Fn::Equals:
- Ref: AWS::Region
- eu-west-3
- Fn::Equals:
- Ref: AWS::Region
- me-south-1
- Fn::Equals:
- Ref: AWS::Region
- sa-east-1
- Fn::Equals:
- Ref: AWS::Region
- us-east-1
- Fn::Equals:
- Ref: AWS::Region
- us-east-2
- Fn::Equals:
- Ref: AWS::Region
- us-west-1
- Fn::Equals:
- Ref: AWS::Region
- us-west-2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment