gpt4 book ai didi

aws-lambda - 使用 Cognito 进行身份验证,从 AWS-Amplify 中的 Lambda 函数查询和变异 GraphQL

转载 作者:行者123 更新时间:2023-12-04 15:35:08 25 4
gpt4 key购买 nike

我通过 amplify api add 创建了一个 GraphQL api命令并在下面添加了架构。我正在使用 cognito 进行身份验证。

type User @model
@auth(rules: [{ allow: owner }]) {
id: ID!

videos: [Video!] @connection(keyName: "videosByUser", fields: ["id"])
adverts: [Advert] @connection(keyName:"advertsByUser", fields: ["id"])
}

type Video @model
@key(name: "videosByUser", fields: ["userId"])
@auth(rules: [{ allow: owner, operations: [create, update, delete] }]) {

id: ID!
title: String!
description: String!

size: Float!
length: Float!
hashMarks: [Float!]!

userId: ID!
# bidrectional connection, if needed
# user: User! @connection(fields: ["userId"])

adverts: [VideoAdverts!] @connection(keyName: "advertsByVideo", fields: ["id"])
streamingLink: AWSURL
}

type VideoAdverts @model(queries: null)
@key(name: "advertsByVideo", fields: ["videoId", "advertId"])
@key(name: "videosByAdvert", fields: ["advertId", "videoId"]) {

id: ID!
videoId: ID!
advertId: ID!

video: Video! @connection(fields: ["videoId"])
advert: Advert! @connection(fields: ["advertId"])
}

type Advert @model
@key(name: "advertsByUser", fields: ["userId"])
@auth(rules: [{ allow: owner, operations: [create, update, delete] }]) {

id: ID!
title: String!
description: String!

size: Float!
length: Float!

creatorId: ID!
# bidrectional connection, if needed
# creator: Creator! @connection(fields: ["creatorId"])

videos: [VideoAdverts!] @connection(keyName: "videosByAdvert", fields: ["id"])
blacklist: [AdvertBlacklist!] @connection(keyName: "blacklistByAdvert", fields: ["id"])

startDate: AWSDateTime
endDate: AWSDateTime
}

这是我的第一个放大项目,我在弄清楚如何实现以下用例时遇到了麻烦:
  • 使用 lambda 函数查询数据并返回给客户端。
  • 使用 cron 触发的 lambda 函数进行 API 调用并使用更改来更新某些字段。

  • 到目前为止,我在谷歌搜索中发现的所有内容都涉及使用 lambda 与通过 amplify storage add 添加的数据进行交互。命令。

    我在 Stackoverflow 上找到的其他一些示例不使用 cognito 进行身份验证。

    看起来我将能够使用 cloudwatch 来触发 lambda,所以我现在的主要问题是如何从 lambda 中实际查询和变异 GraphQL api,使用 cognito 进行身份验证。
    任何帮助都会非常有帮助,谢谢:)

    最佳答案

    验证您的 Lambda 函数以与 AppSync API 交互的关键是配置多种身份验证方法。您正在为前端应用程序用户使用 Cognito,但是,您不想将其用于 Lambda 函数身份验证。 AppSync 支持您的 API 的多种身份验证机制。在您的情况下,您需要添加 IAM 作为第二个身份验证机制。

    您可以从 Amplify CLI 执行此操作:

    $ amplify update api

    Scanning for plugins...
    Plugin scan successful

    ? Please select from one of the below mentioned services: GraphQL

    ? Choose the default authorization type for the API Amazon Cognito User Pool
    Use a Cognito user pool configured as a part of this project.

    ? Do you want to configure advanced settings for the GraphQL API Yes, I want
    to make some additional changes.

    ? Configure additional auth types? Yes

    ? Choose the additional authorization types you want to configure for the API IAM

    关于aws-lambda - 使用 Cognito 进行身份验证,从 AWS-Amplify 中的 Lambda 函数查询和变异 GraphQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60044490/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com