이 페이지에서는 Transcoder API 리소스에 대해 라벨을 추가하고 확인하는 방법을 보여줍니다. 라벨은 리소스 정리를 위해 사용할 수 있는 키-값 쌍입니다. 개별 리소스에 라벨을 추가한 후 라벨을 기준으로 리소스를 필터링할 수 있습니다. 라벨에 대한 정보는 결제 시스템으로 전달되므로 라벨을 기준으로 청구 상세 내역을 확인할 수 있습니다.
Transcoder API 작업 및 작업 템플릿을 만들 때 라벨을 추가할 수 있습니다. 라벨이 포함된 작업 템플릿을 기준으로 작업을 만들 경우 작업에 작업 템플릿과 동일한 라벨이 포함됩니다. 작업 템플릿에서 라벨을 재정의하려면 작업 자체에 라벨을 직접 지정할 수 있습니다.
라벨은 REST 또는 RPC API를 사용하여 제공됩니다. Google Cloud CLI 또는 Google Cloud Console에서 라벨을 사용할 수 없습니다.
라벨 요구사항
리소스에 적용된 라벨은 다음 요구사항을 충족해야 합니다.
- 각 리소스는 여러 개의 라벨(최대 64개)을 가질 수 있습니다.
- 각 라벨은 키-값 쌍이어야 합니다.
- 키는 비워 둘 수 없으며 최소 길이는 1자이고 최대 길이는 63자입니다. 값은 비워 둘 수 있으며 최대 길이는 63자(영문 기준)입니다.
- 키와 값에는 소문자, 숫자, 밑줄, 대시만 사용할 수 있습니다. 모든 문자는 UTF-8 인코딩을 사용해야 하며 국제 문자가 허용됩니다.
- 라벨의 키는 단일 리소스에서 고유해야 하지만 여러 리소스에 동일한 키를 사용할 수 있습니다.
- 키는 소문자나 국제 문자로 시작해야 합니다.
작업에 라벨 추가
다음 샘플은 새 작업을 만들 때 라벨을 추가하는 방법을 보여줍니다.
예를 들어 라벨을 사용해서 테스트 환경에 작업이 사용되도록 표시할 수 있습니다. 라벨의 키는 environment
이고 값은 test
입니다.
그룹을 만들려면 projects.locations.jobs.create
메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: IAM 설정에 나열된 Google Cloud 프로젝트 ID입니다.LOCATION
: 작업이 실행될 위치입니다. 지원되는 리전 중 하나를 사용합니다.위치 표시us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
STORAGE_BUCKET_NAME
: 만든 Cloud Storage 버킷의 이름입니다.STORAGE_INPUT_VIDEO
: Cloud Storage 버킷에 있는 트랜스코딩하는 동영상의 이름입니다(예:my-vid.mp4
). 이 필드는 버킷에서 만든 폴더를 고려해야 합니다(예:input/my-vid.mp4
).STORAGE_OUTPUT_FOLDER
: 인코딩된 동영상 출력을 저장할 Cloud Storage 폴더 이름입니다.
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "editList": [ { "key": "atom0", "inputs": [ "input0" ], "startTimeOffset": "0s" } ], "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 640, "heightPixels": 360, "frameRate": 30, "bitrateBps": 550000, "pixelFormat": "yuv420p", "rateControlMode": "vbr", "crfLevel": 21, "gopDuration": "3s", "vbvSizeBits": 550000, "vbvFullnessBits": 495000, "entropyCoder": "cabac", "bFrameCount": 3, "aqStrength": 1, "profile": "high", "preset": "veryfast" } }, "key": "video-stream0" }, { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 2500000, "pixelFormat": "yuv420p", "rateControlMode": "vbr", "crfLevel": 21, "gopDuration": "3s", "vbvSizeBits": 2500000, "vbvFullnessBits": 2250000, "entropyCoder": "cabac", "bFrameCount": 3, "aqStrength": 1, "profile": "high", "preset": "veryfast" } }, "key": "video-stream1" }, { "audioStream": { "codec": "aac", "bitrateBps": 64000, "channelCount": 2, "channelLayout": [ "fl", "fr" ], "sampleRateHertz": 48000 }, "key": "audio-stream0" } ], "muxStreams": [ { "key": "sd", "fileName": "sd.mp4", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] }, { "key": "hd", "fileName": "hd.mp4", "container": "mp4", "elementaryStreams": [ "video-stream1", "audio-stream0" ] }, { "key": "media-sd", "fileName": "media-sd.ts", "container": "ts", "elementaryStreams": [ "video-stream0", "audio-stream0" ] }, { "key": "media-hd", "fileName": "media-hd.ts", "container": "ts", "elementaryStreams": [ "video-stream1", "audio-stream0" ] }, { "key": "video-only-sd", "fileName": "video-only-sd.m4s", "container": "fmp4", "elementaryStreams": [ "video-stream0" ] }, { "key": "video-only-hd", "fileName": "video-only-hd.m4s", "container": "fmp4", "elementaryStreams": [ "video-stream1" ] }, { "key": "audio-only", "fileName": "audio-only.m4s", "container": "fmp4", "elementaryStreams": [ "audio-stream0" ] } ], "manifests": [ { "fileName": "manifest.m3u8", "type": "HLS", "muxStreams": [ "media-sd", "media-hd" ] }, { "fileName": "manifest.mpd", "type": "DASH", "muxStreams": [ "video-only-sd", "video-only-hd", "audio-only" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" } }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30, "labels": { "environment": "test" } }
라벨을 여러 개 추가하려면 각 라벨을 쉼표로 구분합니다.
라벨별 나열 및 필터링
리소스를 나열하고 라벨에 따라 필터링할 수 있습니다. 예를 들어 작업에 라벨을 추가한 후 지정된 위치의 작업을 나열하고 추가한 라벨에 따라 필터링할 수 있습니다. 다음 샘플은 작업을 나열하고 "environment": "test"
라벨이 없는 항목을 필터링합니다.
작업을 나열하려면 projects.locations.jobs.list
메서드를 사용합니다. 다음 필터가 URL에 추가됩니다. ?filter=labels.environment:test
.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.LOCATION
: 작업 위치입니다. 지원되는 리전 중 하나를 사용합니다.
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "jobs": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/MY_JOB", "config": { .... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30, "labels": { "environment": "test" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/MY_OTHER_JOB", "config": { .... }, "state": "SUCCEEDED", "createTime": CREATE_TIME, "startTime": START_TIME, "endTime": END_TIME, "ttlAfterCompletionDays": 30, "labels": { "environment": "test" } } ] }