You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since this upgrade thing has been confusing for me, here's a working setup I used to query data from my IAM protected AppSync API in a Typescript Lambda to simply pull some data. Hope it helps someone. Most docs seem to be Amplify and React based. In my case I'm just trying to use CRON-style lambda tasks to pull data and make adjustments to records via my AppSync API.
import fetch from "cross-fetch";
import { createAuthLink } from "aws-appsync-auth-link";
import { gql, ApolloClient, InMemoryCache, HttpLink, ApolloLink } from "@apollo/client/core"; // important bit here to pull from different "core" path if not using REACT
import { fromEnv } from "@aws-sdk/credential-providers";
import { AUTH_TYPE, AuthOptions } from "aws-appsync-auth-link/lib/index";
const region = process.env.AWS_REGION!; /// from Lambda
const url = process.env.GRAPHQL_ENDPOINT!; /// passed in to function configuration
/// other auth options here (metadata, cognito, provider chain etc: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromNodeProviderChain
const auth: AuthOptions = {
type: AUTH_TYPE.AWS_IAM,
credentials: fromEnv(),
};
const httpLink = new HttpLink({ uri: url, fetch }); // weird that value is URI here, but URL for links below
const link = ApolloLink.from([
createAuthLink({ url, region, auth }),
httpLink,
]);
const $client = new ApolloClient({
link,
cache: new InMemoryCache(),
});
const getThing = async (id: string) => {
const GET_THING = gql`
query GetThing($id: ID!) {
getThing(id: $id) {
id
name
}
}
`;
return $client.query({
query: GET_THING,
variables: { id: id },
});
};
// -----------
// call as needed in app
let result = await getThing('123');
The text was updated successfully, but these errors were encountered:
Since this upgrade thing has been confusing for me, here's a working setup I used to query data from my IAM protected AppSync API in a Typescript Lambda to simply pull some data. Hope it helps someone. Most docs seem to be Amplify and React based. In my case I'm just trying to use CRON-style lambda tasks to pull data and make adjustments to records via my AppSync API.
Packages:
"aws-appsync-auth-link": "^3.0.7",
"aws-appsync-subscription-link": "^3.1.2",
"graphql": "^16.8.1",
"@aws-sdk/credential-providers": "^3.431.0",
"cross-fetch": "^4.0.0",
The text was updated successfully, but these errors were encountered: