使用 Step Functions 创建AWS Elemental MediaConvert作业 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Step Functions 创建AWS Elemental MediaConvert作业

学习如何使用 Step Functions 通过 CreateJobAPI 创建AWS Elemental MediaConvert作业。

试用 Step Functions 和 MediaConvert

了解如何在工作流程中使用 MediaConvert 优化的集成,从视频片段的开头检测和移除长度未知的 SMTPE 色条。阅读 2024 年 4 月 12 日的博客文章:低代码工作流程 AWS Elemental MediaConvert

要了解如何在 Step Functions 中与Amazon服务集成,请参阅集成 服务在 Step Functions 中将参数传递给服务 API

优化 MediaConvert 集成的关键功能

以下内容包括提交 MediaConvert 作业并等待其完成的Task状态。

{ "StartAt": "MediaConvert_CreateJob", "States": { "MediaConvert_CreateJob": { "Type": "Task", "Resource": "arn:aws:states:::mediaconvert:createJob.sync", "Arguments": { "Role": "arn:aws:iam::111122223333:role/Admin", "Settings": { "OutputGroups": [ { "Outputs": [ { "ContainerSettings": { "Container": "MP4" }, "VideoDescription": { "CodecSettings": { "Codec": "H_264", "H264Settings": { "MaxBitrate": 1000, "RateControlMode": "QVBR", "SceneChangeDetect": "TRANSITION_DETECTION" } } }, "AudioDescriptions": [ { "CodecSettings": { "Codec": "AAC", "AacSettings": { "Bitrate": 96000, "CodingMode": "CODING_MODE_2_0", "SampleRate": 48000 } } } ] } ], "OutputGroupSettings": { "Type": "FILE_GROUP_SETTINGS", "FileGroupSettings": { "Destination": "s3://amzn-s3-demo-destination-bucket/" } } } ], "Inputs": [ { "AudioSelectors": { "Audio Selector 1": { "DefaultSelection": "DEFAULT" } }, "FileInput": "s3://amzn-s3-demo-bucket/DOC-EXAMPLE-SOURCE_FILE" } ] } }, "End": true } } }
中的Step Functions参数表示为 PascalCase

即使原生服务 API 在 camelCase 中(例如 API 操作)startSyncExecution,您也可以在中指定参数 PascalCase,例如:。StateMachineArn

已优化 MediaConvert APIs

用于呼叫的 IAM 政策 AWS Elemental MediaConvert

以下示例模板展示了如何根据状态机定义中的资源Amazon Step Functions生成 IAM 策略。有关更多信息,请参阅Step Functions 如何为集成服务生成 IAM 策略探索 Step Functions 中的服务集成模式

GetJobCancelJob 操作的 IAM 策略的范围限定为仅允许访问带有 ManagedByService: AWSStepFunctions 标签的作业。

基于标签的策略

修改自动生成的 ManagedByService: AWSStepFunctions 标签将导致状态机执行失败。

Run a Job (.sync)
{ "Version":"2012-10-17", "Statement": [ { "Sid": "MediaConvertCreateJob", "Effect": "Allow", "Action": [ "mediaconvert:CreateJob" ], "Resource": [ "arn:aws:mediaconvert:us-east-1:123456789012:queues/*", "arn:aws:mediaconvert:us-east-1:123456789012:jobTemplates/*", "arn:aws:mediaconvert:us-east-1:123456789012:presets/*" ] }, { "Sid": "MediaConvertManageJob", "Effect": "Allow", "Action": [ "mediaconvert:GetJob", "mediaconvert:CancelJob" ], "Resource": "arn:aws:mediaconvert:us-east-1:123456789012:jobs/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByService": "AWSStepFunctions" } } }, { "Sid": "IamPassRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRoleName" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "mediaconvert.amazonaws.com" ] } } }, { "Sid": "EventBridgeManageRule", "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForMediaConvertJobRule" ] } ] }
Request Response
{ "Version":"2012-10-17", "Statement": [ { "Sid": "MediaConvertCreateJob", "Effect": "Allow", "Action": [ "mediaconvert:CreateJob" ], "Resource": [ "arn:aws:mediaconvert:us-east-1:123456789012:queues/*", "arn:aws:mediaconvert:us-east-1:123456789012:jobTemplates/*", "arn:aws:mediaconvert:us-east-1:123456789012:presets/*" ] }, { "Sid": "IamPassRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRoleName" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "mediaconvert.amazonaws.com" ] } } } ] }