Disabilitazione dei modelli di VTL mappatura con resolver Lambda diretti () VTL - AWS AppSync

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Disabilitazione dei modelli di VTL mappatura con resolver Lambda diretti () VTL

Nota

Ora supportiamo principalmente il runtime APPSYNC _JS e la relativa documentazione. Valuta la possibilità di utilizzare il runtime APPSYNC _JS e le relative guide qui.

Con i resolver diretti Lambda, puoi aggirare l'uso di modelli di mappatura quando usi fonti di VTL dati. AWS Lambda AWS AppSync può fornire un payload predefinito alla funzione Lambda e una traduzione predefinita dalla risposta di una funzione Lambda a un tipo GraphQL. Puoi scegliere di fornire un modello di richiesta, un modello di risposta o nessuno dei due e lo AWS AppSync gestirai di conseguenza.

Per ulteriori informazioni sul payload predefinito della richiesta e sulla traduzione delle risposte che AWS AppSync fornisce, consulta il riferimento al resolver Direct Lambda. Per ulteriori informazioni sulla configurazione di un'origine AWS Lambda dati e sulla configurazione di una politica di IAM attendibilità, consulta Allegare un'origine dati.

Configurazione di resolver Lambda diretti

Le seguenti sezioni ti mostreranno come collegare sorgenti dati Lambda e aggiungere resolver Lambda ai tuoi campi.

Aggiungere un'origine dati Lambda

Prima di poter attivare i resolver Lambda diretti, devi aggiungere un'origine dati Lambda.

Console
  1. Accedi e apri la console. AWS Management Console AppSync

    1. Nella APIsdashboard, scegli il tuo GraphQLAPI.

    2. Nella barra laterale, scegli Origini dati.

  2. Seleziona Create data source (Crea origine dati).

    1. Per Nome dell'origine dati, inserisci un nome per la tua origine dati, ad esempiomyFunction.

    2. Per Tipo di origine dati, scegli AWS Lambda funzione.

    3. Per Regione, scegli la regione appropriata.

    4. Per Funzione ARN, scegli la funzione Lambda dall'elenco a discesa. Puoi cercare il nome della funzione o inserire manualmente ARN la funzione che desideri utilizzare.

    5. Crea un nuovo IAM ruolo (consigliato) o scegli un ruolo esistente con l'lambda:invokeFunctionIAMautorizzazione. I ruoli esistenti richiedono una politica di fiducia, come spiegato nella sezione Allegare un'origine dati.

      Di seguito è riportato un esempio di IAM politica che dispone delle autorizzazioni necessarie per eseguire operazioni sulla risorsa:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:invokeFunction" ], "Resource": [ "arn:aws:lambda:us-west-2:123456789012:function:myFunction", "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*" ] } ] }
  3. Scegli il pulsante Crea.

CLI
  1. Crea un oggetto sorgente dati eseguendo il create-data-sourcecomando.

    Dovrai digitare 4 parametri per questo particolare comando:

    1. api-idI tuoiAPI.

    2. La tua fonte name di dati. Nell'esempio della console, questo è il nome dell'origine dati.

    3. La fonte type dei dati. Nell'esempio della console, questa è AWS Lambda la funzione.

    4. Lalambda-config, che è la funzione ARN nell'esempio della console.

    Nota

    Esistono altri parametri come questi Region che devono essere configurati, ma di solito vengono utilizzati per impostazione predefinita i valori CLI di configurazione.

    Un comando di esempio può avere il seguente aspetto:

    aws appsync create-data-source --api-id abcdefghijklmnopqrstuvwxyz --name myFunction --type AWS_LAMBDA --lambda-config lambdaFunctionArn=arn:aws:lambda:us-west-2:102847592837:function:appsync-lambda-example

    Verrà restituito un output inCLI. Ecco un esempio:

    { "dataSource": { "dataSourceArn": "arn:aws:appsync:us-west-2:102847592837:apis/abcdefghijklmnopqrstuvwxyz/datasources/myFunction", "type": "AWS_LAMBDA", "name": "myFunction", "lambdaConfig": { "lambdaFunctionArn": "arn:aws:lambda:us-west-2:102847592837:function:appsync-lambda-example" } } }
  2. Per modificare gli attributi di un'origine dati, esegui il update-data-sourcecomando.

    Ad eccezione del api-id parametro, i parametri utilizzati nel create-data-source comando verranno sovrascritti dai nuovi valori del update-data-source comando.

Attiva i resolver Lambda diretti

Dopo aver creato un'origine dati Lambda e impostato il IAM ruolo appropriato per consentire di AWS AppSync richiamare la funzione, puoi collegarla a una funzione resolver o pipeline.

Console
  1. Accedi a e apri la console. AWS Management Console AppSync

    1. Nella APIsdashboard, scegli il tuo GraphQLAPI.

    2. Nella barra laterale, scegli Schema.

  2. Nella finestra Resolver, scegli un campo o un'operazione, quindi seleziona il pulsante Allega.

  3. Nella pagina Crea nuovo resolver, scegli la funzione Lambda dall'elenco a discesa.

  4. Per sfruttare i resolver diretti Lambda, verifica che i modelli di mappatura di richiesta e risposta siano disabilitati nella sezione Configura modelli di mappatura.

  5. Scegli il pulsante Save Resolver.

CLI
  • Crea un resolver eseguendo il comando. create-resolver

    Dovrai digitare 6 parametri per questo particolare comando:

    1. api-idI tuoiAPI.

    2. Il type-name tipo nel tuo schema.

    3. Il campo field-name del tuo schema.

    4. Ildata-source-name, o il nome della tua funzione Lambda.

    5. Ilrequest-mapping-template, che è il corpo della richiesta. Nell'esempio della console, questo era disabilitato:

      " "
    6. Ilresponse-mapping-template, che è il corpo della risposta. Nell'esempio della console, anche questo era disabilitato:

      " "

    Un comando di esempio può avere il seguente aspetto:

    aws appsync create-resolver --api-id abcdefghijklmnopqrstuvwxyz --type-name Subscription --field-name onCreateTodo --data-source-name LambdaTest --request-mapping-template " " --response-mapping-template " "

    Verrà restituito un output inCLI. Ecco un esempio:

    { "resolver": { "resolverArn": "arn:aws:appsync:us-west-2:102847592837:apis/abcdefghijklmnopqrstuvwxyz/types/Subscription/resolvers/onCreateTodo", "typeName": "Subscription", "kind": "UNIT", "fieldName": "onCreateTodo", "dataSourceName": "LambdaTest" } }

Quando disabiliti i modelli di mappatura, si verificheranno diversi comportamenti aggiuntivi in: AWS AppSync