Terraform-provider-aws: рдХрд╕реНрдЯрдо рдХреЙрдЧреНрдирд┐рдЯреЛ рдпреВрдЬрд░ рдкреВрд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдирдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрд▓ рдорд┐рд▓рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдорд╛рд░реНрдЪ 2018  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hashicorp/terraform-provider-aws

рдирдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреЙрдЧреНрдирд┐рдЯреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЗ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг

$ terraform -v
Terraform v0.11.4
+ provider.aws v1.11.0

рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рдВрд╕рд╛рдзрди

aws_cognito_user_pool

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

variable "region" {
  default = "us-east-1"
}

provider "aws" {
  region = "${var.region}"
}

resource "aws_cognito_user_pool" "pool" {
  name = "bug-test-pool"

  /*
  schema {
    attribute_data_type      = "Number"
    developer_only_attribute = false
    mutable                  = false
    name                     = "custom-attribute"
    required                 = false
  }
  */
}

рдбреАрдмрдЧ рдЖрдЙрдЯрдкреБрдЯ

рдЙрдкрд░реЛрдХреНрдд рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж terraform plan рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯред

Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_cognito_user_pool.pool: Refreshing state... (ID: us-east-1_Cj77gRCdj)

------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement

Terraform will perform the following actions:

-/+ aws_cognito_user_pool.pool (new resource required)
      id:                                               "us-east-1_Cj77gRCdj" => <computed> (forces new resource)
      admin_create_user_config.#:                       "1" => <computed>
      arn:                                              "arn:aws:cognito-idp:us-east-1:326947223243:userpool/us-east-1_Cj77gRCdj" => <computed>
      creation_date:                                    "2018-03-22T19:06:44Z" => <computed>
      email_verification_message:                       "" => <computed>
      email_verification_subject:                       "" => <computed>
      lambda_config.#:                                  "0" => <computed>
      last_modified_date:                               "2018-03-22T19:06:44Z" => <computed>
      mfa_configuration:                                "OFF" => "OFF"
      name:                                             "bug-test-pool" => "bug-test-pool"
      password_policy.#:                                "1" => <computed>
      schema.#:                                         "" => "1" (forces new resource)
      schema.2616754751.attribute_data_type:            "" => "Number"
      schema.2616754751.developer_only_attribute:       "" => "false"
      schema.2616754751.mutable:                        "" => "false"
      schema.2616754751.name:                           "" => "custom-attribute"
      schema.2616754751.number_attribute_constraints.#: "" => "0"
      schema.2616754751.required:                       "" => "false"
      schema.2616754751.string_attribute_constraints.#: "" => "0"
      verification_message_template.#:                  "1" => <computed>


Plan: 1 to add, 0 to change, 1 to destroy.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

рдкреИрдирд┐рдХ рдЖрдЙрдЯрдкреБрдЯ

рдХреЛрдИ рдирд╣реАрдВ

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдХреЙрдЧреНрдирд┐рдЯреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЛ рдирд╖реНрдЯ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВред рдпрд╣ рдХреЙрдЧреНрдирд┐рдЯреЛ рдпреВрдЖрдИ рдФрд░ рдПрдкреАрдЖрдИ (https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIreference/API_AddCustomAttributes.html) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдХреЙрдЧреНрдирд┐рдЯреЛ рдпреВрдЬрд░ рдкреВрд▓ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

schema.#: "" => "1" (forces new resource)

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

  1. terraform apply - рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдмрдирд╛рдПрдВ
  2. рдПрдХ рдирдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ
  3. terrform plan - рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЙрдЧреНрдирд┐рдЯреЛ рдпреВрдЬрд░ рдкреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдЧрд╛ред

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлреИрдХреНрдЯреЛрдЗрдбреНрд╕

рдХреЛрдИ рдирд╣реАрдВ

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

рдХреЛрдИ рдирд╣реАрдВ

enhancement serviccognito

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

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдЖрдк рд▓реЛрдЧ рд╣рдореЗрдВ рдПрдХ рдРрд╕реЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЙрдбрд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдЕрдк рдбреЗрдЯрд╛ рднреА рд╣реИ), рдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ Iign_changes * рдФрд░ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдВрдд рдореЗрдВ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдФрд░ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ 9 рдорд╣реАрдиреЗ рд╕реЗ рд╡рд╣рд╛рдБ рдмреИрдард╛ рд╣реИ, рдореБрдЭреЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ AWS рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рд╕рдВрджреЗрд╣ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛_рдкреВрд▓ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрд╛рд░ рдмрдирд╛рдИ рдЧрдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдпрд╛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рддреЛ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реА рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ AWS рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА

рдареАрдХ рд╣реИ, рдПрдХ рдмрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдП рдмрд┐рдирд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд╛рдЗрд╡ рд╣реЛрдиреЗ рдкрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 1.12 рдкрд░ рдкреЗрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рдмреАрдЪ, рдЖрдк рдЗрд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо (рд╡реЗрдм тАЛтАЛрдХрдВрд╕реЛрд▓, рд╕реАрдПрд▓рдЖрдИ, рдЖрджрд┐) рдХреЗ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдереЛрдбрд╝рд╛ рдФрд░ рд╢реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рдЧрдИ рд╣реИред рдпрджрд┐ рд╕реНрдХреАрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдореЗрдВ string_attribute_constraints рдпрд╣ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдП рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрд╛рдзреНрдп рдХрд░реЗрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рд╕рдВрд╕рд╛рдзрди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:

schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = false
    name                     = "picture"
    required                 = true
  }

рдЬрдмрдХрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ:

schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = false
    name                     = "picture"
    required                 = true

    string_attribute_constraints {
      min_length = 6
      max_length = 32
    }
  }

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдмрдЧ рд╣реИред

@leonfs рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ thwbrules рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреВрд▓ рдХреЛ рдХрдм рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рдХрдм рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реИред @bflad рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реВрдВред

@ рдкреБрдиреАрдд-рдПрди рд╣рд╛рдВ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред рдлрд┐рд▓рд╣рд╛рд▓ рд╕реНрдХреАрдорд╛ рд╕реЗрдЯ рдкрд░ ForceNew: true , рд▓реЗрдХрд┐рди рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛ (Google) рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рджрд┐рдпрд╛ (рдКрдкрд░ рджреЗрдЦреЗрдВ)ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ AWS рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж identities рдирд╛рдордХ рдПрдХ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреАрдорд╛ рдХрд╛ рд╕реЗрдЯ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реЗ рдирдП рдкреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ (рд╕рдВрд╕рд╛рдзрди рдирд┐рд░реНрдорд╛рдг) рдХрд┐ рдЖрдк рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА .tf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реЛред

$ рдмрд┐рд▓реНрд▓реА main.tf

provider "aws" {
}

resource "aws_cognito_user_pool" "pankajk_security" {
  name                       = "pankajk-security"
  email_verification_subject = "Your Verification Code"
  email_verification_message = "Please use the following code: {####}"
  alias_attributes           = ["email", "preferred_username"]
  auto_verified_attributes   = ["email"]

  verification_message_template {
    default_email_option = "CONFIRM_WITH_CODE"
  }

  password_policy {
    minimum_length    = 10
    require_lowercase = true
    require_numbers   = true
    require_symbols   = true
    require_uppercase = true
  }

  schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "email"
    required                 = true

    string_attribute_constraints {
      min_length = 7
      max_length = 256
    }
  }

  schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "oid"
    required                 = false

    number_attribute_constraints {
      min_value = 1
      max_value = 256
    }
  }
}

$ рдЯреЗрд░рд╛рдлреЙрд░реНрдо -рд╡реА

Terraform v0.11.7
+ provider.aws v1.14.1

$ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓рд╛рдЧреВ

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  + aws_cognito_user_pool.pankajk_security
      id:                                                          <computed>
      admin_create_user_config.#:                                  <computed>
      alias_attributes.#:                                          "2"
      alias_attributes.1888159429:                                 "preferred_username"
      alias_attributes.881205744:                                  "email"
      arn:                                                         <computed>
      auto_verified_attributes.#:                                  "1"
      auto_verified_attributes.881205744:                          "email"
      creation_date:                                               <computed>
      email_verification_message:                                  "Please use the following code: {####}"
      email_verification_subject:                                  "Your Verification Code"
      lambda_config.#:                                             <computed>
      last_modified_date:                                          <computed>
      mfa_configuration:                                           "OFF"
      name:                                                        "pankajk-security"
      password_policy.#:                                           "1"
      password_policy.0.minimum_length:                            "10"
      password_policy.0.require_lowercase:                         "true"
      password_policy.0.require_numbers:                           "true"
      password_policy.0.require_symbols:                           "true"
      password_policy.0.require_uppercase:                         "true"
      schema.#:                                                    "2"
      schema.1734507539.attribute_data_type:                       "String"
      schema.1734507539.developer_only_attribute:                  "false"
      schema.1734507539.mutable:                                   "true"
      schema.1734507539.name:                                      "email"
      schema.1734507539.number_attribute_constraints.#:            "0"
      schema.1734507539.required:                                  "true"
      schema.1734507539.string_attribute_constraints.#:            "1"
      schema.1734507539.string_attribute_constraints.0.max_length: "256"
      schema.1734507539.string_attribute_constraints.0.min_length: "7"
      schema.3768180960.attribute_data_type:                       "String"
      schema.3768180960.developer_only_attribute:                  "false"
      schema.3768180960.mutable:                                   "true"
      schema.3768180960.name:                                      "oid"
      schema.3768180960.number_attribute_constraints.#:            "1"
      schema.3768180960.number_attribute_constraints.0.max_value:  "256"
      schema.3768180960.number_attribute_constraints.0.min_value:  "1"
      schema.3768180960.required:                                  "false"
      schema.3768180960.string_attribute_constraints.#:            "0"
      verification_message_template.#:                             "1"
      verification_message_template.0.default_email_option:        "CONFIRM_WITH_CODE"
      verification_message_template.0.email_message:               <computed>
      verification_message_template.0.email_message_by_link:       <computed>
      verification_message_template.0.email_subject:               <computed>
      verification_message_template.0.email_subject_by_link:       <computed>
      verification_message_template.0.sms_message:                 <computed>


Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

aws_cognito_user_pool.pankajk_security: Creating...
  admin_create_user_config.#:                                  "" => "<computed>"
  alias_attributes.#:                                          "" => "2"
  alias_attributes.1888159429:                                 "" => "preferred_username"
  alias_attributes.881205744:                                  "" => "email"
  arn:                                                         "" => "<computed>"
  auto_verified_attributes.#:                                  "" => "1"
  auto_verified_attributes.881205744:                          "" => "email"
  creation_date:                                               "" => "<computed>"
  email_verification_message:                                  "" => "Please use the following code: {####}"
  email_verification_subject:                                  "" => "Your Verification Code"
  lambda_config.#:                                             "" => "<computed>"
  last_modified_date:                                          "" => "<computed>"
  mfa_configuration:                                           "" => "OFF"
  name:                                                        "" => "pankajk-security"
  password_policy.#:                                           "" => "1"
  password_policy.0.minimum_length:                            "" => "10"
  password_policy.0.require_lowercase:                         "" => "true"
  password_policy.0.require_numbers:                           "" => "true"
  password_policy.0.require_symbols:                           "" => "true"
  password_policy.0.require_uppercase:                         "" => "true"
  schema.#:                                                    "" => "2"
  schema.1734507539.attribute_data_type:                       "" => "String"
  schema.1734507539.developer_only_attribute:                  "" => "false"
  schema.1734507539.mutable:                                   "" => "true"
  schema.1734507539.name:                                      "" => "email"
  schema.1734507539.number_attribute_constraints.#:            "" => "0"
  schema.1734507539.required:                                  "" => "true"
  schema.1734507539.string_attribute_constraints.#:            "" => "1"
  schema.1734507539.string_attribute_constraints.0.max_length: "" => "256"
  schema.1734507539.string_attribute_constraints.0.min_length: "" => "7"
  schema.3768180960.attribute_data_type:                       "" => "String"
  schema.3768180960.developer_only_attribute:                  "" => "false"
  schema.3768180960.mutable:                                   "" => "true"
  schema.3768180960.name:                                      "" => "oid"
  schema.3768180960.number_attribute_constraints.#:            "" => "1"
  schema.3768180960.number_attribute_constraints.0.max_value:  "" => "256"
  schema.3768180960.number_attribute_constraints.0.min_value:  "" => "1"
  schema.3768180960.required:                                  "" => "false"
  schema.3768180960.string_attribute_constraints.#:            "" => "0"
  verification_message_template.#:                             "" => "1"
  verification_message_template.0.default_email_option:        "" => "CONFIRM_WITH_CODE"
  verification_message_template.0.email_message:               "" => "<computed>"
  verification_message_template.0.email_message_by_link:       "" => "<computed>"
  verification_message_template.0.email_subject:               "" => "<computed>"
  verification_message_template.0.email_subject_by_link:       "" => "<computed>"
  verification_message_template.0.sms_message:                 "" => "<computed>"
aws_cognito_user_pool.pankajk_security: Creation complete after 3s (ID: us-west-2_t6jMrbPx1)

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

$рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдпреЛрдЬрдирд╛

Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_cognito_user_pool.pankajk_security: Refreshing state... (ID: us-west-2_t6jMrbPx1)

------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement

Terraform will perform the following actions:

-/+ aws_cognito_user_pool.pankajk_security (new resource required)
      id:                                                          "us-west-2_t6jMrbPx1" => <computed> (forces new resource)
      admin_create_user_config.#:                                  "1" => <computed>
      alias_attributes.#:                                          "2" => "2"
      alias_attributes.1888159429:                                 "preferred_username" => "preferred_username"
      alias_attributes.881205744:                                  "email" => "email"
      arn:                                                         "arn:aws:cognito-idp:us-west-2:166326852216:userpool/us-west-2_t6jMrbPx1" => <computed>
      auto_verified_attributes.#:                                  "1" => "1"
      auto_verified_attributes.881205744:                          "email" => "email"
      creation_date:                                               "2018-04-18T18:11:08Z" => <computed>
      email_verification_message:                                  "Please use the following code: {####}" => "Please use the following code: {####}"
      email_verification_subject:                                  "Your Verification Code" => "Your Verification Code"
      lambda_config.#:                                             "0" => <computed>
      last_modified_date:                                          "2018-04-18T18:11:08Z" => <computed>
      mfa_configuration:                                           "OFF" => "OFF"
      name:                                                        "pankajk-security" => "pankajk-security"
      password_policy.#:                                           "1" => "1"
      password_policy.0.minimum_length:                            "10" => "10"
      password_policy.0.require_lowercase:                         "true" => "true"
      password_policy.0.require_numbers:                           "true" => "true"
      password_policy.0.require_symbols:                           "true" => "true"
      password_policy.0.require_uppercase:                         "true" => "true"
      schema.#:                                                    "2" => "2"
      schema.1734507539.attribute_data_type:                       "String" => "String"
      schema.1734507539.developer_only_attribute:                  "false" => "false"
      schema.1734507539.mutable:                                   "true" => "true"
      schema.1734507539.name:                                      "email" => "email"
      schema.1734507539.number_attribute_constraints.#:            "0" => "0"
      schema.1734507539.required:                                  "true" => "true"
      schema.1734507539.string_attribute_constraints.#:            "1" => "1"
      schema.1734507539.string_attribute_constraints.0.max_length: "256" => "256"
      schema.1734507539.string_attribute_constraints.0.min_length: "7" => "7"
      schema.3768180960.attribute_data_type:                       "" => "String" (forces new resource)
      schema.3768180960.developer_only_attribute:                  "" => "false" (forces new resource)
      schema.3768180960.mutable:                                   "" => "true" (forces new resource)
      schema.3768180960.name:                                      "" => "oid" (forces new resource)
      schema.3768180960.number_attribute_constraints.#:            "" => "1" (forces new resource)
      schema.3768180960.number_attribute_constraints.0.max_value:  "" => "256" (forces new resource)
      schema.3768180960.number_attribute_constraints.0.min_value:  "" => "1" (forces new resource)
      schema.3768180960.required:                                  "" => "false" (forces new resource)
      schema.3768180960.string_attribute_constraints.#:            "" => "0"
      schema.383977790.attribute_data_type:                        "String" => "" (forces new resource)
      schema.383977790.developer_only_attribute:                   "false" => "false"
      schema.383977790.mutable:                                    "true" => "false" (forces new resource)
      schema.383977790.name:                                       "oid" => "" (forces new resource)
      schema.383977790.number_attribute_constraints.#:             "0" => "0"
      schema.383977790.required:                                   "false" => "false"
      schema.383977790.string_attribute_constraints.#:             "1" => "0" (forces new resource)
      schema.383977790.string_attribute_constraints.0.max_length:  "" => ""
      schema.383977790.string_attribute_constraints.0.min_length:  "" => ""
      verification_message_template.#:                             "1" => "1"
      verification_message_template.0.default_email_option:        "CONFIRM_WITH_CODE" => "CONFIRM_WITH_CODE"
      verification_message_template.0.email_message:               "Please use the following code: {####}" => <computed>
      verification_message_template.0.email_message_by_link:       "" => <computed>
      verification_message_template.0.email_subject:               "Your Verification Code" => <computed>
      verification_message_template.0.email_subject_by_link:       "" => <computed>
      verification_message_template.0.sms_message:                 "" => <computed>


Plan: 1 to add, 0 to change, 1 to destroy.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

@pankajku рдЖрдк рдЬрд┐рд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрд▓рдЧ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдИрдПрдордПрдЪрдУ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реИред oid , рдЖрдк attribute_data_type = "String" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди number_attribute_constraints рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрд╢реЛрдзрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдиреАрдЪреЗ рд╣реИ:

variable "region" {
  default = "us-east-1"
}

provider "aws" {
  version               = "1.14.1"
  region                = "${var.region}"
}

resource "aws_cognito_user_pool" "pankajk_security" {
  name                       = "pankajk-security"
  email_verification_subject = "Your Verification Code"
  email_verification_message = "Please use the following code: {####}"
  alias_attributes           = ["email", "preferred_username"]
  auto_verified_attributes   = ["email"]

  verification_message_template {
    default_email_option = "CONFIRM_WITH_CODE"
  }

  password_policy {
    minimum_length    = 10
    require_lowercase = true
    require_numbers   = true
    require_symbols   = true
    require_uppercase = true
  }

  schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "email"
    required                 = true

    string_attribute_constraints {
      min_length = 7
      max_length = 256
    }
  }

  schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "oid"
    required                 = false

    string_attribute_constraints {
      min_length = 1
      max_length = 256
    }
  }
}

@ рдкреБрдиреАрде-рдПрди, рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗрд╡рд▓ рдмрджрд▓реА рд╣реБрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рд╡рд░реНрддрди (рдЬреИрд╕реЗ рд╕рддреНрдпрд╛рдкрди рд╕рдВрджреЗрд╢ рдкрд╛рда) рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ "рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓рд╛рдЧреВ" рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдИрдореЗрд▓ рд╕рддреНрдпрд╛рдкрди рдзреНрд╡рдЬ рдЕрдирд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

$ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓рд╛рдЧреВ

aws_cognito_user_pool.pankajk_security: Refreshing state... (ID: us-west-2_LKVhvfWsH)

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  ~ aws_cognito_user_pool.pankajk_security
      email_verification_subject: "Your verification code" => "Your Verification Code"


Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

aws_cognito_user_pool.pankajk_security: Modifying... (ID: us-west-2_LKVhvfWsH)
  email_verification_subject: "Your verification code" => "Your Verification Code"
aws_cognito_user_pool.pankajk_security: Modifications complete after 1s (ID: us-west-2_LKVhvfWsH)

Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

$ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдпреЛрдЬрдирд╛

Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

aws_cognito_user_pool.pankajk_security: Refreshing state... (ID: us-west-2_LKVhvfWsH)

------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  ~ aws_cognito_user_pool.pankajk_security
      auto_verified_attributes.#:         "0" => "1"
      auto_verified_attributes.881205744: "" => "email"


Plan: 0 to add, 1 to change, 0 to destroy.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдмрдЧ рдореЗрдВ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рднреА рд╣реИред

рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдПрдХ рджрд┐рди рдХрд┐рд╕реА рдХреЛ рдмрд╣реБрдд рджрд┐рд▓ рдХрд╛ рджрд░реНрдж рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬрдм tf рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдЕрдкрдиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ ...

рдЗрд╕реЗ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдХрдВрд╕реЛрд▓/рдХреНрд▓реА рдореЗрдВ рдирд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред

    {
      name                     = "foo"
      attribute_data_type      = "String"
      mutable                  = true
      developer_only_attribute = "false"
      required                 = "false"

      string_attribute_constraints = {
        min_length = 0
        max_length = 256
      }
    },

рд╣рд╛рдБред рдореЗрд░реЗ рдкрд╛рд╕ prevent_destroy pool рдФрд░ client рджреЛрдиреЛрдВ рдкрд░ рд╕реЗрдЯ рд╣реИ

рдЬрдм рднреА рдореИрдВ рдирдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддрдм рднреА рд╕рдВрд╕рд╛рдзрди рдкреБрди: рдирд┐рд░реНрдорд╛рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реИред

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг
рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.11.8
рдкреНрд░рджрд╛рддрд╛.aws v1.36.0

рдирдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ

resource "aws_cognito_user_pool" "pool" {
  name                       = "Test"
  username_attributes        = ["email"]
  auto_verified_attributes   = ["email"]

  schema = [
    {
      attribute_data_type          = "String"
      developer_only_attribute     = false
      mutable                      = false
      name                         = "email"
      required                     = true
      string_attribute_constraints = {
        min_length = 1
        max_length = 256
      }
    },
    {
      attribute_data_type          = "String"
      developer_only_attribute     = false
      mutable                      = true
      name                         = "custom1"
      required                     = false
      string_attribute_constraints = {
        min_length = 0
        max_length = 256
      }
    }
  ]
}

рдирдИ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ

{
      attribute_data_type          = "String"
      developer_only_attribute     = false
      mutable                      = true
      name                         = "custom2"
      required                     = false
      string_attribute_constraints = {
        min_length = 0
        max_length = 256
      }
    }

рдбреАрдмрдЧ рдЖрдЙрдЯрдкреБрдЯ

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement

Terraform will perform the following actions:

-/+ aws_cognito_user_pool.pool (new resource required)
 ...
      lambda_config.#:                                             "0" => <computed>
      last_modified_date:                                          "2018-09-19T03:33:52Z" => <computed>
      mfa_configuration:                                           "OFF" => "OFF"
      name:                                                        "Test" => "Test"
      password_policy.#:                                           "1" => <computed>
      schema.#:                                                    "2" => "3" (forces new resource)
      schema.2766842814.attribute_data_type:                       "" => "String" (forces new resource)
      schema.2766842814.developer_only_attribute:                  "" => "false" (forces new resource)
      schema.2766842814.mutable:                                   "" => "true" (forces new resource)
      schema.2766842814.name:                                      "" => "custom2" (forces new resource)
      schema.2766842814.number_attribute_constraints.#:            "" => "0"
      schema.2766842814.required:                                  "" => "false" (forces new resource)
      schema.2766842814.string_attribute_constraints.#:            "" => "1" (forces new resource)
      schema.2766842814.string_attribute_constraints.0.max_length: "" => "256" (forces new resource)
      schema.2766842814.string_attribute_constraints.0.min_length: "" => "0" (forces new resource)
      schema.3686385984.attribute_data_type:                       "String" => "String"
      schema.3686385984.developer_only_attribute:                  "false" => "false"
      schema.3686385984.mutable:                                   "false" => "false"
      schema.3686385984.name:                                      "email" => "email"
      schema.3686385984.number_attribute_constraints.#:            "0" => "0"
      schema.3686385984.required:                                  "true" => "true"
      schema.3686385984.string_attribute_constraints.#:            "1" => "1"
      schema.3686385984.string_attribute_constraints.0.max_length: "256" => "256"
      schema.3686385984.string_attribute_constraints.0.min_length: "1" => "1"
      schema.893709367.attribute_data_type:                        "String" => "String"
      schema.893709367.developer_only_attribute:                   "false" => "false"
      schema.893709367.mutable:                                    "true" => "true"
      schema.893709367.name:                                       "custom1" => "custom1"
      schema.893709367.number_attribute_constraints.#:             "0" => "0"
      schema.893709367.required:                                   "false" => "false"
      schema.893709367.string_attribute_constraints.#:             "1" => "1"
      schema.893709367.string_attribute_constraints.0.max_length:  "256" => "256"
      schema.893709367.string_attribute_constraints.0.min_length:  "0" => "0"
      username_attributes.#:                                       "1" => "1"
      username_attributes.0:                                       "email" => "email"
      verification_message_template.#:                             "1" => <computed>


Plan: 1 to add, 0 to change, 1 to destroy.

рдПрдлрд╡рд╛рдИрдЖрдИ: рдореИрдВрдиреЗ string_attribute_constraints рдмрд┐рдирд╛ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдирд╛рдИ, рдлрд┐рд░ рдореБрдЭреЗ рдЙрд╕реА рдмрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

  schema {
    name                     = "custom_id"
    required                 = false
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
  }

рдЬрдм рдореИрдВрдиреЗ рдЦрд╛рд▓реА рдЬреЛрдбрд╝рд╛ string_attribute_constraints , рддреЛ рдореИрдВ рдЗрд╕ рдмрдЧ рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рдерд╛!

  schema {
    name                     = "custom_id"
    required                 = false
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true

    string_attribute_constraints {}
  }

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ!

рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "parent_id"
    required                 = false

    string_attribute_constraints {
      min_length = 1
      max_length = 256
    }
  }

рдпреЛрдЬрдирд╛:

schema.#:                                                    "10" => "11" (forces new resource)
schema.2272806367.attribute_data_type:                       "" => "String" (forces new resource)
schema.2272806367.developer_only_attribute:                  "" => "false" (forces new resource)
schema.2272806367.mutable:                                   "" => "false" (forces new resource)
schema.2272806367.name:                                      "" => "parent_id" (forces new resource)
schema.2272806367.number_attribute_constraints.#:            "" => "0"
schema.2272806367.required:                                  "" => "false" (forces new resource)
schema.2272806367.string_attribute_constraints.#:            "" => "1" (forces new resource)
schema.2272806367.string_attribute_constraints.0.max_length: "" => "256" (forces new resource)
schema.2272806367.string_attribute_constraints.0.min_length: "" => "1" (forces new resource)

рд╕рдВрд╕реНрдХрд░рдг:

Terraform v0.11.11
+ provider.archive v1.1.0
+ provider.aws v1.52.0

рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдирдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ/рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдкреВрд▓ рдХреЛ 10+ рдмрд╛рд░ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдЖрдк рд▓реЛрдЧ рд╣рдореЗрдВ рдПрдХ рдРрд╕реЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЙрдбрд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдЕрдк рдбреЗрдЯрд╛ рднреА рд╣реИ), рдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ Iign_changes * рдФрд░ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдВрдд рдореЗрдВ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдФрд░ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ 9 рдорд╣реАрдиреЗ рд╕реЗ рд╡рд╣рд╛рдБ рдмреИрдард╛ рд╣реИ, рдореБрдЭреЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рди рд╣реЛрдиреЗ рдкрд░ рднреА рдпрд╣ рд╣рдореЗрд╢рд╛ рдкреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИред

> terraform --version
Terraform v0.11.11
+ provider.archive v1.1.0
+ provider.aws v1.54.0

рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛

Terraform v0.11.11
+ provider.aws v1.57.0

рдФрд░ рдЕрднреА рднреА...

Terraform v0.11.11
+ provider.aws v1.59.0

рдореИрдВ рднреА рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реВрдВ, рдХрд┐рд╕реА рднреА рдЙрдкрд╛рдп рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

Terraform v0.11.11
+ provider.aws v1.60.0

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ 9 рдорд╣реАрдиреЗ рд╕реЗ рд╡рд╣рд╛рдБ рдмреИрдард╛ рд╣реИ, рдореБрдЭреЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЦреБрдж рд╕реЗ рд╡рд╣реА рд╕рд╡рд╛рд▓ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕реЗ рдмрд╣реБрдд рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреАрдбрд╝реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓рд╛ рдЧрдпрд╛, рдХреБрдЫ - рджреЛ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХред рдЗрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рдмрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкреАрдЖрд░ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдмрд┐рдирд╛ рд▓рдЯрдХреЗ рд▓рдЯрдХреЗ рд░рд╣рддреЗ рд╣реИрдВред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдЧрдВрднреАрд░ рд▓реЗрдХрд┐рди jsonencode рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рднрд░ рджреА рд╣реИ - рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдлрд╝рд┐рдЬрд╝ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ред рдЙрддреНрддрд░ рдерд╛ - рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 12 рдореЗрдВ рддрдп рд╣реИ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рд╕рдордп рдкрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╣рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 11 рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред

BTW рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдореБрджреНрджрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдХрд┐ рдХреЙрдЧреНрдирд┐рдЯреЛ рдпреВрдЬрд░ рдкреВрд▓ рдХреЗ рдкрд╛рд╕ рд╣реИред Callback_urls рдХреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ AWS рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓рдЧрд╛рддрд╛рд░ рдСрд░реНрдбрд░ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

@voroniys рдореЗрд░рд╛ 3+ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рджреВрд░ рд╣реИ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА IaC рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдИрд╢реНрд╡рд░ рдХреА рдкрд╣реБрдВрдЪ рд╣реИред рд░рд╛рдЬреНрдп рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

рдореИрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ "рдареАрдХ" рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред

рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдирд╛ рд╣реИ, рдЬреИрд╕реЗ aws_cognito_user_pool_schema_custom_attribute ред

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдПрдХ рд╕реНрдХреАрдорд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓рдмреИрдХ рдмрдирд╛рдПрдВ, рдкрдврд╝реЗрдВ, рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдВред рдХреЛрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдФрд░ рдЖрдкрдХреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдВрддрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ TF рдкрд░ рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреАрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрддрд░ рдЧрдгрдирд╛ рдкрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдирдпрд╛ рдХрд╕реНрдЯрдо рд╕реНрдХреАрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрд╕рд╛рдзрди рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЕрд▓рдЧ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдХреНрд░рд┐рдПрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдирд╖реНрдЯ / рдЕрдиреБрдХреНрд░рдо рдмрдирд╛рдПрдВ рдкреВрд▓ред рд╕реНрдХреАрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдмрдирд╛рдПрдБ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо AWS Cognito AddCustomAttributes API рдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдХреАрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдЬрдм рдЖрдк (рдЧрд▓рддреА рд╕реЗ) рдЕрдкрдиреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЛрдб рд╕реЗ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рд╕реНрдХреАрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрд╕рд╛рдзрди рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ TF рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╣рдЯрд╛рдПрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рд╣рдо рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдЯрд╛рдирд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЗ TF рдХреЛрдб рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ?

@bflad , рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХреМрди рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдЖрдкрдХреЗ рдХрд╛рдо рдФрд░ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ringods ред рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рд░рд╛рд╕реНрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!

рдЖрдЬ рднреА рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдирд╛:

Terraform v0.12.3
+ provider.aws v2.18.0 

рддреНрд╡рд░рд┐рдд рдкреБрдирд░реНрдХрдерди:

resource "aws_cognito_user_pool" "pool" {
  name = "mypooltest2"
  }

рдлрд┐рд░ рдЬреЛ рднреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ:

resource "aws_cognito_user_pool" "pool" {
  name = "mypooltest2"

  schema {
  attribute_data_type = "String"
  name = "email" 
  required = true
  }
}

рдХреЗрд╡рд▓ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреИрд╕реЗ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдирд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕рдВрд╕рд╛рдзрди рдЬреЛрдбрд╝реЗрдВ:

Plan: 1 to add, 0 to change, 1 to destroy.

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

рдореМрдЬреВрджрд╛ tf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ @ringods рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдкрд╣рд▓рд╛ рдорд╕реМрджрд╛ рд╣реИред рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЯреЗрд░рд╛рдлреЙрд░реНрдо-рдкреНрд░рджрд╛рддрд╛-рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореИрдВ рдЕрдм рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдБред рдЬрдирд╕рдВрдкрд░реНрдХ рдкрд░ рд╕реБрдЭрд╛рд╡/рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ!

рд╣рдордиреЗ рдЕрдкрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдЦреЛрдП рдмрд┐рдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдЧреНрдирд┐рдЯреЛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝реАрдВ:

  1. рдореМрдЬреВрджрд╛ рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП CLI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: aws cognito-idp --region ... add-custom-attributes --user-pool-id ... --custom-attributes Name=...,AttributeDataType=Boolean,DeveloperOnlyAttribute=false, Mutable=true,Required=false
  2. рдЕрджреНрдпрддрди рд╕рдВрд╕рд╛рдзрди рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдЧреНрдирд┐рдЯреЛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдирд┐рдХрд╛рд▓реЗрдВред terraform state rm aws_cognito_user_pool.main
  3. рдЕрджреНрдпрддрди рд╕рдВрд╕рд╛рдзрди рдЖрдпрд╛рдд рдХрд░реЗрдВред terraform import aws_cognito_user_pool.main ...

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рд╕рдВрд╕рд╛рдзрди, рд░рд╛рдЬреНрдп рдФрд░ main.tf рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдм рдорд┐рд▓рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рдПрдХ рджреЗрд╡ рдПрдирд╡реА рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ! рд░рд╛рдЬреНрдп рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрдкреЛрд░реЛрдорд╛ рдХрд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдЕрднреА рднреА рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ? рд╣рдо рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдмреЗрд╕рдмреНрд░реА рд╕реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╕реНрдерд┐рддрд┐ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред :-)

рдкрд┐рдВрдЧ рднреАред рд░рд╛рдЬреНрдп рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ... рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж

рджреЛрд╕реНрддреЛрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдЕрдм рд╣рдо 2020 рдореЗрдВ рд╣реИрдВ...

рд╣рд╛рдБ, рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ...

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд░рд╛рдЬреНрдп рдФрд░ рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрдо рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

ePoromaa рдХреЗ рд╕рдорд╛рди, рдЖрдкрдХреЛ cognito рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ aws cli cmd рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
aws cognito-idp add-custom-attributes --user-pool-id us-west-2_aaaaaaaaa --custom-attributes Name="CustomAttr1",AttributeDataType="String",DeveloperOnlyAttribute=false,Required=false,StringAttributeConstraints="{MinLength=1,MaxLength=15}"
рдЙрдкрд▓рдмреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/add-custom-attributes.html

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк aws cli рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЕрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдХреЙрдЧреНрдирд┐рдЯреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЛрдб рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдХреАрдорд╛ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

schema { name = "CustomAttr1" attribute_data_type = "String" required = false developer_only_attribute = false string_attribute_constraints { min_length = 1 max_length = 15 } }

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рд╕реНрдХреАрдорд╛ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрддреНрдкрд╛рдж рдореЗрдВ рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдиреЗрдВрдЧреЗред

рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.12.26

  • рдкреНрд░рджрд╛рддрд╛.aws v2.56.0

рдЕрднреА рднреА рдореБрджреНрджрд╛ рд╣реИ ...

рд╣рд╛рдп рд╕рдм рд▓реЛрдЧ, рдпрд╣рд╛рдБ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░реЗрдВ!

рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ

Terraform v0.12.28
+ provider.aws v2.67.0

рдХреГрдкрдпрд╛ рдкрддрд╛ рдХрд░реЗрдВред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдХреЗ рд╡рд┐рдирд╛рд╢ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди:
1) рдХрдВрд╕реЛрд▓ рдпрд╛ рдХреНрд▓реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВред
2) рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрднреА рдмрдирд╛рдИ рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рд╣рд░ рддрд░рд╣ рд╕реЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕реНрдХреАрдорд╛ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝реЗрдВред
3) рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд░реАрдлреНрд░реЗрд╢ рдЪрд▓рд╛рдПрдВред рдЗрд╕реЗ рд╕реНрдХреАрдорд╛ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
4) рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдпреЛрдЬрдирд╛ рдЪрд▓рд╛рдПрдБ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреВрд▓ рдЕрдм рдирд╖реНрдЯ рди рд╣реЛред

рдирдорд╕реНрддреЗ, рд╣рдо рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреЛрдИ рд╕реБрдзрд╛рд░? рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рд╢реАрдХреЙрд░реНрдк рд╕реЗ рдХреЛрдИ рдмрд╛рд╣рд░ рд╣реИ? рд╣реИрд▓реЛ ....

рдЗрд╕рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ:

рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.12.29

рдЯреЗрд░рд╛рдлреЙрд░реНрдо v0.13.3

  • рдкреНрд░рджрд╛рддрд╛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА.terraform.io/hashicorp/aws v2.70.0

рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ

рдирдорд╕реНрддреЗ! :wave: рдмрд╕ рдЖрдкрдХреЛ рдЗрд╕ рддрд┐рдорд╛рд╣реА (рдирд╡рдВрдмрд░-рдЬрдирд╡рд░реА) рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реЛрдбрдореИрдк рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдордж рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╣рд┐рдд рдХреЗ рдХрд╛рд░рдг, рд╣рдо рдЬрд▓реНрдж рд╣реА рдореМрдЬреВрджрд╛ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЛ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдЕрдм рддрдХ рдХреЗ рд╕рднреА рдпреЛрдЧрджрд╛рдиреЛрдВ рдФрд░ рдлреАрдбрдмреИрдХ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

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

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

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

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

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

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

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