Contoh: Buat AWS CodeCommit pemicu untuk suatu AWS Lambda fungsi - AWS CodeCommit

AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”

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

Contoh: Buat AWS CodeCommit pemicu untuk suatu AWS Lambda fungsi

Anda dapat membuat pemicu untuk CodeCommit repositori sehingga peristiwa di repositori memanggil fungsi Lambda. Dalam contoh ini, Anda membuat fungsi Lambda yang mengembalikan yang URL digunakan untuk mengkloning repositori ke log Amazon. CloudWatch

Buat fungsi Lambda

Saat Anda menggunakan konsol Lambda untuk membuat fungsi, Anda juga dapat membuat CodeCommit pemicu untuk fungsi Lambda. Langkah-langkah berikut termasuk contoh fungsi Lambda. Sampel tersedia dalam dua bahasa: JavaScript dan Python. Fungsi mengembalikan yang URLs digunakan untuk kloning repositori ke log. CloudWatch

Buatlah sebuah fungsi Lambda menggunakan cetak biru Lambda
  1. Masuk ke AWS Management Console dan buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Pada halaman Fungsi Lambda, pilih Buat fungsi. (Jika Anda belum pernah menggunakan Lambda sebelumnya, pilih Mulai Sekarang.)

  3. Pilih halaman Buat fungsi, pilih Penulis dari scratch. Di Nama Fungsi, berikan nama untuk fungsi tersebut, misalnya MyLambdaFunctionforCodeCommit. Di Runtime, pilih bahasa yang ingin Anda gunakan untuk menulis fungsi Anda, lalu pilih Buat fungsi.

  4. Pada tab Konfigurasi, pilih Tambah pemicu.

  5. Dalam konfigurasi Trigger, pilih CodeCommitdari daftar drop-down layanan.

    Membuat sebuah repositori dari konsol

    • Di Nama repositori, pilih nama repositori di mana Anda ingin mengkonfigurasi pemicu yang menggunakan fungsi Lambda dalam menanggapi peristiwa repositori.

    • Di nama Pemicu, masukkan nama untuk pemicu (misalnya, MyLambdaFunctionTrigger).

    • Di Peristiwa, pilih peristiwa repositori yang memicu fungsi Lambda. Jika Anda memilih Semua peristiwa repositori, Anda tidak dapat memilih peristiwa lainnya. Jika Anda ingin memilih subset dari peristiwa, bersihkan Semua peristiwa repositori, dan kemudian pilih peristiwa yang Anda inginkan dari daftar. Misalnya, jika Anda ingin pemicu berjalan hanya ketika pengguna membuat tag atau cabang di AWS CodeCommit repositori, hapus Semua peristiwa repositori, lalu pilih Buat cabang atau tag.

    • Jika Anda ingin pemicu untuk diterapkan ke semua cabang repositori, di Cabang, pilih Semua cabang. Jika tidak, pilih Cabang khusus. Cabang default untuk repositori ditambahkan secara default. Anda dapat menyimpan atau menghapus cabang ini dari daftar. Pilih hingga 10 nama cabang dari daftar cabang repositori.

    • (Opsional) Di Data kustom, masukkan informasi yang ingin Anda sertakan dalam fungsi Lambda (misalnya, nama IRC saluran yang digunakan oleh pengembang untuk membahas pengembangan di repositori). Bidang ini adalah string. Ini tidak dapat digunakan untuk melewati parameter dinamis.

    Pilih Tambahkan.

  6. Pada halaman Konfigurasi, di Kode Fungsi, di Jenis entri kode, pilih Edit kode sebaris.. Di Runtime, pilih Node.js. Jika anda ingin membuat sebuah sampel fungsi Python, pilih Python.

  7. Di Jenis entri kode, pilih Edit kode inline, dan kemudian gganti kode hello world dengan salah satu dari dua contoh berikut.

    Untuk Node.js:

    import { CodeCommitClient, GetRepositoryCommand, } from "@aws-sdk/client-codecommit"; const codecommit = new CodeCommitClient({ region: "your-region" }); /** * @param {{ Records: { codecommit: { references: { ref: string }[] }, eventSourceARN: string }[]} event */ export const handler = async (event) => { // Log the updated references from the event const references = event.Records[0].codecommit.references.map( (reference) => reference.ref, ); console.log("References:", references); // Get the repository from the event and show its git clone URL const repository = event.Records[0].eventSourceARN.split(":")[5]; const params = { repositoryName: repository, }; try { const data = await codecommit.send(new GetRepositoryCommand(params)); console.log("Clone URL:", data.repositoryMetadata.cloneUrlHttp); return data.repositoryMetadata.cloneUrlHttp; } catch (error) { console.error("Error:", error); throw new Error( `Error getting repository metadata for repository ${repository}`, ); } };

    Untuk Python:

    import json import boto3 codecommit = boto3.client("codecommit") def lambda_handler(event, context): # Log the updated references from the event references = { reference["ref"] for reference in event["Records"][0]["codecommit"]["references"] } print("References: " + str(references)) # Get the repository from the event and show its git clone URL repository = event["Records"][0]["eventSourceARN"].split(":")[5] try: response = codecommit.get_repository(repositoryName=repository) print("Clone URL: " + response["repositoryMetadata"]["cloneUrlHttp"]) return response["repositoryMetadata"]["cloneUrlHttp"] except Exception as e: print(e) print( "Error getting repository {}. Make sure it exists and that your repository is in the same region as this function.".format( repository ) ) raise e
  8. Di tab Izin, di peran Eksekusi, pilih peran untuk membukanya di IAM konsol. Edit kebijakan terlampir untuk menambahkan GetRepository izin untuk repositori yang ingin Anda gunakan pemicu.

Tampilkan pemicu untuk fungsi Lambda di repositori AWS CodeCommit

Setelah Anda membuat fungsi Lambda, Anda dapat melihat dan menguji pemicu di AWS CodeCommit. Pengujian pemicu menjalankan fungsi dalam menanggapi peristiwa repositori yang Anda tentukan.

Untuk menampilkan dan menguji pemicu untuk fungsi Lambda
  1. Buka CodeCommit konsol di https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Di Repositori, pilih repositori yang Anda ingin tampilkan pemicu.

  3. Di panel navigasi untuk repositori, pilih Pengaturan, lalu pilih Pemicu.

  4. Tinjau daftar pemicu untuk repositori. Anda akan melihat pemicu yang Anda buat di konsol Lambda. Pilih dari daftar dan kemudian pilih Pemicu uji. Opsi ini mencoba untuk memanggil fungsi dengan data sampel tentang repositori Anda, termasuk terbaru ID commit untuk repositori. (Jika tidak ada riwayat commit, nilai sampel yang terdiri dari nol dihasilkan sebagai gantinya.) Ini membantu Anda mengonfirmasi bahwa Anda telah mengonfigurasi akses dengan benar antara AWS CodeCommit dan fungsi Lambda.

  5. Untuk lebih jauh memverifikasi fungsi pemicu, membuat dan mendorong sebuah commit ke repositori di mana Anda dikonfigurasi pemicu. Anda akan melihat respons dari fungsi Lambda pada tab Pemantauan untuk fungsi di konsol Lambda. Dari tab Monitoring, pilih Lihat log masuk CloudWatch. CloudWatch Konsol terbuka di tab baru dan menampilkan acara untuk fungsi Anda. Pilih aliran log dari daftar yang sesuai dengan waktu Anda mendorong commit Anda. Anda akan melihat data peristiwa yang serupa dengan yang berikut ini:

    START RequestId: 70afdc9a-EXAMPLE Version: $LATEST 2015-11-10T18:18:28.689Z 70afdc9a-EXAMPLE References: [ 'refs/heads/main' ] 2015-11-10T18:18:29.814Z 70afdc9a-EXAMPLE Clone URL: https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo END RequestId: 70afdc9a-EXAMPLE REPORT RequestId: 70afdc9a-EXAMPLE Duration: 1126.87 ms Billed Duration: 1200 ms Memory Size: 128 MB Max Memory Used: 14 MB