Terraform-provider-local: рдЬреАрдЖрд░рдкреАрд╕реА: рдЕрдзрд┐рдХрддрдо рд╕реЗ рдмрдбрд╝рд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЬреВрди 2019  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hashicorp/terraform-provider-local

_рдпрд╣ рдореБрджреНрджрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ @tebriel рджреНрд╡рд╛рд░рд╛ рд╣реИрд╢рд┐рдХреЙрд░реНрдк /рдЯреЗрд░рд╛рдлреЙрд░реНрдо#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

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ

// 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)

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг


рдореЗрд░реЗ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдпреЛрдЬрдирд╛ред

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн


рдореЗрдХ рдХреЗ рднреАрддрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрдХ рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рд╣реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╣реИред рдпрд╣ 0.11.14 рдореЗрдВ рдареАрдХ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣реИрд╢рд┐рдХреЙрд░реНрдк/рдЯреЗрд░рд╛рдлреЙрд░реНрдо#21709 рдореЗрдВ рдХреБрдЫ рдЬрд╛рдВрдЪ рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрджрд▓рд╛рд╡ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ (рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдИ рдЧрдИ 4 рдПрдордмреА рд╕реАрдорд╛ рд╕реЗ рдЫреЛрдЯрд╛ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рдХреЛ рдХрднреА рднреА рд╣рд┐рдЯ рди рдХрд░реЗрдВ рдЬрдм рднреА рдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдУрд╡рд░рд╣реЗрдб) рдФрд░ 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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдлрд┐рдХреНрд╕ рд╣реЛрдЧрд╛> 4 рдПрдордмреА

рд╣рд╛рдБ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИред

рд╣рд╛рдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдЬ рд╕реНрдерд╛рдиреАрдп_рдлрд╛рдЗрд▓ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдкрд░ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рд╕рдВрдЧреНрд░рд╣ рдлрд╝рд╛рдЗрд▓ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рднрд╛рдЧ рдЧрдпрд╛ред

рд╣реИрд▓реЛ, рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдкрд╛рд░реНрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдмрди рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдпрдорд▓ рдлрд╛рдЗрд▓реЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдореЗрд░рд╛ рдХрд╛рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ 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) рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдорд╛рдиреНрдп рд╣реИ рдФрд░ рдпрд╣ рд╕реАрдорд╛ рдмрджрд▓рдиреЗ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЛрд░ рдореЗрдВ рдпрд╛ рддреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ (рдкреБрдирдГ: "рдмрдЧ рдирд╣реАрдВ, рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ")ред

рд╣рдо рд╕рдВрднрд╡рддрдГ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рднреАрддрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ 4mb рд╡рд┐рдЦрдВрдбреВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдЗрд╕рдХрд╛ рдкреАрдЫрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░реВрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп @appparentlymart рднреА рд╣реЛрдЧрд╛?

рдЯреЗрд░рд╛рдлреЙрд░реНрдо 0.12.23 рдФрд░ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ 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 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ FYI рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдХреЛ s3 рдмрд╛рд▓реНрдЯреА рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓рдмреЗрд╕ 64 (рдкрде) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрдЬрд╛рдп aws_s3_bucket_object.lambda_zip.content_base64 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдерд╛)ред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ deployment_package рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдмреЗрд╕ 64 рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:

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 рдХреЛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд▓рдХреНрд╖рдг рдЕрднреА рднреА рдмрдирд╛ рд╣реБрдЖ рд╣реИред

рдХреНрдпрд╛ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рд╕реЗрд╡рд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬреАрдЖрд░рдкреАрд╕реА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рд╕реАрдорд╛ рдмрдврд╝рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдРрд╕реЗ рдкреЗрд▓реЛрдб рдХреЛ рдмрд┐рдирд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреА рд╣реИ?

рдЕрднреА рднреА рдЯреЗрд░рд╛рдлреЙрд░реНрдо 0.12.24 рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЬреАрдЖрд░рдкреАрд╕реА рд╕реАрдорд╛ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрд╛рдп?

рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 3.14.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ (v2) рдХреЗ рд╕рд╛рде body рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЕрднреА рднреА рдЯреЗрд░рд╛рдлреЙрд░реНрдо 0.13.5 рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ рдореЗрдВ file рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

body = file(var.body)

рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдлрд╝рд╛рдЗрд▓ 1.5MB рдЖрдХрд╛рд░ рдХреА рд╣реИред

рдЕрдЧрд░ рдореИрдВ body рдШреЛрд╖рдгрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рддрд╛ рд╣реИред

рдЕрджреНрдпрддрди

рдореИрдВрдиреЗ рд╢рд░реАрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ ~500KB рддрдХ рдХрдо рдХрд░рдиреЗ рдФрд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдорд╛ 4MB, 1MB рд╕реЗ рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╢рд╛рдпрдж?

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ
рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.12.29
рдкреНрд░рджрд╛рддрд╛.рд╕рдВрдЧреНрд░рд╣ v2.0.0
рдкреНрд░рджрд╛рддрд╛.aws v3.15.0
рдкреНрд░рджрд╛рддрд╛.рдЯреЗрдореНрдкрд▓реЗрдЯ v2.2.0

рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП filebase64 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ> 4mb рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ archive_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
  }
}

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдИрдмреАрдПрдо рдХреНрд▓рд╛рдЙрдб рдкрд░ рдЬрдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реА рд╣реИред рдЗрд╕реА рддрд░рд╣ @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 config map рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛

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

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдХреЛрдб рдореЗрдВ рдХрд┐рддрдиреЗ рд╡рд░реНрдг рд╣реИрдВ, рдЗрд╕рдХреА рд╕реАрдорд╛ рд╣реИред

рдмрд╛рд▓реНрдЯреА рдкрд░ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдЗрд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛) рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ - рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рдХреНрдпрд╛ рдорджрдж рдорд┐рд▓реА рд╣реИ, рдХрд┐ .body s3 рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдзрд╛рд░рд╛ рд╣реИ, рдЬреЛ .rendered (рдЬрд┐рд╕реЗ рдореИрдВ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛) рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рд╕рдВрд╕рд╛рдзрди рд╕реНрд░реЛрдд рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд░реНрдгред

рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 3.14.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ (v2) рдХреЗ рд╕рд╛рде body рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЕрднреА рднреА рдЯреЗрд░рд╛рдлреЙрд░реНрдо 0.13.5 рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ рдореЗрдВ file рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

body = file(var.body)

рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдлрд╝рд╛рдЗрд▓ 1.5MB рдЖрдХрд╛рд░ рдХреА рд╣реИред

рдЕрдЧрд░ рдореИрдВ body рдШреЛрд╖рдгрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рддрд╛ рд╣реИред

рдЕрджреНрдпрддрди

рдореИрдВрдиреЗ рд╢рд░реАрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ ~500KB рддрдХ рдХрдо рдХрд░рдиреЗ рдФрд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдорд╛ 4MB, 1MB рд╕реЗ рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╢рд╛рдпрдж?

@finferflu - рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдорд┐рд▓реА рд╣реИ, рд╣рдо рдЗрд╕рдореЗрдВ 1.5mb openapi json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣реЗ рдереЗред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдерд╛ рдХрд┐ рдпрд╣ JSON рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдерд╛ рдЬреЛ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд░рдИрдПрд╕рдЯреА рдПрдкреАрдЖрдИ рдХреЗ "рдмреЙрдбреА" рдореЗрдВ рдЕрдм рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕реЗ рд░рд╛рдЬреНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдФрд░ рд╢рд╛рдпрдж рдмрд╣реБрдд рд╕реЗ рдмрдЪрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рддреНрд░ рд╣реИрдВ рдФрд░ рд░рд╛рдЬреНрдп рдореЗрдВ рдЕрдиреНрдп рдЖрдЗрдЯрдо - рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреЗрдЯрдлрд╛рдЗрд▓ 4mb рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╕реНрд╡реИрдЧрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ S3 рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ TF рдореЗрдВ s3 рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ - рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордЬрдмреВрдд рд╕рдВрдХреЗрддрдХред

рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ v0.15.4 рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреНрд▓рд╛рдЙрдб рдХреЗ рд╕рд╛рде рдорд┐рд▓ рд░рд╣реА рд╣реИред рд╣рдордиреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреНрд▓рд╛рдЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рдПрдХ рдпреЛрдЬрдирд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд░рд╛рдЬреНрдп рдХреА рдлрд╛рдЗрд▓ рдХреЛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрд╛:

рдореИрдВ
рддреНрд░реБрдЯрд┐: рдкреНрд▓рдЧрдЗрди рддреНрд░реБрдЯрд┐
рдореИрдВ
okta_group.user_type_non_service_accounts рдХреЗ рд╕рд╛рде,
group.tf рд▓рд╛рдЗрди 174 рдкрд░, рд╕рдВрд╕рд╛рдзрди "okta_group" "user_type_non_service_accounts" рдореЗрдВ:
174: рд╕рдВрд╕рд╛рдзрди "okta_group" "user_type_non_service_accounts" {
рдореИрдВ
рдкреНрд▓рдЧрдЗрди рдиреЗ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдПрдХ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛ рджреАред

рдореЗрд░реА рдлрд╛рдЗрд▓ рд▓рдЧрднрдЧ 2.4 рдПрдордмреА рдХреА рд╣реИ рдФрд░ рдореИрдВ рдЖрдЬ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

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

рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрд╛рдп рдмрддрд╛рдПрдВ?

рд╕реНрд╡реИрдЧрд░ JSON рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ API рдЧреЗрдЯрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдо рдЗрд╕ рддреНрд░реБрдЯрд┐ рдореЗрдВ рднрд╛рдЧ рдЧрдПред
рд╣рдордиреЗ JSON swagger рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛, рдЬреЛ рдкрд░реНрдпрд╛рдкреНрдд рдереАред рд╕реНрд╡реИрдЧрд░ рдХрд╛ рдЖрдХрд╛рд░ 1.4Mb рд╕реЗ 950Kb рд╣реЛ рдЧрдпрд╛ред

рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реАрдорд╛ рдХреЗ рдХрд░реАрдм рднреА рд╣реИред
рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рддреНрд░реБрдЯрд┐ рдмрдиреА рд░рд╣реА, рднрд▓реЗ рд╣реА рд╣рдордиреЗ рдХрд┐рд╕реА рднреА local.template_file рдпрд╛ local.file рдбреЗрдЯрд╛/рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ (рд╣рдордиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЯреЗрдореНрдкрд▓реЗрдЯрдлрд╛рдЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛)ред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hashibot picture hashibot  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brett-richardson picture brett-richardson  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yml picture yml  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ