Just make GraphQL requests through AWS LambdaInvoke or HTTP
$ yarn add @nutshelllab/aws-apollo-tools
in serverless.yml
...
provider:
...
environment:
SLS_STAGE: ${self:provider.stage}
iamRoleStatements:
- Effect: Allow
Action: # Set permissions for specific Lambdas
- execute-api:*
Resource: '*'
...
import gql from 'graphql-tag'
import graphqlLambdaRequest from '@nutshelllab/aws-apollo-tools/lambda-request'
const request = gql`
query getItem($id: ID!) {
getItem(id: $id) {
id
}
}
`
const variables = {
id: '110e8400-e29b-11d4-a716-446655440000'
}
const test = await graphqlLambdaRequest({
lambdaName: 'my-lambda-name',
region: 'eu-west-1',
request,
variables
})
name | required | type | info |
---|---|---|---|
lambdaName | true | string | The lambda endpoint must provide an apollo server |
region | true | string | |
request | true | string | It must be a GraphQL query graphql-tag |
variables | false | object | |
headers | false | object |
import gql from 'graphql-tag'
import graphqlHttpRequest from '@nutshelllab/aws-apollo-tools/http-request'
const request = gql`
query getItem($id: ID!) {
getItem(id: $id) {
id
}
}
`
const variables = {
id: '110e8400-e29b-11d4-a716-446655440000'
}
const test = await graphqlHttpRequest({
uri: 'https://my-apollo-server-endpoint.com',
region: 'eu-west-1',
request,
variables,
signed: true
})
name | required | type | info |
---|---|---|---|
uri | true | string | The http endpoint must provide an apollo server |
region | true | string | |
request | true | string | It must be a GraphQL query graphql-tag |
signed | false | bool | Setting to true enable aws signature v4, be sure that your http endpoint as authorizer: aws_iam |
variables | false | object | |
headers | false | object |
MIT © Nutshell