在 Amplify API 的 function 指令中调用 Lambda

Amplify-v4.3.2

首先

当需要在AWS上进行带有认证的函数执行时,Amplify API的function指令非常方便。
本次我想总结一下通过前端调用特定Lambda函数的流程。
https://docs.amplify.aws/cli/graphql-transformer/function/

实施

引入API

amplify add api

以function指令为例,请将GraphQL作为API添加进去。

Schema.graphql

我们已经生成了amplify/backend/api/gqllambda/schema.graphql文件,现在我们要编辑并进行定义。

type Query {
  signup(
    email: String!
    password: String!
  ): String
    @function(name: "signup-${env}")
}

这次我们的想法是调用Lambda上的signup-${env}函数。
您可以传递参数,如email/password,并通过添加${env}来根据环境区分调用Lambda函数。
此外,还有许多方便的指令,例如通过添加@aws_cognito_user_pools,可以使调用函数的用户必须经过用户池认证才能成功。
https://docs.amplify.aws/cli/graphql-transformer/directives/

推动 (tuī

amplify push

使用amplify push进行的设置内容将被推送。

召唤

这是从前台发出的调用。
在Push时,会使用设置的文件中实现的schema.graphql内容。

import { API, graphqlOperation } from 'aws-amplify'
import { signup } from '../graphql/queries'

await API.graphql(graphqlOperation(signup, { email: '', password: '' }))

如果你想在TypeScript中明确类型,可以通过导入在推送时生成的API定义文件来实现。

最后

这是我个人第一次使用无服务器技术开发前端应用程序,像这次这样的情况下,“我想要为Lambda提供一个调用入口,供前端调用。” 这样的用例经常出现。
如果能对某人有所帮助,我将感到幸运。
如果有任何改进或问题,请留下评论,我将不胜感激!

广告

在start-up studio有限公司,我们致力于推动企业治理领域的DX发展。作为首个项目,我们发布了能够剧烈提高财务报表披露业务流程的”Uniforce-财务报表披露业务导航”,解决了复杂、庞大和专业性三重困境。如果您有兴趣,请联系我们!
https://startup-studio.co.jp/news/e4spzygrs/

广告
将在 10 秒后关闭
bannerAds