2017-12-06 2 views
1

Momentan steckt er im Sand, als er versuchte, einen App-Client für einen AWS Cognito User Pool über Terraform einzurichten. Hier ist meine Ressource, wie es steht:Terraform AWS Cognito App-Client

resource "aws_cognito_user_pool" "notes-pool" { 
    name = "notes-pool" 
    username_attributes = ["email"] 

    verification_message_template { 
    default_email_option = "CONFIRM_WITH_CODE" 
    } 

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

    tags { 
    "Name" = "notes-pool" 
    "Environment" = "production" 
    } 
} 

Die oben genannten Arbeiten ganz gut, und mein Benutzer-Pool erstellt wird. Wenn jemand Ideen hat, wie man einen App-Client in derselben Ressource erstellt, bin ich ganz Ohr. Ich fange an zu vermuten, dass diese Funktionalität nicht existiert!

Antwort

1

Ich glaube, das wurde gerade der jüngsten Version von Terraform hinzugefügt.

resource "aws_cognito_user_pool_client" "client" { 
    name = "client" 
    user_pool_id = "${aws_cognito_user_pool.pool.id}" 
    generate_secret = true 
    explicit_auth_flows = ["ADMIN_NO_SRP_AUTH"] 
} 

Sehen Sie hier für die Dokumentation: Man könnte so etwas wie die folgenden, um einen Client zu Ihrem Benutzer Pool hinzufügen tun Terraform entry on aws_cognito_user_pool_client

+0

Du bist großartig, danke! –

3

Diese Funktion wird derzeit von Terraform nicht unterstützt.

Es gibt eine open issue on GitHub, wo dies angefordert wurde (geben Sie einen Daumen hoch, wenn Sie von dieser Funktion profitieren würden).

Bis Unterstützung hinzugefügt wird, die beste Option ist, um die local-exec provisioner zu verwenden, um den Benutzer Pool über die CLI zu erstellen, sobald die Ressource erstellt wird:

resource "aws_cognito_user_pool" "notes-pool" { 
    name = "notes-pool" 

    username_attributes = ["email"] 
    ... 

    provisioner "local-exec" { 
    command = <<EOF 
aws cognito-idp create-user-pool-client \ 
    --user-pool-id ${aws_cognito_user_pool.notes-pool.id} \ 
    --client-name client-name \ 
    --no-generate-secret \ 
    --explicit-auth-flows ADMIN_NO_SRP_AUTH 
EOF 
    } 
} 

Bitte beachten, dass, um diese zu nutzen, müssen Sie haben Die AWS CLI installiert und authentifiziert (ich verwende Umgebungsvariablen zur Authentifizierung mit Terraform und der AWS CLI).