已创建AWS Amplify函数,如何从React Native应用调用?
在React Native中调用AWS Amplify函数的实操步骤
1. 确认项目Amplify配置状态
先确保你的React Native项目已经完成Amplify初始化,本地存在aws-exports.js配置文件,且入口文件(如App.js)中已添加Amplify初始化代码:
import Amplify from 'aws-amplify'; import awsExports from './aws-exports'; Amplify.configure(awsExports);
2. 根据函数类型选择调用方式
方式一:调用关联API Gateway的Lambda函数
如果你的函数是通过amplify add api创建REST API时绑定的Lambda,或后续关联了API网关,用API模块调用:
- 导入模块:
import { API } from 'aws-amplify';
- 发起调用(替换
yourApiName为你的API名称,/yourPath为API路径,请求方法根据实际配置选post/get/put等):
const callLambda = async () => { try { const res = await API.post('yourApiName', '/yourPath', { body: { key: 'value' } // 传递给Lambda的参数 }); console.log('Lambda返回:', res); // 处理业务逻辑 } catch (err) { console.error('调用出错:', err); } };
方式二:直接调用独立Lambda函数(无API Gateway)
如果是通过amplify add function创建的独立Lambda,用Function模块直接调用:
- 先安装依赖:
npm install @aws-amplify/function
- 导入并调用(替换
yourFunctionName为你的Lambda函数名,注意带环境后缀如-dev):
import { Function } from '@aws-amplify/function'; const callDirectLambda = async () => { try { const res = await Function.invoke({ functionName: 'yourFunctionName-dev', payload: { key: 'value' } // 传递的参数 }); console.log('Lambda返回:', res); } catch (err) { console.error('调用出错:', err); } };
3. 配置用户权限
确保Amplify认证用户(若用Cognito)拥有调用该Lambda的权限,通过CLI更新:
amplify update function
选择目标函数,按提示配置允许认证/未认证用户调用的权限,完成后执行amplify push生效。
4. 集成到应用UI
把调用逻辑绑定到UI事件,比如按钮点击:
import { Button } from 'react-native'; // ... <Button title="触发Lambda" onPress={callLambda} /> // ...
运行应用测试,查看控制台日志确认调用结果。
内容的提问来源于stack exchange,提问作者orome
相关产品推荐
相关产品推荐

