从 Go 触发渲染
EXPERIMENTAL
此功能是新的。请报告你遇到的任何问题。
要使用 Go 触发 Lambda 渲染,可以使用 Remotion Lambda Go 客户端。请注意以下事项:
🌐 To trigger a Lambda render using Go, you can use the Remotion Lambda Go client. Note the following:
- 你首先需要完成 Lambda 设置。
- 目前在 Go 中不支持发送大输入属性(>200KB)。
- 始终将 Go 客户端的版本与你部署的 Lambda 函数的版本匹配。否则,由于版本不匹配,调用将失败!
main.gopackage main import ( "fmt" "log" "os" "github.com/go-playground/validator/v10" "github.com/joho/godotenv" "github.com/remotion-dev/lambda_go_sdk" ) type ValidationError struct { Field string Message string } func msgForTag(fe validator.FieldError) string { switch fe.Tag() { case "required": return "This field is required" } return fe.Error() // default error } func main() { // Load the environment variables from the .env file err := godotenv.Load() if err != nil { log.Fatal(err) } // Specify the URL to your Webpack bundle serveUrl := os.Getenv("REMOTION_APP_SERVE_URL") // Specify the function you would like to call functionName := os.Getenv("REMOTION_APP_FUNCTION_NAME") // Specify the region you deployed to, for example "us-east-1" region := os.Getenv("REMOTION_APP_REGION") // Set parameters for render renderInputRequest := lambda_go_sdk.RemotionOptions{ ServeUrl: serveUrl, FunctionName: functionName, Region: region, // The data that composition will use InputProps: map[string]interface{}{ "data": "Let's play", }, Composition: "main", // The composition to use } // Execute the render process renderResponse, renderError := lambda_go_sdk.RenderMediaOnLambda(renderInputRequest) // Check if there are validation errors if renderError != nil { validationOut := make([]ValidationError, len(renderError.(validator.ValidationErrors))) for i, fieldError := range renderError.(validator.ValidationErrors) { validationOut[i] = ValidationError{fieldError.Field(), msgForTag(fieldError)} } for _, apiError := range validationOut { fmt.Printf("%s: %s\n", apiError.Field, apiError.Message) } return } fmt.Print(renderResponse.RenderId) /// Get bucket information fmt.Printf("bucketName: %s\nRenderId: %s\n", renderResponse.RenderId, renderResponse.RenderId) // Render Progress request renderProgressInputRequest := lambda_go_sdk.RenderConfig{ FunctionName: functionName, Region: region, RenderId: renderResponse.RenderId, BucketName: renderResponse.BucketName, LogLevel: "info", } // Execute getting the render progress renderProgressResponse, renderProgressError := lambda_go_sdk.GetRenderProgress(renderProgressInputRequest) // Check if we have error if renderProgressError != nil { log.Fatalf("%s %s", "Invalid render progress response", renderProgressError) } // Get the overall render progress fmt.Printf("overallprogress: %f ", renderProgressResponse.OverallProgress) }
更新日志
🌐 Changelog
v4.0.6:响应负载结构已更改。请查看此页面的历史记录以查看以前的结构。
另请参阅
🌐 See also