是否可以在不使用 cli 的情况下使用放大框架



放大常见问题解答特别指出你可以。但是 github 链接现在只是将您重定向到主放大页面,说明只讨论了使用 cli。

问:即使我不使用 CLI,我也可以使用 Amplify 框架库吗?是的。这些库可用于访问在没有 Amplify CLI 的情况下创建的后端资源。

  • https://aws.amazon.com/amplify/faqs/
  • https://docs.aws.amazon.com/amplify/?id=docs_gateway
  • https://aws-amplify.github.io/docs/

我了解到您可以在没有Amplify CLI的情况下使用放大库。

为此,您只需正常安装放大库即可。

在反应网络中:

npm install --save aws-amplify
npm install --save aws-amplify-react

之后,您需要手动配置要与Amplify.configure((一起使用的任何功能;您可以在 Amplify 文档中找到您计划使用的每个库的手动配置。

下面是使用Cognito的示例:

https://aws-amplify.github.io/docs/js/authentication#manual-setup

Amplify.configure({
    "aws_project_region": process.env.REACT_APP_REGION,
    "aws_cognito_identity_pool_id": process.env.REACT_APP_IDENTITY_POOL_ID,
    "aws_cognito_region": process.env.REACT_APP_REGION,
    "aws_user_pools_id": process.env.REACT_APP_USER_POOL_ID,
    "aws_user_pools_web_client_id": process.env.REACT_APP_CLIENT_ID,
    "oauth": {},
    Auth: {
        // REQUIRED - Amazon Cognito Identity Pool ID
        identityPoolId: process.env.REACT_APP_IDENTITY_POOL_ID,
        // REQUIRED - Amazon Cognito Region
        region: process.env.REACT_APP_REGION, 
        // OPTIONAL - Amazon Cognito User Pool ID
        userPoolId: process.env.REACT_APP_USER_POOL_ID, 
        // OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)
        userPoolWebClientId: process.env.REACT_APP_CLIENT_ID,
    }
});

您不必使用放大推送进行部署。您可以手动部署和配置正在使用的任何功能。

我发现这种方法可以让您完全控制使用 Amplify 库,而无需 CLI 和部署过程的开销。

是的,这是可能的。正如 Mohammed 所指出的,这在文档中有所介绍,尽管他们绝对不急于通知您此选项可用。无论如何,React 应用程序的设置是:

npm install aws-amplify @aws-amplify/ui-react

然后你所要做的就是:

import Amplify from '@aws-amplify/core';
import { withAuthenticator } from '@aws-amplify/ui-react';
Amplify.configure({
  Auth: {
    region: 'XX-XXXX-X',
    userPoolId: 'XX-XXXX-X_abcd1234',
    userPoolWebClientId: 'a1b2c3d4e5f6g7h8i9j0k1l2m3',
    mandatorySignIn: true,
  }
});
export default withAuthenticator(function Home() {
  return (<h1>Protected Content</h1>)
})

请注意:截至 2022 年 2 月,用于身份验证的 Amplify UI 组件最近对其 API 进行了重大更改。你会发现很多关于AmplifyAuthenticator及其子组件的旧帖子和文档,例如这个页面。如果您尝试将这些示例与当前版本的 Amplify UI 一起使用,它将失败而不解释原因!您需要使用 Authenticator 组件。请改用放大 UI 文档中的示例。

如果你知道自己在做什么,你可以。细节决定成败。文档说:

即使

我不使用 CLI,我也可以使用 Amplify 框架库吗?是的。

请注意它是如何明确表示框架库的。这意味着您无法手动生成资源。(从技术上讲,您可以自己编写模板,但 AFAIK 您仍然需要 CLI 的 amplify push 命令来影响云。但是您可以使用框架组件。

这意味着,例如,您可以手动配置 AWS Amplify 以使用自定义 GraphQL 终端节点,然后使用框架公开的帮助程序、组件和方法(例如 graphqlOperation ( 提出您的请求。

我正在使用手动设置的带有身份验证、AppSync 和存储的反应放大库,因此它是可行的。

要设置 S3,您可以按照此处的指南进行操作。对于 AppSync 设置,我正在使用此插件。

嗯,

这应该没什么问题。在官方文档中提到您可以在没有 CLI 的情况下使用 Amplify 库:

如果您未使用 Amplify CLI 或需要覆盖这些设置,本文档将显示每个类别的可用配置属性。

所以从中你可以看到这是可以的。

在以下链接中,您可以找到不同服务的配置(通常会生成(:

https://docs.amplify.aws/lib/client-configuration/configuring-amplify-categories/q/platform/js#general-configuration

最新更新