我想将一些Slack消息保存到GraphQL后端.我可以使用Slack API以及他们所谓的"Slack App Commands",因此每次向Slack通道发送消息时,Slack会自动向我的服务器发送HTTP POST请求,并将新消息作为数据.
我正在考虑使用AWS lambda函数将此发布请求转发到我的GraphQL服务器端点(我正在使用GraphCool).我是GraphQL的新手,我使用Apollo从浏览器创建突变.现在我需要从我的节点服务器(AWS Lambda函数)而不是浏览器发送变异.我怎样才能做到这一点?
谢谢.
我目前正在使用 AppSync 在 AWS Lambda 中实施订阅突变。我想使用 IAM 并避免使用任何其他类型的 AUTH 机制,因为我在 AWS 堆栈中调用它。不幸的是,我收到以下 403 错误:
(摘自 SQS 的 CloudWatch 日志)
{
"errorMessage": "Response not successful: Received status code 403",
"name": "ServerError",
"errorType": "UnrecognizedClientException",
"message": "The security token included in the request is invalid."
}
Run Code Online (Sandbox Code Playgroud)
我尝试遵循这些但无济于事,但我不知道我错过了什么:
这是我当前调用它的代码:
import AWS from "aws-sdk";
import { AWSAppSyncClient } from "aws-appsync";
import { Mutation, mutations } from …Run Code Online (Sandbox Code Playgroud) 在Lambda中,我想签署我的AppSync端点,aws-signature-v4以便将其用于突变.
生成的URL似乎没问题,但是当我尝试它时,它会给我以下错误:
{
"errors" : [ {
"errorType" : "InvalidSignatureException",
"message" : "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. etc...
} ]
}
这是我的lambda函数
import { Context, Callback } from 'aws-lambda';
import { GraphQLClient } from 'graphql-request';
const v4 = require('aws-signature-v4');
export async function handle(event: any, context: Context, callback: Callback) {
context.callbackWaitsForEmptyEventLoop = false;
const …Run Code Online (Sandbox Code Playgroud)