Cara mengatasi masalah dengan properti khusus tulis di sumber daya AWS::Lambda::Function - AWS CloudFormation

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

Cara mengatasi masalah dengan properti khusus tulis di sumber daya AWS::Lambda::Function

Topik ini menjelaskan cara mengatasi masalah dengan properti khusus tulis di AWS::Lambda::Functionsumber daya saat menggunakan generator IAc.

Isu

Sumber AWS::Lambda::Function daya memiliki tiga set properti yang saling eksklusif untuk menentukan kode Lambda:

  • Code/S3Bucketdan Code/S3Key properti, dan opsional properti Code/S3ObjectVersion

  • Code/ImageUriproperti

  • Code/ZipFileproperti

Hanya satu dari set ini yang dapat digunakan untuk AWS::Lambda::Function sumber daya tertentu.

Generator IAc tidak dapat menentukan kumpulan properti khusus tulis eksklusif mana yang digunakan untuk membuat atau memperbarui sumber daya. Akibatnya, ini hanya mencakup set properti pertama dalam template yang dihasilkan. Code/ZipFileProperti Code/ImageUri dan dihilangkan.

Selain itu, generator IAc mengeluarkan peringatan berikut:

  • MUTUALLY_EXCLUSIVE_PROPERTIESMemperingatkan bahwa Code/S3Bucket dan Code/S3Key diidentifikasi sebagai properti yang saling eksklusif.

  • UNSUPPORTED_PROPERTIESMemperingatkan bahwa Code/S3ObjectVersion properti tidak didukung.

Untuk menyertakan AWS::Lambda::Function sumber daya dalam template yang dihasilkan, Anda harus mengunduh dan memperbarui template dengan properti kode yang benar.

Resolusi

Jika Anda menyimpan kode Lambda di bucket Amazon S3 dan tidak menggunakan S3ObjectVersion properti, Anda dapat mengimpor template yang dihasilkan tanpa modifikasi apa pun. Generator IAc akan meminta Anda untuk bucket Amazon S3 dan kunci sebagai parameter template selama operasi impor.

Jika Anda menyimpan kode Lambda Anda sebagai ECR repositori Amazon, Anda dapat memperbarui template Anda menggunakan petunjuk berikut:
  1. Unduh template yang dihasilkan.

  2. Hapus properti dan parameter yang sesuai untuk Code/S3Key properti Code/S3Bucket dan dari template yang dihasilkan.

  3. Ganti properti yang dihapus dalam template yang dihasilkan dengan Code/ImageUri properti, tentukan URL untuk ECR repositori Amazon.

  4. Buka template yang dihasilkan di konsol generator IAC dan pilih tombol Impor templat yang diedit.

Jika Anda menyimpan kode Lambda Anda seperti dalam file zip, Anda dapat memperbarui template Anda menggunakan petunjuk berikut:
  1. Unduh template yang dihasilkan.

  2. Hapus properti dan parameter yang sesuai untuk Code/S3Key properti Code/S3Bucket dan dari template yang dihasilkan.

  3. Ganti properti yang dihapus dalam template yang dihasilkan dengan Code/ZipFile properti.

  4. Buka template yang dihasilkan di konsol generator IAC dan pilih tombol Impor templat yang diedit.

Jika Anda tidak memiliki salinan kode Lambda Anda, Anda dapat memperbarui template Anda menggunakan petunjuk berikut:
  1. Gunakan AWS Lambda GetFunctionAPItindakan (misalnya, dengan menggunakan aws lambda get-function AWS CLI perintah.

  2. Sebagai tanggapan, RepositoryType parameternya adalah S3 jika kode ada di bucket Amazon S3, atau ECR jika kode tersebut ada di repositori AmazonECR.

  3. Dalam tanggapan, Location parameter berisi pra-ditandatangani URL yang dapat Anda gunakan untuk mengunduh paket penerapan selama 10 menit. Unduh kodenya.

  4. Unggah kode ke bucket Amazon S3.

  5. Jalankan operasi impor dengan templat yang dihasilkan dan berikan nama dan kunci bucket sebagai nilai parameter.