AWS Lambda menyebarkan referensi tindakan - AWS CodePipeline

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

AWS Lambda menyebarkan referensi tindakan

Anda menggunakan tindakan AWS Lambda penerapan untuk mengelola penerapan kode aplikasi untuk penerapan tanpa server. Anda dapat menerapkan fungsi dan menggunakan strategi penyebaran untuk penyebaran lalu lintas sebagai berikut:

  • Penyebaran kenari dan linier untuk perpindahan lalu lintas

  • Semua penyebaran sekaligus

catatan

Tindakan ini hanya didukung untuk pipeline tipe V2.

Tipe tindakan

  • Kategori: Deploy

  • Pemilik: AWS

  • Penyedia: Lambda

  • Versi: 1

Parameter konfigurasi

FunctionName

Wajib: Ya

Nama fungsi yang Anda buat di Lambda, seperti. MyLambdaFunction

Anda harus sudah membuat versi.

FunctionAlias

Wajib: Tidak

Alias fungsi yang Anda buat di Lambda dan merupakan fungsi yang akan digunakan, seperti. live Alias harus ada dan memiliki satu versi di belakangnya ketika eksekusi tindakan dimulai. (Ini akan menjadi versi target rollback.)

Jika tidak disediakan, tindakan menyebarkan artefak sumber ke $LATEST dan membuat versi baru. Dalam kasus penggunaan ini, strategi penerapan dan opsi versi target tidak tersedia.

PublishedTargetVersion

Wajib: Tidak

Versi Fungsi Lambda yang diinginkan untuk digunakan. FunctionAlias Ini bisa berupa variabel pipeline atau level aksi, seperti#{variables.lambdaTargetVersion}. Versi harus dipublikasikan saat eksekusi tindakan dimulai.

Diperlukan jika tidak ada artefak input yang disediakan.

DeployStrategy

Wajib: Tidak (Default adalahAllAtOnce)

Menentukan tingkat yang diadopsi tindakan penerapan Lambda untuk mengalihkan lalu lintas dari versi asli fungsi Lambda ke versi baru. FunctionAlias Strategi penyebaran yang tersedia adalah kenari atau linier. Format yang diterima:

  • AllAtOnce -

    Menggeser semua lalu lintas ke fungsi Lambda yang diperbarui sekaligus.

    Jika tidak ditentukan, defaultnya adalahAllAtOnce)

  • Canary10Percent5Minutes- Menggeser 10 persen lalu lintas pada kenaikan pertama. Sisanya 90 persen dikerahkan lima menit kemudian.

    Nilai untuk persentase dan menit dapat diubah.

  • Linear10PercentEvery1Minute- Menggeser 10 persen lalu lintas setiap menit sampai semua lalu lintas bergeser.

    Nilai untuk persentase dan menit dapat diubah.

Pertimbangan berikut berlaku untuk bidang ini:

  • Total waktu tunggu maksimum adalah 2 hari.

  • Hanya tersedia jika FunctionAliasdisediakan.

Alarm

Wajib: Tidak

Daftar nama alarm yang dipisahkan koma yang dikonfigurasi untuk penyebaran Lambda. Maksimal 10 alarm dapat ditambahkan. Tindakan gagal saat alarm yang dipantau masuk ke status ALARM.

Gambar berikut menunjukkan contoh halaman Edit untuk tindakan.

Halaman tindakan Edit untuk pipeline baru dengan tindakan penerapan Lambda

Artefak masukan

  • Jumlah artefak: 1

  • Deskripsi: File yang disediakan, jika ada, untuk mendukung tindakan skrip selama penyebaran.

Artefak keluaran

  • Jumlah artefak: 0

  • Deskripsi: Artefak keluaran tidak berlaku untuk jenis tindakan ini.

Variabel keluaran

Ketika dikonfigurasi, tindakan ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir dalam pipeline. Tindakan ini menghasilkan variabel yang dapat dilihat sebagai variabel keluaran, bahkan jika tindakan tidak memiliki namespace. Anda mengonfigurasi tindakan dengan namespace untuk membuat variabel-variabel tersebut tersedia untuk konfigurasi tindakan hilir.

Untuk informasi selengkapnya, lihat Referensi variabel.

FunctionVersion

Versi fungsi Lambda baru yang digunakan.

Izin kebijakan peran layanan untuk tindakan penerapan Lambda

Saat CodePipeline menjalankan tindakan, peran CodePipeline layanan memerlukan izin berikut, yang dicakup dengan tepat untuk akses dengan hak istimewa paling sedikit.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementForLambda", "Effect": "Allow", "Action": [ "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode" ], "Resource": [ "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}", "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:aws:{{customerAccountId}}:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}", "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }

Deklarasi tindakan

YAML
name: Deploy actionTypeId: category: Deploy owner: AWS provider: Lambda version: '1' runOrder: 1 configuration: DeployStrategy: Canary10Percent5Minutes FunctionAlias: aliasV1 FunctionName: MyLambdaFunction outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables
JSON
{ "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "Lambda", "version": "1" }, "runOrder": 1, "configuration": { "DeployStrategy": "Canary10Percent5Minutes", "FunctionAlias": "aliasV1", "FunctionName": "MyLambdaFunction" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" },

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan tindakan ini.

  • Tutorial: Penerapan fungsi Lambda dengan CodePipeline— Tutorial ini memandu Anda melalui pembuatan contoh fungsi Lambda di mana Anda akan membuat alias dan versi, menambahkan fungsi Lambda zip ke lokasi sumber Anda, dan menjalankan tindakan Lambda di pipeline Anda.