Terraform-provider-local: grpc: ์ตœ๋Œ€๊ฐ’๋ณด๋‹ค ํฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 06์›” 13์ผ  ยท  24์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: hashicorp/terraform-provider-local

_์ด ๋ฌธ์ œ๋Š” ์›๋ž˜ @tebriel์ด hashic/terraform# 21709 ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ธ‰์ž ๋ถ„ํ•  ์˜ ๊ฒฐ๊ณผ๋กœ ์—ฌ๊ธฐ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ๋ณธ๋ฌธ์€ ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค._


ํ…Œ๋ผํผ ๋ฒ„์ „

Terraform v0.12.2
+ provider.archive v1.2.1
+ provider.aws v2.14.0
+ provider.local v1.2.2
+ provider.template v2.1.1

Terraform ๊ตฌ์„ฑ ํŒŒ์ผ

// Nothing exceptionally important at this time

๋””๋ฒ„๊ทธ ์ถœ๋ ฅ


https://gist.github.com/tebriel/08f699ce69555a2670884343f9609feb

์ถฉ๋Œ ์ถœ๋ ฅ


๋ถ€์ˆ˜ ์ง€ ๋งˆ์‹œ์˜ค

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘


๊ณ„ํš์„ ์™„๋ฃŒํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค

์‹ค์ œ ํ–‰๋™

Error: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (9761610 vs. 4194304)

๋ฒˆ์‹ ๋‹จ๊ณ„


๋‚ด ์ค‘๊ฐ„ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Terraform ๊ณ„ํš.

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ


make ๋‚ด์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ make ์™ธ๋ถ€์—์„œ ๋™์ผํ•œ ํ”„๋กœํ•„์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 0.11.14์—์„œ ์ž˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋ฌธํ—Œ

enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋” ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  24 ๋Œ“๊ธ€

hashicor/terraform#21709์—์„œ ์กฐ์‚ฌ์™€ ํ† ๋ก ์„ ํ•œ ํ›„ ์ด ๊ณต๊ธ‰์ž์— ํŒŒ์ผ ํฌ๊ธฐ ์ œํ•œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ ์—ฌ๊ธฐ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค(Terraform Core์—์„œ ๋ถ€๊ณผํ•œ 4MB ์ œํ•œ๋ณด๋‹ค ์ž‘์•„ ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœํ† ์ฝœ ์˜ค๋ฒ„ํ—ค๋“œ ๊ณ„์‚ฐ) local_file ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ local_file ๋ฆฌ์†Œ์Šค ์œ ํ˜• ๋ชจ๋‘์— ๋Œ€ํ•œ ํ•ด๋‹น ์ œํ•œ์„ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฑฐ ์•„์ง ์—ด๋ ค์žˆ๋‚˜์š”? ์ €๋ผ๋ฉด ์ด๊ฑฐ ๋ฝ‘๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์š”์ฒญ์„ ๋ช…ํ™•ํžˆ/ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  1. ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๊ณต๊ธ‰์ž์˜ ํŒŒ์ผ ํฌ๊ธฐ ์ œํ•œ 4MB ์ถ”๊ฐ€
  2. ํฌ๊ธฐ ์ œํ•œ์„ ๋ฐ˜์˜ํ•˜๋„๋ก ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ

์•ˆ๋…•ํ•˜์„ธ์š”

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ธ์ œ?

์ด๊ฑฐ ์•„์ง ์—ด๋ ค์žˆ๋‚˜์š”? ์ €๋ผ๋ฉด ์ด๊ฑฐ ๋ฝ‘๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์š”์ฒญ์„ ๋ช…ํ™•ํžˆ/ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

1. Add file size limit of 4mb in the local provider through a validator

2. Update docs to reflect the size limit

๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์€ 4Mb ์ด์ƒ์˜ ํŒŒ์ผ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ์ด ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

์˜ˆ, ์˜ค๋Š˜ ์˜ˆ์ƒ AWS Lambda ์•„์นด์ด๋ธŒ ํŒŒ์ผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” local_file ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ด ๋ฌธ์ œ์— ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ฃผ์ฐจ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? Kubernetes์˜ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ํŒŒ์ผ์„ ๋””์Šคํฌ์— ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Š” ๋” ํฐ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. kubernetes ์ดํ›„ Yaml ํŒŒ์ผ์€ ๊ฝค ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํŒŒ์ผ์„ 2๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 2Mb์˜€์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ฐ๊ฐ 1Mb๋ณด๋‹ค ์•ฝ๊ฐ„ ์ž‘์€ 2๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”

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)

์šฐ๋ฆฌ๊ฐ€ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ•ฉ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
4MB๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ํŒŒ์ผ์€ ์ด์ „์— ์•ˆ์ „ ๊ฒ€์‚ฌ๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค(https://github.com/hashicorp/terraform/issues/21709#issuecomment-501497885 ์ฐธ์กฐ). ๋”ฐ๋ผ์„œ ์˜ค๋ฅ˜๊ฐ€ ์œ ํšจํ•˜๊ณ  ์ œํ•œ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. terraform core์—์„œ๋Š” ์˜ต์…˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค(Re: "๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค").

๊ณต๊ธ‰์ž ๋‚ด์—์„œ ํŒŒ์ผ์„ 4MB ์ฒญํฌ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž์ฒด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ถ”๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด๊ฐ€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ธฐ ์ „์— ๊ทธ๊ฒƒ์ด ๋ฐ›์•„๋“ค์—ฌ์งˆ ์ˆ˜ ์žˆ์„๊นŒ์š” @apparentlymart ?

Terraform 0.12.23 ๋ฐ aws ๊ณต๊ธ‰์ž 2.61.0 ์‚ฌ์šฉ, ๋™์ผํ•œ ์˜ค๋ฅ˜ Error: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (18182422 vs. 4194304) ๋ฐœ์ƒ

์ฝ”์–ด ํŒจํ‚ค์ง€๊ฐ€ 64MB๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค - https://github.com/hashicorp/terraform/pull/20906#

๊ทธ๋ฆฌ๊ณ  ๋žŒ๋‹ค ์ œํ•œ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด 50MB ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ์ „ ์ ๊ฒ€์„ 50MB๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์ง€ ์•Š์„๊นŒ์š”?

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•œ ์ฐธ๊ณ ์šฉ์œผ๋กœ.

zip ํŒŒ์ผ์„ s3 ๋ฒ„ํ‚ท์— ๋„ฃ์œผ๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ filebase64(path) ํ•จ์ˆ˜ ๋Œ€์‹  aws_s3_bucket_object.lambda_zip.content_base64 ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋˜๋Š” ์ ์–ด๋„ ์ €๋ฅผ ์œ„ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด์—ˆ์Šต๋‹ˆ๋‹ค).

๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด deployment_package ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด ์ฃผ์–ด์ง€๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ base64 ํ•ด์‹œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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
  ]
}

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

source_code_hash = data.external.deployment_package.result.filebase64sha256

๋‹น์‹ ์—๊ฒŒ ์ค„ ๊ฒƒ

+ source_code_hash = "ZjRkOTM4MzBlMDk4ODVkNWZmMDIyMTAwMmNkMDhmMTJhYTUxMDUzZmIzOThkMmE4ODQyOTc2MjcwNThmZmE3Nwo="

+1 ์ด ๋ฌธ์ œ๋Š” ๋” ํฐ ํŒŒ์ผ์„ ํ…Œ๋ผํผ์— ์˜๋„์ ์œผ๋กœ ์ธ๋ผ์ธํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋ฏ€๋กœ ๋งŽ์€ ๊ณ ํ†ต์„ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

https://github.com/hashicorp/terraform/pull/20906 ์ด 1๋…„ ์ „์— ๋ณ‘ํ•ฉ๋˜์—ˆ์ง€๋งŒ ์œ„์—์„œ ์„ค๋ช…ํ•œ ์ฆ์ƒ์ด ์—ฌ์ „ํžˆ ์ง€์†๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

grpc ์ „์†ก์— ๋Œ€ํ•œ ์ œํ•œ์„ ํ”„๋กœ์ ํŠธ ์ „์ฒด์—์„œ ๋Š˜๋ ค ์ด๋Ÿฌํ•œ ํŽ˜์ด๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์šด์ŠคํŠธ๋ฆผ ์„œ๋น„์Šค๊ฐ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์—†์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Terraform 0.12.24์—์„œ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. GRPC ์ œํ•œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ AWS ๊ณต๊ธ‰์ž์˜ ๋ฒ„์ „ 3.14.1์„ ์‚ฌ์šฉํ•˜์—ฌ API Gateway(v2) ์™€ ํ•จ๊ป˜ body ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Terraform 0.13.5์—์„œ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•์„ฑ์„ ๋”ํ•˜๊ธฐ ์œ„ํ•ด ์ œ ๊ฒฝ์šฐ์—๋Š” file ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

body = file(var.body)

๋ฌธ์ œ์˜ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 1.5MB์ž…๋‹ˆ๋‹ค.

body ์„ ์–ธ์„ ์ œ๊ฑฐํ•˜๋ฉด Terraform์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ

jq ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณธ๋ฌธ ํฌ๊ธฐ๋ฅผ ~500KB๋กœ ์••์ถ•ํ•˜๊ณ  ์ถ•์†Œํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ž„๊ณ„ ๊ฐ’์ด 4MB, 1MB๋ณด๋‹ค ๋‚ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
ํ…Œ๋ผํผ v0.12.29
provider.archive v2.0.0
provider.aws v3.15.0
provider.template v2.2.0

archive_file ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฉฑ๋“ฑ์„ฑ์„ ๋งŒ๋“œ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์— 4mb ์ด์ƒ์˜ ํŒŒ์ผ์„ ์ง€์›ํ•˜๋ ค๋ฉด filebase64 ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋ธŒ๋ ˆ์ดํฌ ์‚ฌ์ด์— local_file์„ ์‚ฌ์šฉํ•˜์—ฌ ....

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
  }
}

๋˜ํ•œ IBM Cloud์— Rust ๊ธฐ๋Šฅ์„ ๋ฐฐ์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ์ค‘์— ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. @atamgp ์™€ ์œ ์‚ฌํ•˜๊ฒŒ, ๋‚˜๋Š” data "archive_file" ๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

grpc: received message larger than max (11484267 vs. 4194304)

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์„ฑ๊ณตํ•˜๋”๋ผ๋„(๋˜๋Š” .zip ํŒŒ์ผ์ด ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑ๋จ) resource "ibm_function_action" ๋Š” ์—ฌ์ „ํžˆ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

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

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

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์ฝ”๋“œ์— ์žˆ๋Š” ๋ฌธ์ž ์ˆ˜์— ์ œํ•œ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฒ„ํ‚ท์— ์—…๋กœ๋“œ๋œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ(์••์ถ•ํ•˜์ง€ ์•Š๊ณ ) ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋œ ๊ฒƒ์€ s3์˜ .body๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ .rendered(์ด์ „์— ์‚ฌ์šฉํ–ˆ๋˜)์™€ ๋ฐ˜๋Œ€๋˜๋Š” ์ŠคํŠธ๋ฆผ์ด๋ผ๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์†Œ์Šค์— ๋” ๋งŽ์€ ๋ฌธ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ AWS ๊ณต๊ธ‰์ž์˜ ๋ฒ„์ „ 3.14.1์„ ์‚ฌ์šฉํ•˜์—ฌ API Gateway(v2) ์™€ ํ•จ๊ป˜ body ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Terraform 0.13.5์—์„œ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•์„ฑ์„ ๋”ํ•˜๊ธฐ ์œ„ํ•ด ์ œ ๊ฒฝ์šฐ์—๋Š” file ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

body = file(var.body)

๋ฌธ์ œ์˜ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 1.5MB์ž…๋‹ˆ๋‹ค.

body ์„ ์–ธ์„ ์ œ๊ฑฐํ•˜๋ฉด Terraform์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ

jq ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณธ๋ฌธ ํฌ๊ธฐ๋ฅผ ~500KB๋กœ ์••์ถ•ํ•˜๊ณ  ์ถ•์†Œํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ž„๊ณ„ ๊ฐ’์ด 4MB, 1MB๋ณด๋‹ค ๋‚ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@finferflu - ๊ฐ™์€ ๊ฒƒ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 1.5mb openapi json ํŒŒ์ผ๋กœ ์ด๊ฒƒ์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. JSON์˜ ์‹ค์ œ ํŒŒ์ผ ํ•ธ๋“ค์ด ์ด ๋ฌธ์ œ์˜ ์›์ธ์ด ์•„๋‹ˆ๋ผ๋Š” ์ธ์ƒ์„ ๋ฐ›์•˜์ง€๋งŒ ์ด์ œ REST API์˜ "๋ณธ๋ฌธ"์— ์ด๊ฒƒ์ด ํฌํ•จ๋˜์–ด ์ƒํƒœ์— ํฌํ•จ๋˜๋ฉฐ ์•„๋งˆ๋„ ๋งŽ์€ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ์˜ ๋‹ค๋ฅธ ํ•ญ๋ชฉ - ์ƒํƒœ ํŒŒ์ผ์ด 4MB๋ฅผ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. Swagger์— ๋Œ€ํ•œ ๋กœ์ปฌ ํŒŒ์ผ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด S3์— ์—…๋กœ๋“œํ•˜๊ณ  TF์—์„œ s3 ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค.

v0.15.4 ๋ฐ terraform ํด๋ผ์šฐ๋“œ์—์„œ ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Terraform ํด๋ผ์šฐ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ์ผ๋ถ€ ์ธํ”„๋ผ๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ ๊ณ„ํš์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ƒํƒœ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

โ•ท
โ”‚ ์˜ค๋ฅ˜: ํ”Œ๋Ÿฌ๊ทธ์ธ ์˜ค๋ฅ˜
โ”‚
โ”‚ okta_group.user_type_non_service_accounts,
โ”‚ groups.tf ์ค„ 174, "okta_group" "user_type_non_service_accounts" ๋ฆฌ์†Œ์Šค:
โ”‚ 174: ๋ฆฌ์†Œ์Šค "okta_group" "user_type_non_service_accounts" {
โ”‚
โ”‚ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.(*GRPCProvider).UpgradeResourceState: rpc ์˜ค๋ฅ˜: ์ฝ”๋“œ = ResourceExhausted desc = grpc: ์ตœ๋Œ€๋ณด๋‹ค ํฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ–ˆ์Šต๋‹ˆ๋‹ค(6280527 ๋Œ€ 4194304).

๋‚ด ํŒŒ์ผ์€ ์•ฝ 2.4MB์ด๋ฉฐ ์˜ค๋Š˜๋‚ ์—๋„ ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

resource "local_file" "parse-template" {
  content =  templatefile(local.template-name, {
    var1 = value1
    var2 = value2
  }) 
  filename = "${local.script-name}"
}

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

swagger JSON ํŒŒ์ผ ๋ฐ API ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
JSON swagger ํŒŒ์ผ์„ ์••์ถ•ํ•˜์—ฌ ํŒŒ์ผ์„ ์ถฉ๋ถ„ํ•˜๊ฒŒ ์ถ•์†Œํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. swagger ํฌ๊ธฐ๊ฐ€ 1.4Mb์—์„œ 950Kb๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ ํ•œ๊ณ„์— ๊ทผ์ ‘ํ•œ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ƒํ•˜๊ฒŒ๋„ local.template_file ๋˜๋Š” local.file ๋ฐ์ดํ„ฐ/๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ๋„ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋Œ€์‹  templatefile ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค).

๋” ๋งŽ์€ ๊ด€์‹ฌ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰