_Masalah ini awalnya dibuka oleh @tebriel sebagai hashicorp/terraform#21709. Itu dimigrasikan ke sini sebagai akibat dari pemisahan penyedia . Isi asli masalah ada di bawah._
Terraform v0.12.2
+ provider.archive v1.2.1
+ provider.aws v2.14.0
+ provider.local v1.2.2
+ provider.template v2.1.1
// Nothing exceptionally important at this time
https://Gist.github.com/tebriel/08f699ce69555a2670884343f9609feb
Tidak ada kecelakaan
Seharusnya sudah menyelesaikan rencananya
Error: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (9761610 vs. 4194304)
rencana terraform pada proyek berukuran sedang saya.
Berjalan di dalam make, tetapi memiliki profil yang sama di luar make. Ini berlaku baik di 0.11.14.
Setelah beberapa penyelidikan dan diskusi di hashicorp/terraform#21709, saya memindahkan ini ke sini untuk mewakili perubahan untuk menambahkan batas ukuran file ke penyedia ini (lebih kecil dari batas 4MB yang diberlakukan oleh Terraform Core sehingga pengguna tidak akan pernah mencapai kesalahan umum itu bahkan ketika menghitung overhead protokol) dan untuk mendokumentasikan batas itu untuk sumber data local_file
dan jenis sumber daya local_file
.
Apakah ini masih terbuka? Saya ingin mengambil ini jika demikian.
Bisakah Anda mengklarifikasi/mengkonfirmasi permintaan tersebut?
Halo
Apakah Anda berencana untuk memperbaiki masalah ini? Jika demikian, kapan?
Apakah ini masih terbuka? Saya ingin mengambil ini jika demikian.
Bisakah Anda mengklarifikasi/mengkonfirmasi permintaan tersebut?1. Add file size limit of 4mb in the local provider through a validator 2. Update docs to reflect the size limit
Saya pikir perbaikan terbaik adalah dengan mendukung file> 4Mb
Ya, masalah ini masih berlanjut.
Ya, saya mengalami masalah ini hari ini di sumber data local_file yang menunjuk ke file arsip AWS Lambda yang prospektif.
Halo, apakah ada kemajuan dalam masalah ini atau sudah diparkir? Ini bisa menjadi masalah yang lebih besar jika kita menggunakan file template dari Kubernetes dan harus menyimpan file ke disk. Sejak kubernetes file Yaml bisa menjadi sangat besar.
pekerjaan saya adalah membagi file menjadi 2. Ukuran file awal adalah 2Mb, sekarang saya memiliki 2 file yang masing-masing kurang dari 1Mb dan itu berhasil.
Terima kasih
Mengalami ini dengan menggunakan sumber daya aws_lambda_function
...
data "local_file" "lambda" {
filename = "${path.module}/out.zip"
}
resource "aws_s3_bucket_object" "lambda" {
bucket = var.lambda_bucket
key = "${local.name}.zip"
source = data.local_file.lambda.filename
etag = filemd5(data.local_file.lambda.filename)
}
resource "aws_lambda_function" "login_api" {
function_name = local.name
role = aws_iam_role.lambda_role.arn
handler = "lambda.handler"
s3_bucket = aws_s3_bucket_object.lambda.bucket
s3_key = aws_s3_bucket_object.lambda.key
source_code_hash = filebase64sha256(data.local_file.lambda.filename)
Apakah ada kesepakatan tentang bagaimana kita bisa bergerak maju?
File lebih dari 4mb hanya berfungsi sebelumnya karena kurangnya pemeriksaan keamanan (Lihat https://github.com/hashicorp/terraform/issues/21709#issuecomment-501497885) sehingga kesalahannya valid dan tidak terdengar seperti mengubah batas di inti terraform akan menjadi opsi (Re: "bukan bug, itu fitur").
Kami mungkin dapat menanganinya secara lokal dengan membagi file menjadi potongan 4mb di dalam penyedia, tetapi saya tidak yakin apakah itu akan menimbulkan masalah tersendiri. Saya dapat mengejar itu tetapi sebelum saya membuang waktu, apakah itu dapat diterima @apparentlymart ?
Menggunakan Terraform 0.12.23 dan aws provider 2.61.0, Mendapatkan kesalahan yang sama Error: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (18182422 vs. 4194304)
Sepertinya paket inti telah diperbarui untuk memungkinkan 64MB - https://github.com/hashicorp/terraform/pull/20906#
Dan menurut batasan lambda docs, file 50MB dapat diunggah.
Bukankah lebih baik untuk mengatur pemeriksaan keamanan ke 50MB?
Sebagai FYI bagi siapa saja yang mengalami masalah ini.
Jika Anda memasukkan file zip Anda ke dalam ember s3, Anda seharusnya tidak menghadapi masalah ini. Tetapi ingat untuk menggunakan fungsi aws_s3_bucket_object.lambda_zip.content_base64
daripada fungsi filebase64(path), maka Anda tidak akan mengalami masalah ini (atau setidaknya itu adalah perbaikan untuk saya).
Pilihan lainnya adalah menggunakan sumber data eksternal.
misalnya, diberi nama file dengan variabel deployment_package
, hasilkan hash base64 dengan yang berikut:
data "external" "deployment_package" {
program = ["/bin/bash", "-c", <<EOS
#!/bin/bash
set -e
SHA=$(openssl dgst -sha256 ${var.deployment_package} | cut -d' ' -f2 | base64)
jq -n --arg sha "$SHA" '{"filebase64sha256": $sha }'
EOS
]
}
dan gunakan seperti itu:
source_code_hash = data.external.deployment_package.result.filebase64sha256
yang seharusnya memberi Anda
+ source_code_hash = "ZjRkOTM4MzBlMDk4ODVkNWZmMDIyMTAwMmNkMDhmMTJhYTUxMDUzZmIzOThkMmE4ODQyOTc2MjcwNThmZmE3Nwo="
Memberi +1 pada masalah ini, ini membuat kami sangat kesakitan karena kami sengaja ingin memasukkan file yang lebih besar ke dalam terraform.
Saya melihat bahwa https://github.com/hashicorp/terraform/pull/20906 telah digabungkan lebih dari setahun yang lalu, tetapi gejala yang dijelaskan di atas masih ada.
Bisakah batas transfer grpc ditingkatkan di seluruh proyek untuk memungkinkan layanan hilir yang dapat menerima muatan seperti itu bekerja dengan baik tanpa solusi?
Masih terjadi dengan Terraform 0.12.24. Adakah solusi untuk memperbaiki kesalahan batas GRPC?
Ini masih terjadi dengan Terraform 0.13.5, saat menggunakan body
dengan API Gateway (v2) , menggunakan versi 3.14.1 dari penyedia AWS.
Untuk menambah kejelasan, saya menggunakan fungsi file
dalam kasus saya:
body = file(var.body)
File yang dimaksud berukuran 1,5MB.
Jika saya menghapus deklarasi body
, Terraform berjalan dengan sukses.
Saya telah menggunakan jq
untuk mengompres dan memperkecil ukuran badan menjadi ~500KB, dan tidak ada kesalahan. Sepertinya ambang batas mungkin lebih rendah dari 4MB, 1MB, mungkin?
Saya masih memiliki masalah ini dengan
Terraform v0.12.29
provider.archive v2.0.0
provider.aws v3.15.0
provider.template v2.2.0
Perlu filebase64
untuk mendukung file > 4mb karena menggunakannya dalam kombinasi dengan archive_file
adalah satu-satunya cara untuk membuatnya idempoten.
Menggunakan local_file di antara rem yang....
data "archive_file" "this" {
type = "zip"
output_path = "${path.module}/test.zip"
source {
filename = "test.crt"
content = file("${path.module}/archive/test.crt")
}
source {
filename = "binary-file"
content = filebase64("${path.module}/archive/binary-file")
}
source {
filename = "config.yml"
content = data.template_file.this.rendered
}
}
Saya juga mengalami masalah ini saat mencoba menerapkan fungsi Rust ke IBM Cloud. Demikian pula dengan @atamgp , saya memiliki data "archive_file"
yang gagal dengan
grpc: received message larger than max (11484267 vs. 4194304)
Tetapi bahkan jika ini berhasil (atau file .zip
dibuat secara manual), resource "ibm_function_action"
akan tetap gagal dengan
grpc: received message larger than max (7074738 vs. 4194304)
Terraform v0.14.3
+ provider registry.terraform.io/hashicorp/archive v2.0.0
+ provider registry.terraform.io/hashicorp/local v2.0.0
+ provider registry.terraform.io/ibm-cloud/ibm v1.12.0
Menghadapi masalah yang sama dengan peta konfigurasi kubernetes
resource "kubernetes_config_map" "nginx" {
metadata {
name = "geoip"
namespace = "ingress"
}
binary_data = {
"GeoLite2-Country.mmdb" = filebase64("${path.module}/config/GeoLite2-Country.mmdb")
}
}
Acquiring state lock. This may take a few moments...
Error: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (5248767 vs. 4194304)
Terraform v0.14.4
+ provider registry.terraform.io/hashicorp/kubernetes v1.13.3
Saya mengalami masalah yang sama - sepertinya ada batasan jumlah karakter dalam kode sumber daya.
Menggunakan file yang diunggah ke bucket (tanpa mengompresnya) memperbaiki masalah saya - Saya berasumsi, bahwa yang membantu adalah fakta, bahwa .body dari s3 biasanya merupakan aliran, berlawanan dengan .rendered (yang saya gunakan sebelumnya), yang menghasilkan lebih banyak karakter dalam sumber sumber daya.
Ini masih terjadi dengan Terraform 0.13.5, saat menggunakan
body
dengan API Gateway (v2) , menggunakan versi 3.14.1 dari penyedia AWS.Untuk menambah kejelasan, saya menggunakan fungsi
file
dalam kasus saya:body = file(var.body)
File yang dimaksud berukuran 1,5MB.
Jika saya menghapus deklarasi
body
, Terraform berjalan dengan sukses.Memperbarui
Saya telah menggunakan
jq
untuk mengompres dan memperkecil ukuran badan menjadi ~500KB, dan tidak ada kesalahan. Sepertinya ambang batas mungkin lebih rendah dari 4MB, 1MB, mungkin?
@finferflu - telah menemukan hal yang sama, kami mengalami ini dengan file openapi json 1,5mb. Saya mendapat kesan bahwa bukan pegangan file sebenarnya pada JSON yang menyebabkan ini, tetapi "tubuh" dari REST API sekarang berisi ini yang kemudian dimasukkan dalam status - dan mungkin ada banyak karakter pelarian dan item lain di negara bagian - sehingga statefile melebihi 4mb. Untuk menghindari file lokal untuk kesombongan, kami mengunggah ke S3 dan menggunakan objek data s3 di TF dan masalah yang sama terjadi - jadi indikator kuat untuk mendukung ini.
Masih mendapatkan masalah ini dengan v0.15.4 dan cloud terraform. Kami mengimpor beberapa infrastruktur saat menggunakan cloud terraform dan kemudian mencoba rencana, tetapi tidak dapat mengeluarkan file status:
╷.
Kesalahan: Kesalahan plugin
│.
dengan okta_group.user_type_non_service_accounts,
di groups.tf baris 174, di sumber daya "okta_group" "user_type_non_service_accounts":
174: sumber daya "okta_group" "user_type_non_service_accounts" {
│.
Plugin mengembalikan kesalahan tak terduga dari plugin.(*GRPCProvider).UpgradeResourceState: rpc error: code = ResourceExhausted desc = grpc: menerima pesan lebih besar dari maks (6280527 vs. 4194304)
File saya sekitar 2,4 MB dan saya menghadapi masalah ini bahkan hari ini.
resource "local_file" "parse-template" {
content = templatefile(local.template-name, {
var1 = value1
var2 = value2
})
filename = "${local.script-name}"
}
ada solusi untuk ini tolong?
Kami mengalami kesalahan ini saat menggunakan file JSON angkuh dan gateway API.
Kami sementara memperbaiki masalah ini dengan mengompresi file swagger JSON untuk mengecilkan file yang cukup. ukuran kesombongan berubah dari 1.4Mb menjadi 950Kb.
Ini bukan solusi nyata, tetapi mungkin membantu seseorang yang juga mendekati batas.
Anehnya, kesalahan terus berlanjut meskipun kami tidak menggunakan local.template_file atau local.file data/resource (kami menggunakan fungsi templatefile sebagai gantinya).
Bisakah ini mendapat perhatian lebih?
Komentar yang paling membantu
Bisakah ini mendapat perhatian lebih?