3

Ich versuche, mit einem Tutorial unter http://serverless-stack.com/chapters/create-a-cognito-identity-pool.html für Identity-Pool-Erstellung folgen und dokumentieren die Erstellung mithilfe von Cloud-Bildung, so dass ich einfach alles rückgängig machen kann, wenn ich fertig bin. Ich habe jedoch Probleme, Beispiele zu finden, die zeigen, wie man dies effektiv mit der Template-Syntax macht. Was ich zur Zeit haben, ist die folgendeIdentityPool-Erstellung mit CloudFormation

ScratchUserPool: 
     Type: AWS::Cognito::UserPool 
     Properties: 
     UserPoolName: notes-user-pool 

ScratchUserPoolClient: 
    Type: AWS::Cognito::UserPoolClient 
    Properties: 
    ClientName: notes-client 
    ExplicitAuthFlows: [ADMIN_NO_SRP_AUTH] 
    UserPoolId: 
     Ref: ScratchUserPool 

ScratchIdentityPool: 
    Type: AWS::Cognito::IdentityPool 
    Properties: 
    IdentityPoolName: ScratchIdentityPool 
    AllowUnauthenticatedIdentities: false 
    CognitoIdentityProviders: 
     - ClientId: 
      Ref: ScratchUserPoolClient 
     ProviderName: 
      Ref: ScratchUserPool 

Der Einsatz Schritt fehlschlägt, wenn er die ScratchIdentityPool zu schaffen versucht. Ich erhalte eine Fehlermeldung besagt, dass:

ist ein Fehler aufgetreten, während die Stapelbereitstellungs: ScratchIdentityPool - Ungültige Cognito Identity Provider (Service: AmazonCognitoIdentity; Statuscode: 400; Fehlercode: InvalidParameterException; Request ID: bc058020- 663b-11e7-9f2a-XXXXXXXXXX)

bin ich den Client oder Provider-Name nicht richtig werben?

Antwort

3

Fast unmittelbar nachdem ich meine Frage gepostet habe, glaube ich, dass ich sie beantworten konnte. Das Problem mit meiner Identität Pool ist, dass ich brauchte den Namen des Anbieters in der folgenden Art und Weise zu verweisen:

ScratchIdentityPool: 
    Type: AWS::Cognito::IdentityPool 
    Properties: 
    IdentityPoolName: ScratchIdentityPool 
    AllowUnauthenticatedIdentities: false 
    CognitoIdentityProviders: 
     - ClientId: 
      Ref: ScratchUserPoolClient 
     ProviderName: 
      Fn::GetAtt: [ScratchUserPool, ProviderName] 

ich für diese die besondere amazon Funktion Fn::GetAtt verwenden, um zum Arbeiten benötigt.

Verwandte Themen