CodeGenieApp / CodeGenieApp/serverless-express

integration: lambda gives "Unable to determine event source based on event."

Offen
#416 23 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
5.3k
Forks
676
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Hi all,

When deploying using `serverless` with `serverless-api-gateway-caching` like so:

```
functions:
graphql:
handler: src/handler.graphqlHandler
events:
- http:
path: graphql
method: post
cors: true
integration: lambda
caching:
enabled: true
cacheKeyParameters:
- name: integration.request.header.bodyValue
mappedFrom: method.request.body
```

The event is structured like this:

```
{
body: {
...gql...
},
method: 'POST',
principalId: '',
stage: 'dev',
cognitoPoolClaims: { sub: '' },
enhancedAuthContext: {},
headers: {
Accept: '*/*',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-GB,en;q=0.5',
'cache-control': 'no-cache',
'CloudFront-Forwarded-Proto': 'https',
'CloudFront-Is-Desktop-Viewer': 'true',
'CloudFront-Is-Mobile-Viewer': 'false',
'CloudFront-Is-SmartTV-Viewer': 'false',
'CloudFront-Is-Tablet-Viewer': 'false',
'CloudFront-Viewer-Country': 'GB',
'content-type': 'application/json',
dnt: '1',
Host: '...host url...',
origin: 'https://...origin url...',
pragma: 'no-cache',
Referer: 'https://...referrer url...',
'sec-gpc': '1',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
Via: '2.0 xxxxxx.cloudfront.net (CloudFront)',
'X-Amz-Cf-Id': 'xxxxxx',
'X-Amzn-Trace-Id': 'Root=xxxxxx',
'X-Forwarded-For': '...some ips...',
'X-Forwarded-Port': '443',
'X-Forwarded-Proto': 'https'
},
query: {},
path: {},
identity: {
cognitoIdentityPoolId: '',
accountId: '',
cognitoIdentityId: '',
caller: '',
sourceIp: '...ip...',
principalOrgId: '',
accessKey: '',
cognitoAuthenticationType: '',
cognitoAuthenticationProvider: '',
userArn: '',
userAgent: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
user: ''
},
stageVariables: {},
requestPath: '/graphql'
}
```

It seems you cannot enable `method.request.body` `cacheKeyParameters` without `integration: lambda` which seems to mess with the `event`.

Should this be an event type we are able to handle or am I missing a setting to turn it in to an event that can be handled?

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die gezeigte Konfiguration der Serverless-Funktion und das erfasste Lambda-Ereignis zu reproduzieren, und verfolge dann, wie dieses Ereignis von der serverless-express-Integration klassifiziert wird. Als abgeschlossen gilt die Ermittlung, ob diese Ereignisstruktur unterstützt wird, oder die Dokumentation der erforderlichen Konfiguration für ein unterstütztes Ereignis.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, express, javascript, node.js
Bereich
api, backend, cloud
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.