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
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 sull'impostazione 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
-
-
Accedi e apri la console. AWS Management Console AppSync
-
Nella APIsdashboard, scegli il tuo GraphQLAPI.
-
Nella barra laterale, scegli Origini dati.
-
Seleziona Create data source (Crea origine dati).
-
Per Nome dell'origine dati, inserisci un nome per la tua origine dati, ad esempiomyFunction
.
-
Per Tipo di origine dati, scegli AWS Lambda
funzione.
-
Per Regione, scegli la regione appropriata.
-
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.
-
Crea un nuovo IAM ruolo (consigliato) o scegli un ruolo esistente con l'lambda:invokeFunction
IAMautorizzazione. 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:*"
]
}
]
}
-
Scegli il pulsante Crea.
- CLI
-
-
Crea un oggetto sorgente dati eseguendo il create-data-source
comando.
Dovrai digitare 4 parametri per questo particolare comando:
-
api-id
I tuoiAPI.
-
La tua fonte name
di dati. Nell'esempio della console, questo è il nome dell'origine dati.
-
La fonte type
dei dati. Nell'esempio della console, questa è AWS Lambda la funzione.
-
Lalambda-config
, che è la funzione ARN nell'esempio della console.
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"
}
}
}
-
Per modificare gli attributi di un'origine dati, esegui il update-data-source
comando.
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
-
-
Accedi a e apri la console. AWS Management Console AppSync
-
Nella APIsdashboard, scegli il tuo GraphQLAPI.
-
Nella barra laterale, scegli Schema.
-
Nella finestra Resolver, scegli un campo o un'operazione, quindi seleziona il pulsante Allega.
-
Nella pagina Crea nuovo resolver, scegli la funzione Lambda dall'elenco a discesa.
-
Per sfruttare i resolver diretti Lambda, verifica che i modelli di mappatura di richiesta e risposta siano disabilitati nella sezione Configura modelli di mappatura.
-
Scegli il pulsante Save Resolver.
- CLI
-
-
Crea un resolver eseguendo il comando. create-resolver
Dovrai digitare 6 parametri per questo particolare comando:
-
api-id
I tuoiAPI.
-
Il type-name
tipo nel tuo schema.
-
Il campo field-name
del tuo schema.
-
Ildata-source-name
, o il nome della tua funzione Lambda.
-
Ilrequest-mapping-template
, che è il corpo della richiesta. Nell'esempio della console, questo era disabilitato:
" "
-
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