Nesta página, mostramos como adicionar e visualizar rótulos na API Transcoder do Google Cloud. Os rótulos são pares de chave-valor que você pode usar para organizar recursos. Você pode anexar um rótulo a recursos individuais e filtrar os recursos com base nos rótulos deles. As informações sobre os rótulos são encaminhadas ao sistema de faturamento para que você possa classificar as cobranças de faturamento por rótulo.
É possível adicionar rótulos ao criar jobs e modelos de job da API Transcoder. Se você criar um job com base em um modelo que contém identificadores, o job vai ter os mesmos identificadores do modelo. Para substituir os rótulos do modelo de job, especifique os rótulos diretamente no próprio job.
Os rótulos estão disponíveis por meio das APIs REST ou RPC. Os marcadores não estão disponíveis na CLI ou no console do Google Cloud.
Requisitos de rótulo
Os rótulos aplicados a um recurso precisam atender aos seguintes requisitos:
- Cada recurso pode ter vários rótulos, até um máximo de 64.
- Cada rótulo precisa ser um par de chave-valor.
- As chaves têm comprimento mínimo de 1 e máximo de 63 caracteres. Além disso, elas não podem estar vazias. Os valores podem estar vazios e ter um comprimento máximo de 63 caracteres.
- As chaves e valores contêm apenas letras minúsculas, caracteres numéricos, sublinhados e traços. Todos os caracteres precisam usar a codificação UTF-8, e os caracteres internacionais são permitidos.
- A chave de um rótulo precisa ser exclusiva em um único recurso, mas você pode usar a mesma chave com vários recursos.
- As chaves precisam começar com uma letra minúscula ou um caractere internacional.
Como adicionar um rótulo a um job
O exemplo a seguir mostra como adicionar um rótulo ao criar um novo job.
Por exemplo, use um rótulo para indicar que o job será usado
em um ambiente de teste. A chave para o rótulo seria environment
e o
o valor será test
.
Para criar o job, use o
projects.locations.jobs.create
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto do Google Cloud listado nas Configurações do IAMLOCATION
: o local onde seu job será executado. Usar uma das regiões com suporte.Mostrar locaisus-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
: o nome do bucket do Cloud Storage criado.STORAGE_INPUT_VIDEO
: o nome do vídeo no bucket do Cloud Storage que você está transcodificando, comomy-vid.mp4
. Este campo precisa considerar todas as pastas que você criou no bucket (por exemplo,input/my-vid.mp4
).STORAGE_OUTPUT_FOLDER
: nome da pasta do Cloud Storage em que você quer salvar as saídas de vídeo codificadas.
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" } }
Para adicionar vários rótulos, separe-os com uma vírgula.
Como listar e filtrar por rótulos
É possível listar recursos e filtrá-los pelos respectivos rótulos. Por exemplo, depois de
adicionar um rótulo a um job, você pode listar os jobs em um determinado
local e filtrar pelos rótulos adicionados. O exemplo a seguir lista os
jobs e filtra aqueles que não contêm o rótulo
"environment": "test"
.
Para listar os jobs, use o método
projects.locations.jobs.list
. O filtro a seguir é anexado ao URL:
?filter=labels.environment:test
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
pelo ID do projeto no Google Cloud.LOCATION
: o local dos jobs. Use uma das
regiões com suporte.
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
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" } } ] }