调用 lambda 函数的正确方法?
Proper way to call a lambda function?
我正在构建一个带有 vue.js、无服务器和 aws lambda 函数的应用程序。
我不知道调用 lambda 函数的正确方法是什么,到目前为止我的初步解决方案是:
- 在 api 网关中为生成 link.
的函数设置一个 api
- 在我的 vue 前端中 link 硬编码并使用 axios 作为我的 http 客户端来发出请求。
但我的问题是:
- 在前端对 url 进行硬编码是否正确?
- 如果我有多个 lambda 函数,那么我将有一堆 url,这似乎不是实现它的好方法。
在我的 main.js vue 前端中,我设置了这个:
Amplify.configure({
Auth: {
mandatorySignIn: true,
region: config.cognito.REGION,
userPoolId: config.cognito.USER_POOL_ID,
identityPoolId: config.cognito.IDENTITY_POOL_ID,
userPoolWebClientId: config.cognito.APP_CLIENT_ID
},
Storage: {
region: config.s3.REGION,
bucket: config.s3.BUCKET,
identityPoolId: config.cognito.IDENTITY_POOL_ID
},
API: {
endpoints: [
{
name: "Test",
endpoint: config.apiGateway.URL,
region: config.apiGateway.REGION
},
]
}
});
如果我的方法是正确的,我是否会在 API 配置下添加多个端点,因为我有不止一个 lambda 函数?如果不是,那么正确的实施方式是什么?
提前致谢。
快速浏览 docs here 表明推荐的设置是将 endpoint
设置为 Api 网关的基础 URL。例如,如果您导航到 Api 网关,在“仪表板”下,您应该会看到类似于以下内容的 link:
https://1234567.execute-api.us-east-2.amazonaws.com/Stage
这是您应该设置 endpoint
的 link。
然后,你会像这样使用它:
API
.get("Test", "/path/to/lambda")
.then(response => {
// Add your code here
})
用法参考here
但是,如果您使用区域端点,如 here 所述,那么您的设置是正确的,然后您需要为您拥有的每个 lambda 创建一个新条目。不过,Amplify 团队不建议这样做。
我建议将这些 URL 设置为环境变量,而不是硬编码,这样可以为您提供更大的部署灵活性。
我正在构建一个带有 vue.js、无服务器和 aws lambda 函数的应用程序。 我不知道调用 lambda 函数的正确方法是什么,到目前为止我的初步解决方案是:
- 在 api 网关中为生成 link. 的函数设置一个 api
- 在我的 vue 前端中 link 硬编码并使用 axios 作为我的 http 客户端来发出请求。
但我的问题是:
- 在前端对 url 进行硬编码是否正确?
- 如果我有多个 lambda 函数,那么我将有一堆 url,这似乎不是实现它的好方法。
在我的 main.js vue 前端中,我设置了这个:
Amplify.configure({
Auth: {
mandatorySignIn: true,
region: config.cognito.REGION,
userPoolId: config.cognito.USER_POOL_ID,
identityPoolId: config.cognito.IDENTITY_POOL_ID,
userPoolWebClientId: config.cognito.APP_CLIENT_ID
},
Storage: {
region: config.s3.REGION,
bucket: config.s3.BUCKET,
identityPoolId: config.cognito.IDENTITY_POOL_ID
},
API: {
endpoints: [
{
name: "Test",
endpoint: config.apiGateway.URL,
region: config.apiGateway.REGION
},
]
}
});
如果我的方法是正确的,我是否会在 API 配置下添加多个端点,因为我有不止一个 lambda 函数?如果不是,那么正确的实施方式是什么?
提前致谢。
快速浏览 docs here 表明推荐的设置是将 endpoint
设置为 Api 网关的基础 URL。例如,如果您导航到 Api 网关,在“仪表板”下,您应该会看到类似于以下内容的 link:
https://1234567.execute-api.us-east-2.amazonaws.com/Stage
这是您应该设置 endpoint
的 link。
然后,你会像这样使用它:
API
.get("Test", "/path/to/lambda")
.then(response => {
// Add your code here
})
用法参考here
但是,如果您使用区域端点,如 here 所述,那么您的设置是正确的,然后您需要为您拥有的每个 lambda 创建一个新条目。不过,Amplify 团队不建议这样做。
我建议将这些 URL 设置为环境变量,而不是硬编码,这样可以为您提供更大的部署灵活性。