【问题标题】:AWS backend deploymentAWS 后端部署
【发布时间】:2020-09-09 05:22:51
【问题描述】:

我在 AWS 上部署了一个带有放大功能的 React 应用程序。现在我开发了一个与 React 前端通信的 express 后端。

现在我想知道是否有一种方法可以使用 amplify 在与 AWS 上的 react 应用程序相同的项目中托管后端。因此,通过放大托管整个 Fullstack 应用程序。 我已经阅读了很多关于使用放大托管后端的信息。但是从文档看来,我只能使用 aws 使用 Amplify CLI 提供的后端服务,而不能使用我自己的 express 后端。

有人有使用 Amplify 托管自己的快速后端的经验吗?

由于我在云托管方面没有太多经验,因此非常感谢您的帮助 :)

来自德国的问候 一月

【问题讨论】:

    标签: reactjs amazon-web-services express aws-amplify


    【解决方案1】:

    通常,在 Amplify 上,您使用 AppSync 作为后端。 这样您就可以在 Amplify 上拥有全栈

    使用 API,您可以轻松添加 API 的基本操作,并使用 lambda 自定义更具体的操作。

    但如果您仍然需要自己托管,您可以为您的后端添加一个 lambda 函数,查看 this article 关于在 lambda 上运行 ExpressJS。

    如果您通过Amplify-CLI (amplify function add) 添加它,您可以在 Amplify 控制台上看到它,包括日志和其他有关它的详细信息。

    我将在下面更详细地介绍这两种情况:

    使用 AppSync 的自定义操作

    如果您决定将 DynamoDB/AppSync 与 GraphQL 接口一起使用,您可以在 GraphQL Schema 上定义您的自定义操作。

    即:

    • 创建一个 lambda 函数MyCustomOperation
    • 从你的操作中定义你想要的操作、输入和返回(你可以使用Javascript)
    • 在您的 GraphQL 架构上,使用 @function 指令将函数与所需的查询相关联
    type Query {
       myCustomQuery(input: String): String @function(name: "MyCustomOperation-${env}")
    }
    

    查看更多详情here

    快速后端

    如果您需要完整的后端

    要将其添加到您的 Amplify 项目中,您可以创建一个 lambda 函数 amplify function add 并选择模板Serverless express function (Integration with Amazon API Gateway)documentation 有更多详细信息。 它将提供您在下一步中提供的 API 端点。

    您现在可以按照通知here在配置上手动设置它

    Amplify.configure({
        // OPTIONAL - if your API requires authentication 
        Auth: {
            // REQUIRED - Amazon Cognito Identity Pool ID
            identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',
            // REQUIRED - Amazon Cognito Region
            region: 'XX-XXXX-X', 
            // OPTIONAL - Amazon Cognito User Pool ID
            userPoolId: 'XX-XXXX-X_abcd1234', 
            // OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)
            userPoolWebClientId: 'a1b2c3d4e5f6g7h8i9j0k1l2m3',
        },
        API: {
            endpoints: [
                {
                    name: "MyAPIGatewayAPI",
                    endpoint: "https://1234567890-abcdefgh.amazonaws.com"
                },
                {
                    name: "MyCustomCloudFrontApi",
                    endpoint: "https://api.my-custom-cloudfront-domain.com",
    
                }
            ]
        }
    });
    

    然后你只需要使用你已经拥有的后端代码来调整 lambda 函数。

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 2017-12-07
      • 1970-01-01
      • 2019-11-12
      • 2011-05-22
      • 2015-07-28
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      相关资源
      最近更新 更多