

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tutorial: Video transcoding batch dengan Operasi Batch S3
<a name="tutorial-s3-batchops-lambda-mediaconvert-video"></a>

Konsumen video menggunakan perangkat dari segala bentuk, ukuran, dan vintage untuk menikmati konten media. Beragam perangkat ini menghadirkan tantangan bagi pembuat konten dan distributor. Alih-alih dalam one-size-fits-all format, video harus dikonversi sehingga dapat menjangkau berbagai ukuran, format, dan bitrate. Tugas konversi ini bahkan lebih menantang ketika Anda memiliki sejumlah besar video yang harus dikonversi.

AWS menawarkan Anda metode untuk membangun arsitektur terdistribusi yang dapat diskalakan yang melakukan hal berikut: 
+ Menelan video masukan
+ Memproses video untuk pemutaran di berbagai perangkat
+ Menyimpan file media yang ditranskode
+ Mengirimkan file media keluaran untuk memenuhi permintaan

Jika Anda memiliki repositori video ekstensif yang disimpan di Amazon S3, Anda dapat mentranskode video ini dari format sumbernya ke beberapa jenis file dalam ukuran, resolusi, dan format yang diperlukan oleh pemutar video atau perangkat tertentu. Secara khusus, [Operasi Batch S3](https://aws.amazon.com/s3/features/batch-operations) memberi Anda solusi untuk menjalankan AWS Lambda fungsi untuk video input yang ada di bucket sumber S3. Kemudian, fungsi Lambda memanggil [AWS Elemental MediaConvert](https://aws.amazon.com/mediaconvert/)untuk melakukan tugas transcoding video skala besar. File media keluaran yang dikonversi disimpan dalam bucket tujuan S3. 

![\[Diagram alur kerja batch-transcoding.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/batchops-example-image-global.png)


**Tujuan**  
Dalam tutorial ini, Anda mempelajari cara mengatur Operasi Batch S3 untuk menjalankan fungsi Lambda untuk transcoding batch video yang disimpan dalam bucket sumber S3. Fungsi Lambda memanggil MediaConvert untuk mentranskode video. Output untuk setiap video di bucket sumber S3 adalah sebagai berikut:
+ Streaming bitrate adaptif [HTTP Live Streaming (HLS)](http://wikipedia.org/wiki/HTTP_Live_Streaming) untuk pemutaran pada perangkat dengan berbagai ukuran dan bandwidth yang bervariasi
+ Sebuah file MP4 video
+ Gambar thumbnail dikumpulkan pada interval

**Topics**
+ [Prasyarat](#batchops-s3-prerequisites)
+ [Langkah 1: Buat bucket S3 untuk file media keluaran](#batchops-s3-step1)
+ [Langkah 2: Buat peran IAM untuk MediaConvert](#batchops-s3-step2)
+ [Langkah 3: Buat peran IAM untuk fungsi Lambda Anda](#batchops-s3-step3)
+ [Langkah 4: Buat fungsi Lambda untuk transcoding video](#batchops-s3-step4)
+ [Langkah 5: Konfigurasikan Inventaris Amazon S3 untuk bucket sumber S3 Anda](#batchops-s3-step5)
+ [Langkah 6: Buat peran IAM untuk Operasi Batch S3](#batchops-s3-step6)
+ [Langkah 7: Buat dan jalankan pekerjaan Operasi Batch S3](#batchops-s3-step7)
+ [Langkah 8: Memeriksa file media output dari bucket tujuan S3 Anda](#batchops-s3-step8)
+ [Langkah 9: Membersihkan](#batchops-s3-step9)
+ [Langkah selanjutnya](#batchops-s3-next-steps)

## Prasyarat
<a name="batchops-s3-prerequisites"></a>

Sebelum Anda memulai tutorial ini, Anda harus memiliki bucket sumber Amazon S3 (misalnya,`amzn-s3-demo-source-bucket`) dengan video yang akan ditranskode sudah disimpan di dalamnya.

Anda dapat memberi ember nama lain jika Anda mau. Untuk informasi selengkapnya tentang nama bucket di Amazon S3, lihat. [Aturan penamaan bucket tujuan umum](bucketnamingrules.md)

Untuk bucket sumber S3, pertahankan pengaturan yang terkait dengan pengaturan **Blokir Akses Publik untuk bucket ini** disetel ke default (**Blokir *semua akses publik diaktifkan***). Untuk informasi selengkapnya, lihat [Membuat bucket tujuan umum](create-bucket-overview.md). 

Untuk informasi selengkapnya tentang mengunggah video ke bucket sumber S3, lihat. [Mengunggah Objek](upload-objects.md) Jika Anda mengunggah banyak file video besar ke S3, Anda mungkin ingin menggunakan [Amazon S3 Transfer Acceleration untuk mengonfigurasi transfer](https://aws.amazon.com/s3/transfer-acceleration) file yang cepat dan aman. Transfer Acceleration dapat mempercepat pengunggahan video ke bucket S3 Anda untuk transfer jarak jauh video yang lebih besar. Untuk informasi selengkapnya, lihat [Mengonfigurasi transfer file yang cepat dan aman menggunakan Amazon S3 Transfer Acceleration](transfer-acceleration.md). 

## Langkah 1: Buat bucket S3 untuk file media keluaran
<a name="batchops-s3-step1"></a>

Pada langkah ini, Anda membuat bucket tujuan S3 untuk menyimpan file media keluaran yang dikonversi. Anda juga membuat konfigurasi Cross Origin Resource Sharing (CORS) untuk memungkinkan akses lintas asal ke file media transkode yang disimpan di bucket tujuan S3 Anda. 

**Topics**
+ [Buat ember untuk file media keluaran](#batchops-s3-step1-create-bucket)
+ [Tambahkan konfigurasi CORS ke bucket keluaran S3](#batchops-s3-step1-cors)

### Buat ember untuk file media keluaran
<a name="batchops-s3-step1-create-bucket"></a>



1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Pilih **Buat bucket**. 

1. Untuk **nama Bucket**, masukkan nama untuk bucket Anda (misalnya,`amzn-s3-demo-destination-bucket1`). 

1. Untuk **Wilayah**, pilih Wilayah AWS tempat Anda ingin ember berada. 

1. Untuk memastikan akses publik ke file media keluaran Anda, dalam **pengaturan Blokir Akses Publik untuk bucket ini**, hapus **Blokir *semua* akses publik**. 
**Awas**  
Sebelum Anda menyelesaikan langkah ini, tinjau [Melakukan blok akses publik ke penyimpanan Amazon S3 Anda](access-control-block-public-access.md) untuk memastikan bahwa Anda telah memahami dan menerima risiko yang terkait dengan mengizinkan akses publik. Saat Anda mematikan pengaturan Blokir Akses Publik untuk membuat bucket Anda publik, siapa pun di internet dapat mengakses bucket Anda. Kami sarankan agar Anda memblokir semua akses publik ke bucket Anda.  
Jika Anda tidak ingin menghapus pengaturan Blokir Akses Publik, Anda dapat menggunakan Amazon CloudFront untuk mengirimkan file media yang ditranskode ke pemirsa (pengguna akhir). Untuk informasi selengkapnya, lihat [Tutorial: Hosting video streaming sesuai permintaan dengan Amazon S3, Amazon, dan CloudFront Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md). 

1. Pilih kotak centang di sebelah **Saya mengakui bahwa pengaturan saat ini dapat mengakibatkan bucket ini dan objek dalam menjadi publik**.

1. Pertahankan pengaturan yang tersisa disetel ke default. 

1. Pilih **Buat bucket**.

### Tambahkan konfigurasi CORS ke bucket keluaran S3
<a name="batchops-s3-step1-cors"></a>

Konfigurasi JSON CORS mendefinisikan cara untuk aplikasi web klien (pemutar video dalam konteks ini) yang dimuat dalam satu domain untuk memutar file media keluaran transkode dalam domain yang berbeda. 

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam daftar **Bucket**, pilih nama bucket yang Anda buat sebelumnya (misalnya,`amzn-s3-demo-destination-bucket1`).

1. Pilih tab **Izin**.

1. Di bagian **Berbagi sumber daya lintas asal (CORS)**, pilih **Edit**.

1. Di kotak teks konfigurasi CORS, salin dan tempel konfigurasi CORS berikut.

   Konfigurasi CORS harus dalam format JSON. Dalam contoh ini, `AllowedOrigins` atribut menggunakan karakter wildcard (`*`) untuk menentukan semua asal. Jika Anda tahu asal spesifik Anda, Anda dapat membatasi `AllowedOrigins` atribut ke URL pemain spesifik Anda. Untuk informasi selengkapnya tentang mengonfigurasi atribut ini dan atribut lainnya, lihat[Elemen konfigurasi CORS](ManageCorsUsing.md).

   ```
   [
       {
           "AllowedOrigins": [
               "*"
           ],
           "AllowedMethods": [
               "GET"
           ],
           "AllowedHeaders": [
               "*"
           ],
           "ExposeHeaders": []
   
       }
   ]
   ```

1. Pilih **Simpan perubahan**.

## Langkah 2: Buat peran IAM untuk MediaConvert
<a name="batchops-s3-step2"></a>

Untuk digunakan AWS Elemental MediaConvert untuk mentranskode video input yang disimpan di bucket S3, Anda harus memiliki peran layanan AWS Identity and Access Management (IAM) untuk memberikan MediaConvert izin membaca dan menulis file video dari dan ke bucket sumber dan tujuan S3 Anda. Saat Anda menjalankan pekerjaan transcoding, MediaConvert konsol menggunakan peran ini. 

**Untuk membuat peran IAM untuk MediaConvert**

1. Buat peran IAM dengan nama peran yang Anda pilih (misalnya,**tutorial-mediaconvert-role**). Untuk membuat peran ini, ikuti langkah-langkah di [Buat MediaConvert peran Anda di IAM (konsol)](https://docs.aws.amazon.com/mediaconvert/latest/ug/creating-the-iam-role-in-iam.html) di *Panduan AWS Elemental MediaConvert Pengguna*.

1. Setelah Anda membuat peran IAM untuk MediaConvert, dalam daftar **Peran**, pilih nama peran MediaConvert yang Anda buat (misalnya,**tutorial-mediaconvert-role**).

1. Pada halaman **Ringkasan**, salin **ARN Peran** (yang dimulai dengan`arn:aws:iam::`), dan simpan ARN untuk digunakan nanti. 

   Untuk informasi selengkapnya ARNs, lihat [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) di *Referensi AWS Umum*. 

## Langkah 3: Buat peran IAM untuk fungsi Lambda Anda
<a name="batchops-s3-step3"></a>

Untuk mentranskode video batch dengan dan Operasi Batch MediaConvert S3, Anda menggunakan fungsi Lambda untuk menghubungkan kedua layanan ini untuk mengonversi video. Fungsi Lambda ini harus memiliki peran IAM yang memberikan izin fungsi Lambda untuk MediaConvert mengakses dan Operasi Batch S3. 

**Topics**
+ [Buat peran IAM untuk fungsi Lambda Anda](#batchops-s3-step3-role)
+ [Sematkan kebijakan inline untuk peran IAM fungsi Lambda Anda](#batchops-s3-step3-inline-policy)

### Buat peran IAM untuk fungsi Lambda Anda
<a name="batchops-s3-step3-role"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi kiri, pilih **Peran**, lalu pilih **Buat peran**. 

1. Pilih jenis peran **AWS layanan**, lalu di bawah **Kasus penggunaan umum**, pilih **Lambda**. 

1. Pilih **Berikutnya: Izin**. 

1. Pada halaman **Lampirkan kebijakan izin**, masukkan **AWSLambdaBasicExecutionRole** kotak **Filter kebijakan**. Untuk melampirkan kebijakan terkelola **AWSLambdaBasicExecutionRole**ke peran ini untuk memberikan izin menulis ke CloudWatch Log Amazon, pilih kotak centang di **AWSLambdaBasicExecutionRole**sebelahnya.

1. Pilih **Berikutnya**.

1. Untuk **Nama peran**, masukkan **tutorial-lambda-transcode-role**.

1. (Opsional) Tambahkan tag ke kebijakan terkelola.

1. Pilih **Buat peran**.

### Sematkan kebijakan inline untuk peran IAM fungsi Lambda Anda
<a name="batchops-s3-step3-inline-policy"></a>

Untuk memberikan izin ke MediaConvert sumber daya yang diperlukan agar fungsi Lambda dapat dijalankan, Anda harus menggunakan kebijakan sebaris.

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi sebelah kiri, pilih **Peran**. 

1. Dalam daftar **Peran, pilih nama peran** IAM yang Anda buat sebelumnya untuk fungsi Lambda Anda (misalnya**tutorial-lambda-transcode-role**,).

1. Pilih tab **Izin**.

1. Pilih **Menambahkan kebijakan inline**.

1. Pilih tab **JSON**, lalu salin dan tempel kebijakan JSON berikut.

   Dalam kebijakan JSON, ganti contoh nilai ARN dengan peran ARN `Resource` dari peran IAM MediaConvert untuk yang Anda buat [di Langkah](#batchops-s3-step2) 2 (misalnya,). **tutorial-mediaconvert-role**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": "*",
               "Effect": "Allow",
               "Sid": "Logging"
           },
           {
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": [
                   "arn:aws:iam::111122223333:role/tutorial-mediaconvert-role"
               ],
               "Effect": "Allow",
               "Sid": "PassRole"
           },
           {
               "Action": [
                   "mediaconvert:*"
               ],
               "Resource": [
                   "*"
               ],
               "Effect": "Allow",
               "Sid": "MediaConvertService"
           },
           {
               "Action": [
                   "s3:*"
               ],
               "Resource": [
                   "*"
               ],
               "Effect": "Allow",
               "Sid": "S3Service"
           }
       ]
   }
   ```

------

1. Pilih **Tinjau Kebijakan**.

1. Untuk **Nama**, masukkan **tutorial-lambda-policy**.

1. Pilih **Buat Kebijakan**.

   Setelah Anda membuat kebijakan sebaris, kebijakan tersebut secara otomatis disematkan dalam peran IAM fungsi Lambda Anda.

## Langkah 4: Buat fungsi Lambda untuk transcoding video
<a name="batchops-s3-step4"></a>

Di bagian tutorial ini, Anda membangun fungsi Lambda menggunakan SDK untuk Python untuk diintegrasikan dengan Operasi Batch S3 dan. MediaConvert Untuk memulai transcoding video yang sudah disimpan di bucket sumber S3, Anda menjalankan tugas Operasi Batch S3 yang secara langsung memanggil fungsi Lambda untuk setiap video di bucket sumber S3. Kemudian, fungsi Lambda mengirimkan pekerjaan transcoding untuk setiap video. MediaConvert

**Topics**
+ [Tulis kode fungsi Lambda dan buat paket penerapan](#batchops-s3-step4-write-function)
+ [Buat fungsi Lambda dengan peran eksekusi (konsol)](#batchops-s3-step4-create-function)
+ [Terapkan fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)](#batchops-s3-step4-deploy-function)

### Tulis kode fungsi Lambda dan buat paket penerapan
<a name="batchops-s3-step4-write-function"></a>

1. Di mesin lokal Anda, buat folder bernama`batch-transcode`.

1. Di `batch-transcode` folder, buat file dengan pengaturan pekerjaan JSON. Misalnya, Anda dapat menggunakan pengaturan yang disediakan di bagian ini, dan beri nama file`job.json`. 

   Sebuah `job.json` file menentukan berikut: 
   + File mana yang akan ditranskode
   + Bagaimana Anda ingin mentranskode video input Anda
   + File media keluaran apa yang ingin Anda buat
   + Apa yang harus diberi nama file yang ditranskode
   + Tempat menyimpan file yang ditranskode
   + Fitur canggih mana yang akan diterapkan, dan sebagainya

   Dalam tutorial ini, kita menggunakan `job.json` file berikut untuk membuat output berikut untuk setiap video di bucket sumber S3:
   + Streaming bitrate adaptif HTTP Live Streaming (HLS) untuk pemutaran di beberapa perangkat dengan ukuran berbeda dan bandwidth yang bervariasi
   + Sebuah file MP4 video
   + Gambar thumbnail dikumpulkan pada interval

   `job.json`File contoh ini menggunakan Quality-Defined Variable Bitrate (QVBR) untuk mengoptimalkan kualitas video. Output HLS sesuai dengan Apple (audio tidak dicampur dari video, durasi segmen 6 detik, dan kualitas video yang dioptimalkan melalui QVBR otomatis). 

   Jika Anda tidak ingin menggunakan contoh pengaturan yang disediakan di sini, Anda dapat membuat `job.json` spesifikasi berdasarkan kasus penggunaan Anda. Untuk memastikan konsistensi di seluruh output Anda, pastikan file input Anda memiliki konfigurasi video dan audio yang serupa. Untuk file input apa pun dengan konfigurasi video dan audio yang berbeda, buat otomatisasi terpisah (`job.json`pengaturan unik). Untuk informasi selengkapnya, lihat [Contoh pengaturan AWS Elemental MediaConvert pekerjaan di JSON](https://docs.aws.amazon.com/mediaconvert/latest/ug/example-job-settings.html) di *Panduan AWS Elemental MediaConvert Pengguna*. 

   ```
   {
     "OutputGroups": [
       {
         "CustomName": "HLS",
         "Name": "Apple HLS",
         "Outputs": [
           {
             "ContainerSettings": {
               "Container": "M3U8",
               "M3u8Settings": {
                 "AudioFramesPerPes": 4,
                 "PcrControl": "PCR_EVERY_PES_PACKET",
                 "PmtPid": 480,
                 "PrivateMetadataPid": 503,
                 "ProgramNumber": 1,
                 "PatInterval": 0,
                 "PmtInterval": 0,
                 "TimedMetadata": "NONE",
                 "VideoPid": 481,
                 "AudioPids": [
                   482,
                   483,
                   484,
                   485,
                   486,
                   487,
                   488,
                   489,
                   490,
                   491,
                   492
                 ]
               }
             },
             "VideoDescription": {
               "Width": 640,
               "ScalingBehavior": "DEFAULT",
               "Height": 360,
               "TimecodeInsertion": "DISABLED",
               "AntiAlias": "ENABLED",
               "Sharpness": 50,
               "CodecSettings": {
                 "Codec": "H_264",
                 "H264Settings": {
                   "InterlaceMode": "PROGRESSIVE",
                   "NumberReferenceFrames": 3,
                   "Syntax": "DEFAULT",
                   "Softness": 0,
                   "GopClosedCadence": 1,
                   "GopSize": 2,
                   "Slices": 1,
                   "GopBReference": "DISABLED",
                   "MaxBitrate": 1200000,
                   "SlowPal": "DISABLED",
                   "SpatialAdaptiveQuantization": "ENABLED",
                   "TemporalAdaptiveQuantization": "ENABLED",
                   "FlickerAdaptiveQuantization": "DISABLED",
                   "EntropyEncoding": "CABAC",
                   "FramerateControl": "INITIALIZE_FROM_SOURCE",
                   "RateControlMode": "QVBR",
                   "CodecProfile": "MAIN",
                   "Telecine": "NONE",
                   "MinIInterval": 0,
                   "AdaptiveQuantization": "HIGH",
                   "CodecLevel": "AUTO",
                   "FieldEncoding": "PAFF",
                   "SceneChangeDetect": "TRANSITION_DETECTION",
                   "QualityTuningLevel": "SINGLE_PASS_HQ",
                   "FramerateConversionAlgorithm": "DUPLICATE_DROP",
                   "UnregisteredSeiTimecode": "DISABLED",
                   "GopSizeUnits": "SECONDS",
                   "ParControl": "INITIALIZE_FROM_SOURCE",
                   "NumberBFramesBetweenReferenceFrames": 2,
                   "RepeatPps": "DISABLED"
                 }
               },
               "AfdSignaling": "NONE",
               "DropFrameTimecode": "ENABLED",
               "RespondToAfd": "NONE",
               "ColorMetadata": "INSERT"
             },
             "OutputSettings": {
               "HlsSettings": {
                 "AudioGroupId": "program_audio",
                 "AudioRenditionSets": "program_audio",
                 "SegmentModifier": "$dt$",
                 "IFrameOnlyManifest": "EXCLUDE"
               }
             },
             "NameModifier": "_360"
           },
           {
             "ContainerSettings": {
               "Container": "M3U8",
               "M3u8Settings": {
                 "AudioFramesPerPes": 4,
                 "PcrControl": "PCR_EVERY_PES_PACKET",
                 "PmtPid": 480,
                 "PrivateMetadataPid": 503,
                 "ProgramNumber": 1,
                 "PatInterval": 0,
                 "PmtInterval": 0,
                 "TimedMetadata": "NONE",
                 "TimedMetadataPid": 502,
                 "VideoPid": 481,
                 "AudioPids": [
                   482,
                   483,
                   484,
                   485,
                   486,
                   487,
                   488,
                   489,
                   490,
                   491,
                   492
                 ]
               }
             },
             "VideoDescription": {
               "Width": 960,
               "ScalingBehavior": "DEFAULT",
               "Height": 540,
               "TimecodeInsertion": "DISABLED",
               "AntiAlias": "ENABLED",
               "Sharpness": 50,
               "CodecSettings": {
                 "Codec": "H_264",
                 "H264Settings": {
                   "InterlaceMode": "PROGRESSIVE",
                   "NumberReferenceFrames": 3,
                   "Syntax": "DEFAULT",
                   "Softness": 0,
                   "GopClosedCadence": 1,
                   "GopSize": 2,
                   "Slices": 1,
                   "GopBReference": "DISABLED",
                   "MaxBitrate": 3500000,
                   "SlowPal": "DISABLED",
                   "SpatialAdaptiveQuantization": "ENABLED",
                   "TemporalAdaptiveQuantization": "ENABLED",
                   "FlickerAdaptiveQuantization": "DISABLED",
                   "EntropyEncoding": "CABAC",
                   "FramerateControl": "INITIALIZE_FROM_SOURCE",
                   "RateControlMode": "QVBR",
                   "CodecProfile": "MAIN",
                   "Telecine": "NONE",
                   "MinIInterval": 0,
                   "AdaptiveQuantization": "HIGH",
                   "CodecLevel": "AUTO",
                   "FieldEncoding": "PAFF",
                   "SceneChangeDetect": "TRANSITION_DETECTION",
                   "QualityTuningLevel": "SINGLE_PASS_HQ",
                   "FramerateConversionAlgorithm": "DUPLICATE_DROP",
                   "UnregisteredSeiTimecode": "DISABLED",
                   "GopSizeUnits": "SECONDS",
                   "ParControl": "INITIALIZE_FROM_SOURCE",
                   "NumberBFramesBetweenReferenceFrames": 2,
                   "RepeatPps": "DISABLED"
                 }
               },
               "AfdSignaling": "NONE",
               "DropFrameTimecode": "ENABLED",
               "RespondToAfd": "NONE",
               "ColorMetadata": "INSERT"
             },
             "OutputSettings": {
               "HlsSettings": {
                 "AudioGroupId": "program_audio",
                 "AudioRenditionSets": "program_audio",
                 "SegmentModifier": "$dt$",
                 "IFrameOnlyManifest": "EXCLUDE"
               }
             },
             "NameModifier": "_540"
           },
           {
             "ContainerSettings": {
               "Container": "M3U8",
               "M3u8Settings": {
                 "AudioFramesPerPes": 4,
                 "PcrControl": "PCR_EVERY_PES_PACKET",
                 "PmtPid": 480,
                 "PrivateMetadataPid": 503,
                 "ProgramNumber": 1,
                 "PatInterval": 0,
                 "PmtInterval": 0,
                 "TimedMetadata": "NONE",
                 "VideoPid": 481,
                 "AudioPids": [
                   482,
                   483,
                   484,
                   485,
                   486,
                   487,
                   488,
                   489,
                   490,
                   491,
                   492
                 ]
               }
             },
             "VideoDescription": {
               "Width": 1280,
               "ScalingBehavior": "DEFAULT",
               "Height": 720,
               "TimecodeInsertion": "DISABLED",
               "AntiAlias": "ENABLED",
               "Sharpness": 50,
               "CodecSettings": {
                 "Codec": "H_264",
                 "H264Settings": {
                   "InterlaceMode": "PROGRESSIVE",
                   "NumberReferenceFrames": 3,
                   "Syntax": "DEFAULT",
                   "Softness": 0,
                   "GopClosedCadence": 1,
                   "GopSize": 2,
                   "Slices": 1,
                   "GopBReference": "DISABLED",
                   "MaxBitrate": 5000000,
                   "SlowPal": "DISABLED",
                   "SpatialAdaptiveQuantization": "ENABLED",
                   "TemporalAdaptiveQuantization": "ENABLED",
                   "FlickerAdaptiveQuantization": "DISABLED",
                   "EntropyEncoding": "CABAC",
                   "FramerateControl": "INITIALIZE_FROM_SOURCE",
                   "RateControlMode": "QVBR",
                   "CodecProfile": "MAIN",
                   "Telecine": "NONE",
                   "MinIInterval": 0,
                   "AdaptiveQuantization": "HIGH",
                   "CodecLevel": "AUTO",
                   "FieldEncoding": "PAFF",
                   "SceneChangeDetect": "TRANSITION_DETECTION",
                   "QualityTuningLevel": "SINGLE_PASS_HQ",
                   "FramerateConversionAlgorithm": "DUPLICATE_DROP",
                   "UnregisteredSeiTimecode": "DISABLED",
                   "GopSizeUnits": "SECONDS",
                   "ParControl": "INITIALIZE_FROM_SOURCE",
                   "NumberBFramesBetweenReferenceFrames": 2,
                   "RepeatPps": "DISABLED"
                 }
               },
               "AfdSignaling": "NONE",
               "DropFrameTimecode": "ENABLED",
               "RespondToAfd": "NONE",
               "ColorMetadata": "INSERT"
             },
             "OutputSettings": {
               "HlsSettings": {
                 "AudioGroupId": "program_audio",
                 "AudioRenditionSets": "program_audio",
                 "SegmentModifier": "$dt$",
                 "IFrameOnlyManifest": "EXCLUDE"
               }
             },
             "NameModifier": "_720"
           },
           {
             "ContainerSettings": {
               "Container": "M3U8",
               "M3u8Settings": {}
             },
             "AudioDescriptions": [
               {
                 "AudioSourceName": "Audio Selector 1",
                 "CodecSettings": {
                   "Codec": "AAC",
                   "AacSettings": {
                     "Bitrate": 96000,
                     "CodingMode": "CODING_MODE_2_0",
                     "SampleRate": 48000
                   }
                 }
               }
             ],
             "OutputSettings": {
               "HlsSettings": {
                 "AudioGroupId": "program_audio",
                 "AudioTrackType": "ALTERNATE_AUDIO_AUTO_SELECT_DEFAULT"
               }
             },
             "NameModifier": "_audio"
           }
         ],
         "OutputGroupSettings": {
           "Type": "HLS_GROUP_SETTINGS",
           "HlsGroupSettings": {
             "ManifestDurationFormat": "INTEGER",
             "SegmentLength": 6,
             "TimedMetadataId3Period": 10,
             "CaptionLanguageSetting": "OMIT",
             "Destination": "s3://EXAMPLE-BUCKET/HLS/",
             "DestinationSettings": {
               "S3Settings": {
                 "AccessControl": {
                   "CannedAcl": "PUBLIC_READ"
                 }
               }
             },
             "TimedMetadataId3Frame": "PRIV",
             "CodecSpecification": "RFC_4281",
             "OutputSelection": "MANIFESTS_AND_SEGMENTS",
             "ProgramDateTimePeriod": 600,
             "MinSegmentLength": 0,
             "DirectoryStructure": "SINGLE_DIRECTORY",
             "ProgramDateTime": "EXCLUDE",
             "SegmentControl": "SEGMENTED_FILES",
             "ManifestCompression": "NONE",
             "ClientCache": "ENABLED",
             "StreamInfResolution": "INCLUDE"
           }
         }
       },
       {
         "CustomName": "MP4",
         "Name": "File Group",
         "Outputs": [
           {
             "ContainerSettings": {
               "Container": "MP4",
               "Mp4Settings": {
                 "CslgAtom": "INCLUDE",
                 "FreeSpaceBox": "EXCLUDE",
                 "MoovPlacement": "PROGRESSIVE_DOWNLOAD"
               }
             },
             "VideoDescription": {
               "Width": 1280,
               "ScalingBehavior": "DEFAULT",
               "Height": 720,
               "TimecodeInsertion": "DISABLED",
               "AntiAlias": "ENABLED",
               "Sharpness": 100,
               "CodecSettings": {
                 "Codec": "H_264",
                 "H264Settings": {
                   "InterlaceMode": "PROGRESSIVE",
                   "ParNumerator": 1,
                   "NumberReferenceFrames": 3,
                   "Syntax": "DEFAULT",
                   "Softness": 0,
                   "GopClosedCadence": 1,
                   "HrdBufferInitialFillPercentage": 90,
                   "GopSize": 2,
                   "Slices": 2,
                   "GopBReference": "ENABLED",
                   "HrdBufferSize": 10000000,
                   "MaxBitrate": 5000000,
                   "ParDenominator": 1,
                   "EntropyEncoding": "CABAC",
                   "RateControlMode": "QVBR",
                   "CodecProfile": "HIGH",
                   "MinIInterval": 0,
                   "AdaptiveQuantization": "AUTO",
                   "CodecLevel": "AUTO",
                   "FieldEncoding": "PAFF",
                   "SceneChangeDetect": "ENABLED",
                   "QualityTuningLevel": "SINGLE_PASS_HQ",
                   "UnregisteredSeiTimecode": "DISABLED",
                   "GopSizeUnits": "SECONDS",
                   "ParControl": "SPECIFIED",
                   "NumberBFramesBetweenReferenceFrames": 3,
                   "RepeatPps": "DISABLED",
                   "DynamicSubGop": "ADAPTIVE"
                 }
               },
               "AfdSignaling": "NONE",
               "DropFrameTimecode": "ENABLED",
               "RespondToAfd": "NONE",
               "ColorMetadata": "INSERT"
             },
             "AudioDescriptions": [
               {
                 "AudioTypeControl": "FOLLOW_INPUT",
                 "AudioSourceName": "Audio Selector 1",
                 "CodecSettings": {
                   "Codec": "AAC",
                   "AacSettings": {
                     "AudioDescriptionBroadcasterMix": "NORMAL",
                     "Bitrate": 160000,
                     "RateControlMode": "CBR",
                     "CodecProfile": "LC",
                     "CodingMode": "CODING_MODE_2_0",
                     "RawFormat": "NONE",
                     "SampleRate": 48000,
                     "Specification": "MPEG4"
                   }
                 },
                 "LanguageCodeControl": "FOLLOW_INPUT",
                 "AudioType": 0
               }
             ]
           }
         ],
         "OutputGroupSettings": {
           "Type": "FILE_GROUP_SETTINGS",
           "FileGroupSettings": {
             "Destination": "s3://EXAMPLE-BUCKET/MP4/",
             "DestinationSettings": {
               "S3Settings": {
                 "AccessControl": {
                   "CannedAcl": "PUBLIC_READ"
                 }
               }
             }
           }
         }
       },
       {
         "CustomName": "Thumbnails",
         "Name": "File Group",
         "Outputs": [
           {
             "ContainerSettings": {
               "Container": "RAW"
             },
             "VideoDescription": {
               "Width": 1280,
               "ScalingBehavior": "DEFAULT",
               "Height": 720,
               "TimecodeInsertion": "DISABLED",
               "AntiAlias": "ENABLED",
               "Sharpness": 50,
               "CodecSettings": {
                 "Codec": "FRAME_CAPTURE",
                 "FrameCaptureSettings": {
                   "FramerateNumerator": 1,
                   "FramerateDenominator": 5,
                   "MaxCaptures": 500,
                   "Quality": 80
                 }
               },
               "AfdSignaling": "NONE",
               "DropFrameTimecode": "ENABLED",
               "RespondToAfd": "NONE",
               "ColorMetadata": "INSERT"
             }
           }
         ],
         "OutputGroupSettings": {
           "Type": "FILE_GROUP_SETTINGS",
           "FileGroupSettings": {
             "Destination": "s3://EXAMPLE-BUCKET/Thumbnails/",
             "DestinationSettings": {
               "S3Settings": {
                 "AccessControl": {
                   "CannedAcl": "PUBLIC_READ"
                 }
               }
             }
           }
         }
       }
     ],
     "AdAvailOffset": 0,
     "Inputs": [
       {
         "AudioSelectors": {
           "Audio Selector 1": {
             "Offset": 0,
             "DefaultSelection": "DEFAULT",
             "ProgramSelection": 1
           }
         },
         "VideoSelector": {
           "ColorSpace": "FOLLOW"
         },
         "FilterEnable": "AUTO",
         "PsiControl": "USE_PSI",
         "FilterStrength": 0,
         "DeblockFilter": "DISABLED",
         "DenoiseFilter": "DISABLED",
         "TimecodeSource": "EMBEDDED",
         "FileInput": "s3://EXAMPLE-INPUT-BUCKET/input.mp4"
       }
     ]
   }
   ```

1. Di `batch-transcode` folder, buat file dengan fungsi Lambda. Anda dapat menggunakan contoh Python berikut dan memberi nama file. `convert.py`

   Operasi Batch S3 mengirimkan data tugas tertentu ke fungsi Lambda dan memerlukan data hasil kembali. Untuk contoh permintaan dan respons untuk fungsi Lambda, informasi tentang kode respons dan hasil, dan contoh fungsi Lambda untuk Operasi Batch S3, lihat. [Memanggil fungsi AWS Lambda](batch-ops-invoke-lambda.md) 

   ```
   import json
   import os
   from urllib.parse import urlparse
   import uuid
   import boto3
   
   """
   When you run an S3 Batch Operations job, your job  
   invokes this Lambda function. Specifically, the Lambda function is 
   invoked on each video object listed in the manifest that you specify 
   for the S3 Batch Operations job in Step 5.  
   
   Input parameter "event": The S3 Batch Operations event as a request
                            for the Lambda function.
   
   Input parameter "context": Context about the event.
   
   Output: A result structure that Amazon S3 uses to interpret the result 
           of the operation. It is a job response returned back to S3 Batch Operations.
   """
   def handler(event, context):
   
       invocation_schema_version = event['invocationSchemaVersion']
       invocation_id = event['invocationId']
       task_id = event['tasks'][0]['taskId']
   
       source_s3_key = event['tasks'][0]['s3Key']
       source_s3_bucket = event['tasks'][0]['s3BucketArn'].split(':::')[-1]
       source_s3 = 's3://' + source_s3_bucket + '/' + source_s3_key
   
       result_list = []
       result_code = 'Succeeded'
       result_string = 'The input video object was converted successfully.'
   
       # The type of output group determines which media players can play 
       # the files transcoded by MediaConvert.
       # For more information, see [Creating outputs with AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/creating-streaming-and-file-outputs.html).
       output_group_type_dict = {
           'HLS_GROUP_SETTINGS': 'HlsGroupSettings',
           'FILE_GROUP_SETTINGS': 'FileGroupSettings',
           'CMAF_GROUP_SETTINGS': 'CmafGroupSettings',
           'DASH_ISO_GROUP_SETTINGS': 'DashIsoGroupSettings',
           'MS_SMOOTH_GROUP_SETTINGS': 'MsSmoothGroupSettings'
       }
   
       try:
           job_name = 'Default'
           with open('job.json') as file:
               job_settings = json.load(file)
   
           job_settings['Inputs'][0]['FileInput'] = source_s3
   
           # The path of each output video is constructed based on the values of 
           # the attributes in each object of OutputGroups in the job.json file. 
           destination_s3 = 's3://{0}/{1}/{2}' \
               .format(os.environ['amzn-s3-demo-destination-bucket'],
                       os.path.splitext(os.path.basename(source_s3_key))[0],
                       os.path.splitext(os.path.basename(job_name))[0])
   
           for output_group in job_settings['OutputGroups']:
               output_group_type = output_group['OutputGroupSettings']['Type']
               if output_group_type in output_group_type_dict.keys():
                   output_group_type = output_group_type_dict[output_group_type]
                   output_group['OutputGroupSettings'][output_group_type]['Destination'] = \
                       "{0}{1}".format(destination_s3,
                                       urlparse(output_group['OutputGroupSettings'][output_group_type]['Destination']).path)
               else:
                   raise ValueError("Exception: Unknown Output Group Type {}."
                                    .format(output_group_type))
   
           job_metadata_dict = {
               'assetID': str(uuid.uuid4()),
               'application': os.environ['Application'],
               'input': source_s3,
               'settings': job_name
           }
   
           region = os.environ['AWS_DEFAULT_REGION']
           endpoints = boto3.client('mediaconvert', region_name=region) \
               .describe_endpoints()
           client = boto3.client('mediaconvert', region_name=region, 
                                  endpoint_url=endpoints['Endpoints'][0]['Url'], 
                                  verify=False)
   
           try:
               client.create_job(Role=os.environ['MediaConvertRole'], 
                                 UserMetadata=job_metadata_dict, 
                                 Settings=job_settings)
           # You can customize error handling based on different error codes that 
           # MediaConvert can return.
           # For more information, see [MediaConvert error codes](https://docs.aws.amazon.com/mediaconvert/latest/ug/mediaconvert_error_codes.html). 
           # When the result_code is TemporaryFailure, S3 Batch Operations retries 
           # the task before the job is completed. If this is the final retry, 
           # the error message is included in the final report.
           except Exception as error:
               result_code = 'TemporaryFailure'
               raise
       
       except Exception as error:
           if result_code != 'TemporaryFailure':
               result_code = 'PermanentFailure'
           result_string = str(error)
   
       finally:
           result_list.append({
               'taskId': task_id,
               'resultCode': result_code,
               'resultString': result_string,
           })
   
       return {
           'invocationSchemaVersion': invocation_schema_version,
           'treatMissingKeyAs': 'PermanentFailure',
           'invocationId': invocation_id,
           'results': result_list
       }
   ```

1. Untuk membuat paket penyebaran dengan `convert.py` dan `job.json` sebagai `.zip` file bernama`lambda.zip`, di terminal lokal Anda, buka `batch-transcode` folder yang Anda buat sebelumnya, dan jalankan perintah berikut.

   Untuk **pengguna macOS**, jalankan perintah berikut:

   ```
   zip -r lambda.zip convert.py job.json                
   ```

   Untuk **pengguna Windows**, jalankan perintah berikut:

   ```
   powershell Compress-Archive convert.py lambda.zip
   ```

   ```
   powershell Compress-Archive -update job.json lambda.zip                
   ```

### Buat fungsi Lambda dengan peran eksekusi (konsol)
<a name="batchops-s3-step4-create-function"></a>

1. 

   Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi kiri, pilih **Fungsi**.

1. Pilih **Buat fungsi**.

1. Pilih **Penulis dari scratch**.

1. Di bagian **Informasi dasar**, lakukan hal berikut:

   1. Untuk **Nama fungsi**, masukkan **tutorial-lambda-convert**.

   1. Untuk **Runtime**, pilih **Python 3.13**.

1. Pilih **Ubah peran eksekusi default**, dan di bawah **Peran eksekusi**, pilih **Gunakan peran yang ada**.

1. Di bawah **Peran yang ada**, pilih nama peran IAM yang Anda buat untuk fungsi Lambda [di Langkah](#batchops-s3-step3) 3 (misalnya**tutorial-lambda-transcode-role**,).

1. Untuk pengaturan yang tersisa, pertahankan default.

1. Pilih **Buat fungsi**.

### Terapkan fungsi Lambda Anda dengan arsip file.zip dan konfigurasikan fungsi Lambda (konsol)
<a name="batchops-s3-step4-deploy-function"></a>

1. Di bagian **Sumber Kode** halaman untuk fungsi Lambda yang Anda buat (misalnya,**tutorial-lambda-convert**), pilih **Unggah dari** lalu **file.zip.**

1. Pilih **Unggah** untuk memilih `.zip` file lokal Anda.

1. Pilih `lambda.zip` file yang Anda buat sebelumnya, dan pilih **Buka**.

1. Pilih **Simpan**.

1. Di bagian **Pengaturan waktu proses**, pilih **Edit**. 

1. **Untuk memberi tahu runtime Lambda metode handler mana dalam kode fungsi Lambda Anda yang akan dipanggil, masukkan di bidang Handler. **convert.handler****

   Ketika Anda mengkonfigurasi fungsi dalam Python, nilai pengaturan handler adalah nama file dan nama modul handler, dipisahkan oleh titik (). `.` Misalnya, `convert.handler` memanggil `handler` metode yang didefinisikan dalam `convert.py` file.

1. Pilih **Simpan**.

1. Pada halaman fungsi Lambda Anda, pilih tab **Konfigurasi**. Di panel navigasi kiri pada tab **Konfigurasi**, pilih **Variabel lingkungan**, lalu pilih **Edit**.

1. Pilih **Tambahkan variabel lingkungan**. Kemudian, masukkan **Kunci** dan **Nilai** yang ditentukan untuk masing-masing variabel lingkungan berikut:
   + **Kunci**: **DestinationBucket** **Nilai**: **amzn-s3-demo-destination-bucket1** 

     Nilai ini adalah bucket S3 untuk file media keluaran yang Anda buat di [Langkah 1](#batchops-s3-step1).
   + **Kunci**: **MediaConvertRole** **Nilai**: **arn:aws:iam::*111122223333*:role/tutorial-mediaconvert-role** 

     [Nilai ini adalah ARN dari peran IAM untuk MediaConvert yang Anda buat di Langkah 2.](#batchops-s3-step2) Pastikan untuk mengganti ARN ini dengan ARN sebenarnya dari peran IAM Anda.
   + **Kunci**: **Application** **Nilai**: **Batch-Transcoding** 

     Nilai ini adalah nama aplikasi.

1. Pilih **Simpan**.

1. (Opsional) Pada tab **Konfigurasi**, di bagian **Konfigurasi umum** pada panel navigasi kiri, pilih **Edit**. Di bidang **Timeout**, masukkan **2** min **0** sec. Lalu, pilih **Simpan**.

   **Timeout** adalah jumlah waktu yang memungkinkan Lambda menjalankan fungsi untuk pemanggilan sebelum menghentikannya. Default-nya adalah 3 detik. Harga didasarkan pada jumlah memori yang dikonfigurasi dan jumlah waktu yang digunakan selama kode Anda berjalan. Untuk informasi selengkapnya, lihat [harga AWS Lambda](https://aws.amazon.com/lambda/pricing/?icmpid=docs_console_unmapped).

## Langkah 5: Konfigurasikan Inventaris Amazon S3 untuk bucket sumber S3 Anda
<a name="batchops-s3-step5"></a>

Setelah mengatur fungsi transcoding Lambda, buat pekerjaan Operasi Batch S3 untuk mentranskode satu set video. Pertama, Anda memerlukan daftar objek video masukan yang Anda inginkan Operasi Batch S3 untuk menjalankan tindakan transcoding yang ditentukan. Untuk mendapatkan daftar objek video masukan, Anda dapat membuat laporan Inventaris S3 untuk bucket sumber S3 Anda (misalnya,`amzn-s3-demo-source-bucket`). 

**Topics**
+ [Membuat dan mengonfigurasi bucket untuk laporan Inventaris S3 untuk video masukan](#batchops-s3-step5-bucket)
+ [Konfigurasikan Inventaris Amazon S3 untuk bucket sumber video S3 Anda](#batchops-s3-step5-inventory)
+ [Periksa laporan inventaris untuk bucket sumber video S3 Anda](#batchops-s3-step5-manifest)

### Membuat dan mengonfigurasi bucket untuk laporan Inventaris S3 untuk video masukan
<a name="batchops-s3-step5-bucket"></a>

Untuk menyimpan laporan Inventaris S3 yang mencantumkan objek bucket sumber S3, buat bucket tujuan Inventaris S3, lalu konfigurasikan kebijakan bucket untuk bucket untuk menulis file inventaris ke bucket sumber S3.

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Pilih **Buat bucket**. 

1. Untuk **nama Bucket**, masukkan nama untuk bucket Anda (misalnya,`amzn-s3-demo-destination-bucket2`). 

1. Untuk **Wilayah AWS**, pilih di Wilayah AWS mana Anda ingin ember berada. 

   Bucket tujuan inventaris harus Wilayah AWS sama dengan bucket sumber tempat Anda menyiapkan Inventaris S3. Bucket tujuan inventaris bisa berbeda Akun AWS. 

1. Di **pengaturan Blokir Akses Publik untuk bucket ini**, pertahankan pengaturan default (**Blokir *semua* akses publik** diaktifkan). 

1. Untuk pengaturan yang tersisa, pertahankan default. 

1. Pilih **Buat bucket**.

1. Dalam daftar **Bucket**, pilih nama bucket yang baru saja Anda buat (misalnya,`amzn-s3-demo-destination-bucket2`).

1. **Untuk memberikan izin Amazon S3 untuk menulis data laporan inventaris ke bucket tujuan Inventaris S3, pilih tab Izin.**

1. Gulir ke bawah ke bagian **Kebijakan Bucket**, lalu pilih **Edit**. Halaman **kebijakan Bucket** terbuka.

1. Untuk memberikan izin untuk Inventaris S3, di bidang **Kebijakan**, tempel kebijakan bucket berikut.

   Ganti tiga nilai contoh dengan nilai-nilai berikut: 
   + Nama bucket yang Anda buat untuk menyimpan laporan inventaris (misalnya,`amzn-s3-demo-destination-bucket2`).
   + Nama bucket sumber yang menyimpan video input (misalnya,`amzn-s3-demo-source-bucket`). 
   +  Akun AWS ID yang Anda gunakan untuk membuat bucket sumber video S3 (misalnya,`111122223333`.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement":[
       {
         "Sid":"InventoryAndAnalyticsExamplePolicy",
         "Effect":"Allow",
         "Principal": {"Service": "s3.amazonaws.com"},
         "Action":"s3:PutObject",
         "Resource":["arn:aws:s3:::amzn-s3-demo-destination-bucket2/*"],
         "Condition": {
             "ArnLike": {
                 "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
              },
            "StringEquals": {
                "aws:SourceAccount": "111122223333",
                "s3:x-amz-acl": "bucket-owner-full-control"
             }
          }
       }
     ]
   }
   ```

------

1. Pilih **Simpan perubahan**.

### Konfigurasikan Inventaris Amazon S3 untuk bucket sumber video S3 Anda
<a name="batchops-s3-step5-inventory"></a>

Untuk membuat daftar file datar objek video dan metadata, Anda harus mengonfigurasi S3 Inventory untuk bucket sumber video S3 Anda. Laporan inventaris terjadwal ini dapat menyertakan semua objek dalam bucket atau objek yang dikelompokkan berdasarkan awalan bersama. Dalam tutorial ini, laporan S3 Inventory mencakup semua objek video di bucket sumber S3 Anda.

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Untuk mengonfigurasi laporan Inventaris S3 dari video masukan di bucket sumber S3, dalam daftar **Bucket**, pilih nama bucket sumber S3 (misalnya,). `amzn-s3-demo-source-bucket`

1. Pilih tab **Manajemen**.

1. Gulir ke bawah ke bagian **Konfigurasi inventaris**, dan pilih **Buat konfigurasi inventaris**. 

1. Untuk **nama konfigurasi Inventaris**, masukkan nama (misalnya,**tutorial-inventory-config**). 

1. Di bawah **lingkup Inventaris**, pilih **Versi saat ini hanya** untuk **versi Objek** dan simpan pengaturan **cakupan Inventaris** lainnya disetel ke default untuk tutorial ini. 

1. Di bagian **Laporkan detail**, untuk **bucket Tujuan**, pilih **Akun ini**. 

1. Untuk **Tujuan**, pilih **Jelajahi S3**, dan pilih bucket tujuan yang Anda buat sebelumnya untuk menyimpan laporan inventaris (misalnya,`amzn-s3-demo-destination-bucket2`). Kemudian, pilih **Pilih jalur**. 

   Bucket tujuan inventaris harus Wilayah AWS sama dengan bucket sumber tempat Anda menyiapkan Inventaris S3. Bucket tujuan inventaris bisa berbeda Akun AWS. 

   Di bagian bucket **Destination**, **izin bucket Destination** ditambahkan ke kebijakan bucket tujuan inventaris, yang memungkinkan Amazon S3 menempatkan data di bucket tujuan inventaris. Untuk informasi selengkapnya, lihat [Membuat kebijakan bucket tujuan](configure-inventory.md#configure-inventory-destination-bucket-policy).

1. Untuk **Frekuensi**, pilih **Harian**.

1. Untuk **Format output**, pilih **CSV**. 

1. Untuk **Status**, pilih **Aktifkan**. 

1. Di bagian **enkripsi sisi server**, pilih **Nonaktifkan** untuk tutorial ini. 

   Untuk informasi selengkapnya, lihat [Mengonfigurasi inventaris dengan menggunakan konsol S3](configure-inventory.md#configure-inventory-console) dan [Memberikan izin kepada Amazon S3 untuk menggunakan CMK untuk enkripsi](configure-inventory.md#configure-inventory-kms-key-policy). 

1. Di **bidang tambahan - bagian *opsional***, pilih **Ukuran**, **Terakhir dimodifikasi**, dan **kelas Penyimpanan**. 

1. Pilih **Buat**.

Untuk informasi selengkapnya, lihat [Mengonfigurasi inventaris dengan menggunakan konsol S3](configure-inventory.md#configure-inventory-console).

### Periksa laporan inventaris untuk bucket sumber video S3 Anda
<a name="batchops-s3-step5-manifest"></a>

Saat laporan inventaris diterbitkan, file manifes dikirim ke bucket tujuan Inventaris S3.

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam daftar **Bucket**, pilih nama bucket sumber video (misalnya,`amzn-s3-demo-source-bucket`).

1. Pilih **Manajemen**.

1. Untuk melihat apakah laporan Inventaris S3 Anda sudah siap sehingga Anda dapat membuat pekerjaan Operasi Batch S3 di [Langkah 7](#batchops-s3-step7), di bawah **konfigurasi Inventaris**, periksa apakah tombol **Buat pekerjaan dari manifes diaktifkan**.
**catatan**  
Diperlukan waktu hingga 48 jam untuk mengirimkan laporan inventaris pertama. Jika tombol **Buat pekerjaan dari manifes** dinonaktifkan, laporan inventaris pertama belum terkirim. Tunggu hingga laporan inventaris pertama dikirimkan dan tombol **Buat pekerjaan dari manifes** diaktifkan sebelum Anda membuat pekerjaan Operasi Batch S3 di [Langkah 7](#batchops-s3-step7). 

1. Untuk memeriksa laporan Inventaris S3 (`manifest.json`), di kolom **Tujuan**, pilih nama bucket tujuan inventaris yang Anda buat sebelumnya untuk menyimpan laporan inventaris (misalnya,`amzn-s3-demo-destination-bucket2`).

1. Pada tab **Objects**, pilih folder yang ada dengan nama bucket sumber S3 Anda (misalnya,`amzn-s3-demo-source-bucket`). Kemudian pilih nama yang Anda masukkan dalam **nama konfigurasi Inventaris** saat Anda membuat konfigurasi inventaris sebelumnya (misalnya,**tutorial-inventory-config**).

   Anda dapat melihat daftar folder dengan tanggal pembuatan laporan sebagai namanya. 

1. Untuk memeriksa laporan Inventaris S3 harian untuk tanggal tertentu, pilih folder dengan nama tanggal pembuatan yang sesuai, lalu pilih`manifest.json`. 

1. ****Untuk memeriksa detail laporan inventaris pada tanggal tertentu, pada halaman **manifest.json**, pilih Unduh atau Buka.****

## Langkah 6: Buat peran IAM untuk Operasi Batch S3
<a name="batchops-s3-step6"></a>

Untuk menggunakan Operasi Batch S3 untuk melakukan transcoding batch, Anda harus terlebih dahulu membuat peran IAM untuk memberikan izin Amazon S3 untuk melakukan Operasi Batch S3. 

**Topics**
+ [Membuat kebijakan IAM untuk Operasi Batch S3](#batchops-s3-step6-policy)
+ [Buat peran IAM Operasi Batch S3 dan lampirkan kebijakan izin](#batchops-s3-step6-role)

### Membuat kebijakan IAM untuk Operasi Batch S3
<a name="batchops-s3-step6-policy"></a>

Anda harus membuat kebijakan IAM yang memberikan izin Operasi Batch S3 untuk membaca manifes masukan, menjalankan fungsi Lambda, dan menulis laporan penyelesaian pekerjaan Operasi Batch S3. 

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi di sebelah kiri, pilih **Kebijakan**.

1. Pilih **Buat kebijakan**.

1. Pilih tab **JSON**.

1. Di bidang teks **JSON**, tempel kebijakan JSON berikut.

   Dalam kebijakan JSON, ganti empat nilai contoh dengan nilai berikut:
   + Nama bucket sumber yang menyimpan video masukan Anda (misalnya,`amzn-s3-demo-source-bucket`).
   + Nama bucket tujuan inventaris yang Anda buat di [Langkah 5](#batchops-s3-step5) untuk menyimpan `manifest.json` file (misalnya,`amzn-s3-demo-destination-bucket2`).
   + Nama bucket yang Anda buat di [Langkah 1](#batchops-s3-step1) untuk menyimpan file media keluaran (misalnya,`amzn-s3-demo-destination-bucket1`). Dalam tutorial ini, kita menempatkan laporan penyelesaian pekerjaan di bucket tujuan untuk file media output. 
   + [Peran ARN dari fungsi Lambda yang Anda buat di Langkah 4.](#batchops-s3-step4) Untuk menemukan dan menyalin peran ARN dari fungsi Lambda, lakukan hal berikut: 
     + Di tab browser baru, buka halaman **Fungsi** di konsol Lambda di. [https://console.aws.amazon.com/lambda/home#/functions](https://console.aws.amazon.com/lambda/home#/functions)
     + Dalam daftar **Fungsi**, pilih nama fungsi Lambda yang Anda buat di [Langkah 4](#batchops-s3-step4) (misalnya,**tutorial-lambda-convert**).
     + Pilih **Salin ARN**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "S3Get",
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:GetObjectVersion"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-source-bucket/*",
                   "arn:aws:s3:::amzn-s3-demo-destination-bucket2/*"
               ]
           },
           {
               "Sid": "S3PutJobCompletionReport",
               "Effect": "Allow",
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket1/*"
           },
           {
               "Sid": "S3BatchOperationsInvokeLambda",
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:us-west-2:111122223333:function:tutorial-lambda-convert"
               ]
           }
       ]
   }
   ```

------

1. Pilih **Berikutnya: Tanda**.

1. Pilih **Berikutnya: Tinjau**.

1. Di bidang **Nama**, masukkan **tutorial-s3batch-policy**.

1. Pilih **Buat kebijakan**.

### Buat peran IAM Operasi Batch S3 dan lampirkan kebijakan izin
<a name="batchops-s3-step6-role"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi kiri, pilih **Peran**, lalu pilih **Buat peran**.

1. Pilih jenis **Layanan AWS**peran, lalu pilih layanan **S3**.

1. Di bawah **Pilih kasus penggunaan Anda**, pilih **Operasi Batch S3**.

1. Pilih **Berikutnya**.

1. Di bawah **Lampirkan izin**, masukkan nama kebijakan IAM yang Anda buat sebelumnya (misalnya,**tutorial-s3batch-policy**) di kotak pencarian untuk memfilter daftar kebijakan. Pilih kotak centang di samping nama kebijakan (misalnya,**tutorial-s3batch-policy**). 

1. Pilih **Berikutnya**.

1. Untuk **Nama peran**, masukkan **tutorial-s3batch-role**.

1. Pilih **Buat peran**.

   Setelah Anda membuat peran IAM untuk Operasi Batch S3, kebijakan kepercayaan berikut secara otomatis dilampirkan ke peran tersebut. Kebijakan kepercayaan ini memungkinkan prinsipal layanan Operasi Batch S3 untuk mengambil peran IAM.

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"batchoperations.s3.amazonaws.com"
            },
            "Action":"sts:AssumeRole"
         }
      ]
   }
   ```

------

## Langkah 7: Buat dan jalankan pekerjaan Operasi Batch S3
<a name="batchops-s3-step7"></a>

Untuk membuat tugas Operasi Batch S3 untuk memproses video input di bucket sumber S3, Anda harus menentukan parameter untuk pekerjaan khusus ini.

**catatan**  
Sebelum Anda mulai membuat pekerjaan Operasi Batch S3, pastikan tombol **Buat pekerjaan dari manifes** diaktifkan. Untuk informasi selengkapnya, lihat [Periksa laporan inventaris untuk bucket sumber video S3 Anda](#batchops-s3-step5-manifest). Jika tombol **Buat pekerjaan dari manifes** dinonaktifkan, laporan inventaris pertama belum terkirim dan Anda harus menunggu hingga tombol diaktifkan. Setelah mengonfigurasi Inventaris Amazon S3 untuk bucket sumber S3 di [Langkah 5](#batchops-s3-step5), diperlukan waktu hingga 48 jam untuk mengirimkan laporan inventaris pertama.

**Topics**
+ [Membuat tugas Operasi Batch S3](#batchops-s3-step7-create-job)
+ [Jalankan tugas Operasi Batch S3 untuk menginvokasi fungsi Lambda Anda](#batchops-s3-step7-run-job)
+ [(Opsional) Memeriksa laporan penyelesaian Anda](#batchops-s3-step7-check-report)
+ [(Opsional) Memantau setiap invokasi Lambda di konsol Lambda](#batchops-s3-step7-monitor-lambda)
+ [(Opsional) Pantau setiap pekerjaan MediaConvert transcoding video di konsol MediaConvert](#batchops-s3-step7-monitor-mediaconvert)

### Membuat tugas Operasi Batch S3
<a name="batchops-s3-step7-create-job"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Operasi Batch**.

1. Pilih **Buat tugas**.

1. Untuk **Wilayah AWS**, pilih Wilayah tempat Anda ingin membuat tugas Anda.

   Dalam tutorial ini, untuk menggunakan tugas Operasi Batch S3 untuk menginvokasi fungsi Lambda, Anda harus membuat tugas di Wilayah yang sama dengan bucket sumber video S3 tempat objek yang direferensikan dalam manifes tersebut berada.

1. Di bagian **Manifes**, lakukan hal berikut ini:

   1. Untuk **Format manifes**, pilih **Laporan Inventaris S3 (manifest.json)**.

   1. Untuk **Objek manifes**, pilih **Telusuri S3** untuk menemukan bucket yang Anda buat di [Langkah 5](#batchops-s3-step5) untuk menyimpan laporan inventaris (misalnya, `amzn-s3-demo-destination-bucket2`). Pada halaman **Objek manifes**, navigasikan nama objek hingga Anda menemukan file `manifest.json` untuk tanggal tertentu. File ini mencantumkan informasi tentang semua video yang transkode batch-nya ingin Anda lakukan. Ketika Anda telah menemukan file `manifest.json` yang ingin Anda gunakan, pilih tombol opsi di sebelahnya. Kemudian, pilih **Pilih jalur**.

   1. (Opsional) Untuk **ID versi objek manifes-*opsional***, masukkan ID versi untuk objek manifes jika Anda ingin menggunakan versi selain yang terbaru.

1. Pilih **Berikutnya**.

1. Untuk menggunakan fungsi Lambda untuk mentranskode semua objek yang terdaftar dalam file `manifest.json` yang dipilih, di bawah **Jenis operasi**, pilih **Menginvokasi fungsi AWS Lambda **.

1. Di bagian **Menginvokasi fungsi Lambda**, lakukan hal berikut ini:

   1. Pilih **Pilih dari fungsi di akun Anda**.

   1. Untuk **Fungsi Lambda**, pilih nama fungsi Lambda yang telah Anda buat di [Langkah 4](#batchops-s3-step4) (misalnya, **tutorial-lambda-convert**).

   1. Untuk **Versi fungsi Lambda**, pertahankan nilai default **\$1LATEST**.

1. Pilih **Berikutnya**. Halaman **Konfigurasi opsi tambahan** terbuka.

1. Di bagian **Opsi tambahan**, pertahankan pengaturan default.

   Untuk informasi selengkapnya tentang opsi ini, lihat [Elemen permintaan pekerjaan Operasi Batch](batch-ops-create-job.md#batch-ops-create-job-request-elements).

1. Di bagian **Laporan penyelesaian**, untuk **Jalur ke tujuan laporan penyelesaian**, pilih **Telusuri S3**. Temukan bucket yang telah Anda buat untuk file media output di [Langkah 1](#batchops-s3-step1) (misalnya, `amzn-s3-demo-destination-bucket1`). Pilih tombol opsi di sebelah nama bucket tersebut. Kemudian, pilih **Pilih jalur**.

   Untuk pengaturan **Laporan penyelesaian** yang tersisa, pertahankan defaultnya. Untuk informasi selengkapnya tentang pengaturan laporan penyelesaian, lihat [Elemen permintaan pekerjaan Operasi Batch](batch-ops-create-job.md#batch-ops-create-job-request-elements). Laporan penyelesaian menyimpan catatan detail tugas dan operasi yang dilakukan.

1. Di bagian **Izin**, pilih **Pilih dari peran IAM yang ada**. Untuk **Peran IAM**, pilih peran IAM untuk tugas Operasi Batch S3 yang Anda buat di [Langkah 6](#batchops-s3-step6) (misalnya, **tutorial-s3batch-role**).

1. Pilih **Berikutnya**.

1. Pada halaman **Ulasan**, tinjau pengaturannya. Lalu, pilih **Buat tugas**.

   Setelah S3 selesai membaca manifes tugas Operasi Batch S3 Anda, itu akan menetapkan **Status** tugas menjadi **Menunggu konfirmasi Anda untuk menjalankan**. Untuk melihat pembaruan status tugas, segarkan halaman. Anda tidak dapat menjalankan tugas Anda sampai statusnya **Menunggu konfirmasi Anda untuk menjalankan**.

### Jalankan tugas Operasi Batch S3 untuk menginvokasi fungsi Lambda Anda
<a name="batchops-s3-step7-run-job"></a>

Jalankan tugas Operasi Batch Anda untuk menginvokasi fungsi Lambda untuk transkode video. Jika tugas Anda gagal, Anda dapat memeriksa laporan penyelesaian Anda untuk mengidentifikasi penyebabnya.

**Untuk menjalankan tugas Operasi Batch S3**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Operasi Batch**.

1. Dalam daftar **Tugas**, pilih **ID tugas** di baris pertama, yang merupakan tugas Operasi Batch S3 yang telah Anda buat sebelumnya.

1. Pilih **Jalankan tugas**. 

1. Tinjau kembali parameter tugas Anda, dan konfirmasikan bahwa nilai untuk **Total objek yang tercantum dalam temuan** sama dengan jumlah objek dalam manifes tersebut. Lalu, pilih **Jalankan tugas**.

   Halaman tugas Operasi Batch S3 Anda terbuka.

1. Setelah tugas mulai berjalan, pada halaman tugas Anda, di bawah **Status**, periksa kemajuan tugas Operasi Batch S3 Anda, seperti **Status**, **% Selesai**, **Total yang berhasil (laju)**, **Total yang gagal (laju)**, **Tanggal dihentikan**, dan **Alasan terminasi**.

   Saat tugas Operasi Batch S3 selesai, lihat data di halaman tugas Anda untuk mengonfirmasi bahwa tugas selesai seperti yang diharapkan. 

   Jika lebih dari 50 persen operasi objek tugas Operasi Batch S3 gagal setelah lebih dari 1.000 pengoperasian yang telah dicoba, tugas tersebut secara otomatis gagal. Untuk memeriksa laporan penyelesaian Anda guna mengidentifikasi penyebab kegagalan, gunakan prosedur opsional berikut ini.

### (Opsional) Memeriksa laporan penyelesaian Anda
<a name="batchops-s3-step7-check-report"></a>

Anda dapat menggunakan laporan penyelesaian untuk menentukan objek mana yang gagal, serta penyebab kegagalannya.

**Untuk memeriksa laporan penyelesaian Anda terkait detail mengenai objek yang gagal**

1. Pada halaman tugas Operasi Batch S3 Anda, gulir ke bawah ke bagian **Laporan penyelesaian**, dan pilih tautan di bawah **Tujuan laporan penyelesaian**.

   Halaman bucket tujuan output S3 terbuka.

1. Pada tab **Objek**, pilih folder yang memiliki nama yang diakhiri dengan ID tugas Operasi Batch S3 yang telah Anda buat sebelumnya.

1. Pilih **hasil/**.

1. Centang kotak di samping file `.csv`.

1. Untuk melihat laporan tugas, pilih **Buka** atau **Unduh**.

### (Opsional) Memantau setiap invokasi Lambda di konsol Lambda
<a name="batchops-s3-step7-monitor-lambda"></a>

Setelah tugas Operasi Batch S3 mulai berjalan, tugas akan memanggil fungsi Lambda untuk setiap objek video input. S3 menulis log dari setiap pemanggilan CloudWatch Lambda ke Log. Anda dapat menggunakan dasbor pemantauan konsol Lambda untuk memantau fungsi Lambda Anda. 

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi kiri, pilih **Fungsi**.

1. Dalam daftar **Fungsi**, pilih nama fungsi Lambda yang Anda buat di [Langkah 4](#batchops-s3-step4) (misalnya, **tutorial-lambda-convert**).

1. Pilih tab **Monitor**.

1. Di bawah **Metrik**, lihat metrik runtime untuk fungsi Lambda Anda.

1. Di bawah **Log**, lihat data log untuk setiap pemanggilan Lambda melalui Wawasan Log. CloudWatch 
**catatan**  
Saat Anda menggunakan Operasi Batch S3 dengan fungsi Lambda, fungsi Lambda dipanggil pada setiap objek. Jika tugas Operasi Batch S3 Anda berukuran besar, tugas ini dapat menginvokasi beberapa fungsi Lambda secara bersamaan, yang menyebabkan lonjakan konkurensi Lambda.   
Masing-masing Akun AWS memiliki kuota konkurensi Lambda per Wilayah. Untuk informasi selengkapnya, lihat [AWS Lambda Penskalaan Fungsi](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html) dalam *AWS Lambda Panduan Pengembang*. Praktik terbaik untuk menggunakan fungsi Lambda dengan Operasi Batch S3 adalah dengan menetapkan batas konkurensi pada fungsi Lambda itu sendiri. Menetapkan batas konkurensi membuat tugas tidak menghabiskan sebagian besar konkurensi Lambda Anda, dan berpotensi throttling fungsi lain di akun Anda. Untuk informasi selengkapnya, lihat [Mengelola konkurensi cadangan Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html) di *AWS Lambda Panduan Pengembang*.

### (Opsional) Pantau setiap pekerjaan MediaConvert transcoding video di konsol MediaConvert
<a name="batchops-s3-step7-monitor-mediaconvert"></a>

 MediaConvert Pekerjaan melakukan pekerjaan transcoding file media. Saat pekerjaan Operasi Batch S3 Anda memanggil fungsi Lambda Anda untuk setiap video, setiap pemanggilan fungsi Lambda membuat pekerjaan transcoding untuk setiap video input. MediaConvert 

1. Masuk ke Konsol Manajemen AWS dan buka MediaConvert konsol di [https://console.aws.amazon.com/mediaconvert/](https://console.aws.amazon.com/mediaconvert/).

1. Jika halaman MediaConvert pengantar muncul, pilih **Memulai**.

1. Dari daftar **Tugas**, lihat setiap baris untuk memantau tugas transkode bagi setiap video input. 

1. Identifikasi baris tugas yang ingin Anda periksa, dan pilih tautan **ID tugas** untuk membuka halaman detail tugas.

1. Pada halaman **ringkasan Job**, di bawah **Output**, pilih tautan untuk output HLS, MP4, atau Thumbnail, tergantung pada apa yang didukung oleh browser Anda, untuk membuka bucket tujuan S3 untuk file media keluaran.

1. Di folder yang sesuai (HLS, MP4, atau Thumbnail) bucket tujuan keluaran S3 Anda, pilih nama objek file media keluaran.

   Halaman detail objek terbuka.

1. Pada halaman detail objek, di bawah **Ikhtisar objek**, pilih tautan di bawah **URL objek** untuk menonton file media output yang telah ditranskode.

## Langkah 8: Memeriksa file media output dari bucket tujuan S3 Anda
<a name="batchops-s3-step8"></a>

**Untuk memeriksa file media output dari bucket tujuan S3 Anda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam daftar **Bucket**, pilih nama bucket tujuan S3 untuk file media output yang Anda buat di [Langkah 1](#batchops-s3-step1) (misalnya, `amzn-s3-demo-destination-bucket1`).

1. Pada tab **Objek**, setiap video input memiliki folder yang memiliki nama video input. Setiap folder berisi file media output transkode untuk video input.

   Untuk memeriksa file media output untuk video input, lakukan hal berikut ini:

   1. Pilih folder dengan nama video input yang ingin Anda periksa.

   1. Pilih folder **Default/**.

   1. Pilih folder untuk format transkode (HLS, MP4, atau thumbnail dalam tutorial ini). 

   1. Pilih nama file media output.

   1. Untuk melihat file yang ditranskode, pada halaman detail objek, pilih tautan di bawah **URL Objek**. 

      File media output dalam format HLS dibagi menjadi segmen-segmen yang pendek. Untuk memutar video ini, sematkan URL objek file `.m3u8` di pemutar yang kompatibel.

## Langkah 9: Membersihkan
<a name="batchops-s3-step9"></a>

Jika Anda melakukan transkode video menggunakan Operasi Batch S3, Lambda, MediaConvert dan hanya sebagai latihan pembelajaran, hapus AWS sumber daya yang Anda alokasikan sehingga Anda tidak lagi dikenakan biaya. 

**Topics**
+ [Hapus konfigurasi Inventaris S3 untuk bucket sumber S3 Anda](#batchops-s3-step9-delete-inventory)
+ [Hapus fungsi Lambda](#batchops-s3-step9-delete-lambda)
+ [Hapus grup CloudWatch log](#batchops-s3-step9-delete-cw)
+ [Menghapus peran IAM bersama dengan kebijakan inline untuk peran IAM](#batchops-s3-step9-delete-role)
+ [Hapus kebijakan IAM yang dikelola pelanggan](#batchops-s3-step9-delete-policy)
+ [Kosongkan bucket S3](#batchops-s3-step9-empty-bucket)
+ [Menghapus bucket S3](#batchops-s3-step9-delete-bucket)

### Hapus konfigurasi Inventaris S3 untuk bucket sumber S3 Anda
<a name="batchops-s3-step9-delete-inventory"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dalam daftar **Bucket**, pilih nama bucket sumber Anda (misalnya, `amzn-s3-demo-source-bucket`).

1. Pilih tab **Manajemen**.

1. Di bagian **Konfigurasi inventaris**, pilih tombol opsi di sebelah konfigurasi inventaris yang Anda buat di [Langkah 5](#batchops-s3-step5) (misalnya, **tutorial-inventory-config**).

1. Pilih **Hapus**, lalu pilih **Konfirmasi**.

### Hapus fungsi Lambda
<a name="batchops-s3-step9-delete-lambda"></a>

1. 

   Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi kiri, pilih **Fungsi**.

1. Centang kotak di samping fungsi yang Anda buat di [Langkah 4](#batchops-s3-step4) (misalnya, **tutorial-lambda-convert**).

1. Pilih **Tindakan**, lalu pilih **Hapus**.

1. Di kotak dialog **Hapus fungsi**, pilih **Hapus**.

### Hapus grup CloudWatch log
<a name="batchops-s3-step9-delete-cw"></a>

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi sebelah kiri, pilih **Log**, lalu pilih **Grup log**.

1. Pilih kotak centang di samping grup log yang memiliki nama yang diakhiri dengan fungsi Lambda yang Anda buat di [Langkah 4](#batchops-s3-step4) (misalnya, **tutorial-lambda-convert**).

1. Pilih **Tindakan**, lalu pilih **Hapus grup log**.

1. Di kotak dialog **Hapus grup log**, pilih **Hapus**.

### Menghapus peran IAM bersama dengan kebijakan inline untuk peran IAM
<a name="batchops-s3-step9-delete-role"></a>

Untuk menghapus peran IAM yang Anda buat di [Langkah 2](#batchops-s3-step2), [Langkah 3](#batchops-s3-step3), dan [Langkah 6](#batchops-s3-step6), lakukan hal berikut ini: 

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi sebelah kiri, pilih **Peran**, lalu centang kotak di samping nama peran yang ingin Anda hapus.

1. Pilih **Hapus** di bagian atas halaman.

1. Di dalam kotak dialog konfirmasi, masukkan respons yang diperlukan di dalam kolom input teks berdasarkan prompt, lalu pilih **Hapus**. 

### Hapus kebijakan IAM yang dikelola pelanggan
<a name="batchops-s3-step9-delete-policy"></a>

Untuk menghapus kebijakan IAM yang dikelola pelanggan yang Anda buat di [Langkah 6](#batchops-s3-step6), lakukan hal berikut ini:

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi di sebelah kiri, pilih **Kebijakan**.

1. Pilih tombol opsi di samping kebijakan yang Anda buat di [Langkah 6](#batchops-s3-step6) (misalnya, **tutorial-s3batch-policy**). Anda dapat menggunakan kotak pencarian untuk memfilter daftar kebijakan.

1. Pilih **Tindakan**, lalu pilih **Hapus**. 

1. Konfirmasi bahwa Anda ingin menghapus kebijakan ini dengan memasukkan namanya di kolom teks, lalu pilih **Hapus**. 

### Kosongkan bucket S3
<a name="batchops-s3-step9-empty-bucket"></a>

Untuk mengosongkan bucket S3 yang Anda buat di [Prasyarat](#batchops-s3-prerequisites), [Langkah 1](#batchops-s3-step1), dan [Langkah](#batchops-s3-step5) 5, lakukan hal berikut ini: 

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Di daftar **Bucket**, pilih tombol opsi di samping nama bucket yang ingin Anda kosongkan, lalu pilih **Kosongkan**.

1. Di halaman **Bucket kosong**, konfirmasikan bahwa Anda ingin mengosongkan bucket dengan mengetik **permanently delete** ke dalam bidang teks, lalu pilih **Kosongkan**.

### Menghapus bucket S3
<a name="batchops-s3-step9-delete-bucket"></a>

Untuk menghapus bucket S3 yang Anda buat di [Prasyarat](#batchops-s3-prerequisites), [Langkah 1](#batchops-s3-step1), dan [Langkah](#batchops-s3-step5) 5, lakukan hal berikut ini: 

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Di dalam daftar **Bucket**, pilih tombol opsi di samping nama bucket yang ingin Anda hapus.

1. Pilih **Hapus**.

1. Di halaman **Hapus bucket**, konfirmasikan bahwa Anda ingin menghapus bucket dengan memasukkan nama bucket ke dalam bidang teks, lalu pilih **Hapus bucket**.

## Langkah selanjutnya
<a name="batchops-s3-next-steps"></a>

Setelah menyelesaikan tutorial ini, Anda dapat menjelajahi lebih lanjut kasus penggunaan relevan lainnya:
+ Anda dapat menggunakan Amazon CloudFront untuk melakukan streaming file media yang ditranskode ke pemirsa di seluruh dunia. Untuk informasi selengkapnya, lihat [Tutorial: Hosting video streaming sesuai permintaan dengan Amazon S3, Amazon, dan CloudFront Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md).
+ Anda dapat mentranskode video saat Anda mengunggahnya ke bucket sumber S3. Untuk melakukannya, Anda dapat mengonfigurasi pemicu peristiwa Amazon S3 yang secara otomatis memanggil fungsi Lambda untuk mentranskode objek baru di S3. MediaConvert Untuk informasi selengkapnya, lihat [Tutorial: Menggunakan pemicu Amazon S3 untuk menginvokasi fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) di *AWS Lambda Panduan Pengembang*. 