remotion_lambda 4.0.514 → 4.0.515
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/remotion_lambda/cancel_render_on_lambda_spec.rb +26 -0
- data/lib/remotion_lambda/render_media_on_lambda_payload.rb +2 -0
- data/lib/remotion_lambda/render_media_on_lambda_payload_spec.rb +4 -0
- data/lib/remotion_lambda/sdk.rb +28 -1
- data/lib/remotion_lambda/version.rb +1 -1
- metadata +30 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6a5a86dcbdddef690c8693744bb36805fe170c46658f24d74d91cdcdd50c888
|
|
4
|
+
data.tar.gz: 1d747a9c80d9833175f919e99dd3c608471fa8aa16d9ed71ef99e596d4bf9ba8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e7b518d39f04b05cb46dfd6ae5eba3e5c5245ec6c9597227ee4f03f9ed6bef568f8613ee97ce1242a3ffe502e1d47c35f04f67ebf2814892962c4d49ec02ae9d
|
|
7
|
+
data.tar.gz: 953a26eb07db694f9b8383bc8c1c04b0471bba058b979d22b52e3bfb67377ed6a98d6f3024155ad13a5c2db2d7e7ef5fb54422f6cfab5f66f1fb3f5e411204eb
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require_relative 'sdk'
|
|
2
|
+
require 'aws-sdk-s3'
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
s3_client = Aws::S3::Client.new(stub_responses: true)
|
|
6
|
+
s3_client.stub_responses(:get_object, body: JSON.generate(cancellationEnabled: true))
|
|
7
|
+
client = RemotionLambda::Client.new(s3_client: s3_client)
|
|
8
|
+
|
|
9
|
+
client.cancel_render_on_lambda('remotionlambda-test', 'render-id')
|
|
10
|
+
|
|
11
|
+
requests = s3_client.api_requests
|
|
12
|
+
raise 'Expected progress to be read' unless requests[0][:params][:key] == 'renders/render-id/progress.json'
|
|
13
|
+
raise 'Expected cancellation signal to be written' unless requests[1][:params][:key] == 'renders/render-id/cancel.json'
|
|
14
|
+
cancellation_body = JSON.parse(requests[1][:params][:body])
|
|
15
|
+
raise 'Expected cancelledAt timestamp' unless cancellation_body['cancelledAt'] > 0
|
|
16
|
+
|
|
17
|
+
disabled_s3_client = Aws::S3::Client.new(stub_responses: true)
|
|
18
|
+
disabled_s3_client.stub_responses(:get_object, body: '{}')
|
|
19
|
+
disabled_client = RemotionLambda::Client.new(s3_client: disabled_s3_client)
|
|
20
|
+
|
|
21
|
+
begin
|
|
22
|
+
disabled_client.cancel_render_on_lambda('remotionlambda-test', 'render-id')
|
|
23
|
+
raise 'Expected cancellation to fail without opt-in'
|
|
24
|
+
rescue => error
|
|
25
|
+
raise error unless error.message.include?('enableCancellation: true')
|
|
26
|
+
end
|
|
@@ -19,6 +19,7 @@ def get_render_media_on_lambda_payload(
|
|
|
19
19
|
crf: nil,
|
|
20
20
|
delete_after: nil,
|
|
21
21
|
download_behavior: nil,
|
|
22
|
+
enable_cancellation: false,
|
|
22
23
|
encoding_buffer_size: nil,
|
|
23
24
|
encoding_max_rate: nil,
|
|
24
25
|
env_variables: {},
|
|
@@ -79,6 +80,7 @@ payload = {
|
|
|
79
80
|
crf: crf,
|
|
80
81
|
deleteAfter: delete_after,
|
|
81
82
|
downloadBehavior: download_behavior,
|
|
83
|
+
enableCancellation: enable_cancellation,
|
|
82
84
|
encodingBufferSize: encoding_buffer_size,
|
|
83
85
|
encodingMaxRate: encoding_max_rate,
|
|
84
86
|
envVariables: env_variables,
|
|
@@ -30,6 +30,10 @@ payload = get_render_media_on_lambda_payload(
|
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
raise "Expected the current SDK to default overwrite to false" unless payload[:overwrite] == false
|
|
33
|
+
raise "Expected cancellation to default to false" unless payload[:enableCancellation] == false
|
|
34
|
+
|
|
35
|
+
cancellable_payload = get_render_media_on_lambda_payload(codec: "h264", enable_cancellation: true)
|
|
36
|
+
raise "Expected cancellation to be enabled" unless cancellable_payload[:enableCancellation] == true
|
|
33
37
|
|
|
34
38
|
# Print as JSON
|
|
35
39
|
puts JSON.generate(payload)
|
data/lib/remotion_lambda/sdk.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'aws-sdk-lambda'
|
|
2
|
+
require 'aws-sdk-s3'
|
|
2
3
|
require 'json'
|
|
3
4
|
require 'logger'
|
|
4
5
|
require_relative 'version'
|
|
@@ -9,11 +10,13 @@ module RemotionLambda
|
|
|
9
10
|
|
|
10
11
|
def initialize(
|
|
11
12
|
region: ENV.fetch('AWS_REGION', 'us-east-1'),
|
|
12
|
-
aws_profile: nil
|
|
13
|
+
aws_profile: nil,
|
|
14
|
+
s3_client: nil
|
|
13
15
|
)
|
|
14
16
|
@region = region
|
|
15
17
|
@aws_profile = aws_profile
|
|
16
18
|
@lambda_client = create_lambda_client
|
|
19
|
+
@s3_client = s3_client
|
|
17
20
|
end
|
|
18
21
|
|
|
19
22
|
def get_render_progress(function_name, payload)
|
|
@@ -34,6 +37,26 @@ module RemotionLambda
|
|
|
34
37
|
body
|
|
35
38
|
end
|
|
36
39
|
|
|
40
|
+
def cancel_render_on_lambda(bucket_name, render_id)
|
|
41
|
+
progress_response = s3_client.get_object(
|
|
42
|
+
bucket: bucket_name,
|
|
43
|
+
key: "renders/#{render_id}/progress.json"
|
|
44
|
+
)
|
|
45
|
+
progress = JSON.parse(progress_response.body.read)
|
|
46
|
+
|
|
47
|
+
unless progress['cancellationEnabled'] == true
|
|
48
|
+
raise "Cannot cancel render #{render_id}: The render was not started with enableCancellation: true."
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
s3_client.put_object(
|
|
52
|
+
bucket: bucket_name,
|
|
53
|
+
key: "renders/#{render_id}/cancel.json",
|
|
54
|
+
body: JSON.generate(cancelledAt: (Time.now.to_f * 1000).floor),
|
|
55
|
+
content_type: 'application/json'
|
|
56
|
+
)
|
|
57
|
+
nil
|
|
58
|
+
end
|
|
59
|
+
|
|
37
60
|
private
|
|
38
61
|
|
|
39
62
|
# Lambda methods
|
|
@@ -50,6 +73,10 @@ module RemotionLambda
|
|
|
50
73
|
Aws::Lambda::Client.new(region: @region, credentials: aws_credentials)
|
|
51
74
|
end
|
|
52
75
|
|
|
76
|
+
def s3_client
|
|
77
|
+
@s3_client ||= Aws::S3::Client.new(region: @region, credentials: aws_credentials)
|
|
78
|
+
end
|
|
79
|
+
|
|
53
80
|
def aws_credentials
|
|
54
81
|
if @aws_profile
|
|
55
82
|
Aws::SharedCredentials.new(profile_name: @aws_profile)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION = "4.0.
|
|
1
|
+
VERSION = "4.0.515"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: remotion_lambda
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.515
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonny Burger
|
|
@@ -23,6 +23,20 @@ dependencies:
|
|
|
23
23
|
- - ">"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: 1.0.0
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: aws-sdk-s3
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.0.0
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 1.0.0
|
|
26
40
|
- !ruby/object:Gem::Dependency
|
|
27
41
|
name: json
|
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -51,6 +65,20 @@ dependencies:
|
|
|
51
65
|
- - ">"
|
|
52
66
|
- !ruby/object:Gem::Version
|
|
53
67
|
version: 1.0.0
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: rexml
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 3.0.0
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 3.0.0
|
|
54
82
|
description: A Ruby SDK for Remotion Lambda
|
|
55
83
|
email: jonny@remotion.dev
|
|
56
84
|
executables: []
|
|
@@ -59,6 +87,7 @@ extra_rdoc_files: []
|
|
|
59
87
|
files:
|
|
60
88
|
- README.md
|
|
61
89
|
- lib/remotion_lambda.rb
|
|
90
|
+
- lib/remotion_lambda/cancel_render_on_lambda_spec.rb
|
|
62
91
|
- lib/remotion_lambda/render_media_on_lambda_payload.rb
|
|
63
92
|
- lib/remotion_lambda/render_media_on_lambda_payload_spec.rb
|
|
64
93
|
- lib/remotion_lambda/render_progress_payload.rb
|