AWSTemplateFormatVersion: '2010-09-09' Description: 'Nested CloudFormation template to create the whole activity detection solution.' Parameters: #MediaLiveCFN InputBucket: Type: String Description: "S3 Bucket where the input code and data are located. (Note: AWS Region name and Account ID are automatically added as suffices of the bucket name)" Default: 'activity-detection-data-bucket' DestinationBucket: Type: String Description: "S3 Bucket where the livestream video segments are stored. (Note: AWS Region name and Account ID are automatically added as suffices of the bucket name)" Default: 'activity-detection-livestream-bucket' ChannelName: Type: String Description: MediaLive Channel Name Default: 'activity-detection-channel' InputName: Type: String Description: MediaLive Channel Input Name Default: 'activity-detection-input' VideoFileName: Type: String Description: "Sample Video Filename." Default: 'PeopleSkiing.mp4' #LambdaCFN LambdaName: Type: String Description: Lambda function name Default: 'activity-detection-lambda' ModelMaxFrames: Type: Number Description: Maximum number of frames used for activity detection model Default: 32 #ModelCFN ModelEndpointName: Description: Model endpoint name Type: String Default: "activity-detection-endpoint" InstanceType: Description: Instance type Type: String Default: "ml.g4dn.2xlarge" AllowedValues: - ml.g4dn.xlarge - ml.g4dn.2xlarge - ml.g4dn.4xlarge - ml.g4dn.8xlarge - ml.g4dn.12xlarge - ml.g4dn.16xlarge MinInstanceCount: Description: Number of Instances created Type: String Default: 1 MaxInstanceCount: Description: Maximum number of instances created during autoscaling Type: String Default: 3 ##DynamoDBCFN DDBTableName: Description: DynamoDB table name Type: String Default: "activity-detection-table" Resources: MediaLiveCFN: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub "https://${InputBucket}-${AWS::Region}-${AWS::AccountId}.s3-${AWS::Region}.amazonaws.com/artifacts/amazon-sagemaker-activity-detection/deployment/cloud_formation/cfn_medialive.yaml" Parameters: ChannelName: !Ref ChannelName InputName: !Ref InputName InputVideoBucket: !Sub "${InputBucket}-${AWS::Region}-${AWS::AccountId}" DestinationBucket: !Sub "${DestinationBucket}-${AWS::Region}-${AWS::AccountId}" VideoFileName: !Ref VideoFileName LambdaCFN: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub "https://${InputBucket}-${AWS::Region}-${AWS::AccountId}.s3-${AWS::Region}.amazonaws.com/artifacts/amazon-sagemaker-activity-detection/deployment/cloud_formation/cfn_lambda.yaml" Parameters: LambdaName: !Ref LambdaName LambdaCodeBucket: !Sub "${InputBucket}-${AWS::Region}-${AWS::AccountId}" TriggerBucketName: !Sub "${DestinationBucket}-${AWS::Region}-${AWS::AccountId}" DetectionTableName: !Ref DDBTableName EndpointName: !Ref ModelEndpointName ModelMaxFrames: !Ref ModelMaxFrames ModelCFN: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub "https://${InputBucket}-${AWS::Region}-${AWS::AccountId}.s3-${AWS::Region}.amazonaws.com/artifacts/amazon-sagemaker-activity-detection/deployment/cloud_formation/cfn_model.yaml" Parameters: ModelEndpointName: !Ref ModelEndpointName ModelDataBucket: !Sub "${InputBucket}-${AWS::Region}-${AWS::AccountId}" InstanceType: !Ref InstanceType MinInstanceCount: !Ref MinInstanceCount MaxInstanceCount: !Ref MaxInstanceCount DynamoDBCFN: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub "https://${InputBucket}-${AWS::Region}-${AWS::AccountId}.s3-${AWS::Region}.amazonaws.com/artifacts/amazon-sagemaker-activity-detection/deployment/cloud_formation/cfn_dynamodb.yaml" Parameters: DDBTableName: !Ref DDBTableName