使用 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 通过 CreateJob API 来创建 AWS Elemental MediaConvert 任务。

使用 Step Functions 和 MediaConvert 进行实验

了解如何在工作流程中使用 MediaConvert 优化的集成,此工作流程从视频剪辑的开头检测和移除长度未知的 SMTPE 色条。阅读 2024 年 4 月 12 日的博客文章:Low code workflows with 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 API

用于调用 AWS Elemental MediaConvert 的 IAM 策略

以下示例模板展示了 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" ] } } } ] }