我正在尝试将登录功能添加到我使用 Amplify 和 AWS Cognito 构建的 React 应用程序中,但是当我在 Login.js 文件中添加以下行时:
Import {Auth} from "aws-amplify-react";
Run Code Online (Sandbox Code Playgroud)
并尝试编译,我收到以下错误:
Failed to compile.
./node_modules/aws-amplify-react/lib-esm/Analytics/trackLifecycle.js
Module not found: Can't resolve '@aws-amplify/analytics' in 'my_react_path/node_modules/aws-amplify-react/lib-esm/Analytics'
Run Code Online (Sandbox Code Playgroud)
我尝试使用自制软件和 npm 安装 Amplify,但我无法解决这个问题,有什么提示吗?
编辑:
最初我有:
Import {Auth} from "aws-amplify";
Run Code Online (Sandbox Code Playgroud)
但是编译器无法解析aws-amplify,只能在node_modules文件夹中找到aws-amplify-react,所以我改了。
但是,在第 39 行的“node_modules/aws-amplify-react/lib-esm/Analytics/trackLifecycle.js”中:
import Analytics from '@aws-amplify/analytics';
Run Code Online (Sandbox Code Playgroud)
问题是它找不到 aws-amplify ......我在安装时弄得一团糟吗?
我正在开发 React Native 应用程序并使用 AWS Amplify 和 Amazon Cognito 进行身份验证。我已经使用 Amplify CLI ( amplify add auth)添加了应用程序的身份验证。问题是我需要添加/删除注册所需的属性,但在创建用户池后无法更改这些属性。
我的问题是如何使用 CLI 删除当前添加的用户池,并确保更改反映在aws-exports.js?
我想要完成的任务: 我在 AppSync Web 控制台上编辑了一个 amplify + AppSync 项目,我想将它拉到我的本地机器上。
我做了什么:
我通过执行三个命令使用 Amplify CLI 初始化了一个 amplify 项目:
amplify init
amplify add api
amplify push
Run Code Online (Sandbox Code Playgroud)
(添加的api是GraphQL)
接下来,我在 AppSync Web 控制台上编辑了一些自动生成的 GraphQL 解析器。(我已经使用客户端应用程序测试了编辑过的解析器 -> 它们有效)
然而,之后,当我在 Amplify CLI 中执行拉取操作时:
amplify pull
Run Code Online (Sandbox Code Playgroud)
它只提取在最后一个 Amplify CLI 推送命令之前对本地文件所做的更改,
因此,Amplify CLI pull 命令不会考虑对 AppSync Web 控制台所做的任何更改。
问题:
版本:
放大 cli:4.13.3
我发现的其他有用的东西:
AWS-CloudFormation 也仅在使用 Amplify CLI 进行更改时显示更新。
保存放大项目文件的 AWS-S3 存储桶也仅镜像使用 Amplify CLI 推送的更改。
我已将 angular 应用程序更新到最新版本,并不断收到来自@aws-amplify 的警告消息。我知道 angular 10 不建议使用 commonjs。由于@aws-amplify 就在那里,我该如何删除警告?
我尝试在 angular.json 中添加 allowedCommonJsDependencies
"allowedCommonJsDependencies": [
"crypto-js", "@aws-sdk/eventstream-marshaller", "buffer", "js-cookie",
"@aws-crypto", "zen-observable", "@aws-sdk/util-utf8-node", "@aws-crypto/sha256-js", "@aws-sdk/util-buffer-from",
"@aws-sdk/smithy-client", "@aws-sdk/middleware-serde", "@aws-sdk/middleware-user-agent",
"@aws-sdk/middleware-retry", "@aws-sdk/middleware-signing", "@aws-sdk/middleware-content-length",
"@aws-sdk/middleware-host-header", "@aws-sdk/config-resolver", "@aws-sdk/s3-request-presigner",
"@aws-sdk/util-format-url", "@aws-sdk/util-create-request", "@aws-sdk/property-provider",
"axios", "@aws-sdk/fetch-http-handler", "@aws-sdk/protocol-http", "@aws-sdk/querystring-builder",
"@aws-sdk/util-utf8-browser", "@aws-sdk/url-parser-browser", "@aws-crypto/sha256-browser",
"@aws-sdk/url-parser-node", "@aws-sdk/util-uri-escape", "@aws-sdk/middleware-sdk-s3",
"@aws-sdk/middleware-bucket-endpoint", "@aws-sdk/querystring-parser", "@aws-sdk/middleware-apply-body-checksum",
"@aws-sdk/middleware-ssec", "@aws-sdk/middleware-expect-continue", "fast-xml-parser",
"@aws-sdk/xml-builder", "@aws-sdk/md5-js", "@aws-sdk/hash-blob-browser",
"@aws-sdk/eventstream-serde-browser", "@aws-sdk/middleware-location-constraint", "uuid",
"@aws-sdk/credential-provider-cognito-identity", "@aws-sdk/eventstream-serde-config-resolver",
"@aws-sdk/client-s3","@aws-sdk/client-pinpoint",
"ulid", "zen-push", "lodash", "@aws-amplify/core", "@aws-amplify/analytics","@aws-amplify/ui-components"
]
Run Code Online (Sandbox Code Playgroud)
WARNING in /Users/macbook/Projects/src/app/shared/components/forms/datepicker/datepicker.component.ts depends on 'inputmask'. CommonJS or AMD dependencies can cause …Run Code Online (Sandbox Code Playgroud) aws-sdk-nodejs angular aws-amplify aws-amplify-cli angular10
TL;DR: 是否可以手动更改用于身份验证后功能配置的 Amplify CloudFormation 模板以授予(例如)IoT AttachPrincipalPolicy权限?
我正在使用 AWS Amplify 和amplifyCLI 来设置一个新项目。总体而言,Amplify 让事情变得非常简单,但我一直有这样的感觉,即在事情变得困难或无法通过 Amplify 控制的项目完成之前,您只能使用 Amplify 走“到目前为止”。
我感兴趣的用例与物联网的设置有关PubSub- AWS 说明涵盖了如何使其工作,但我将其称为“概念验证”,而不是“您应该在接近生产的任何地方使用的东西” -它涉及手动调用aws iot attach-principal-policy --policy-name 'myIoTPolicy' --principal '<YOUR_COGNITO_IDENTITY_ID>'每个 Cognito 身份。
相反,我想做的是,当用户登录网站时,使用身份验证后lambda 函数/事件挂钩来调用AttachPrincipalPolicy(可能首先检查策略是否已附加!)。
也许显然这并不“有效”,我测试过
var iot = new AWS.Iot();
var params = {
policyName: 'myIoTPolicy', /* required */
principal: 'XYZ123XYZ123' /* required */
};
try {
iot.attachPrincipalPolicy(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else …Run Code Online (Sandbox Code Playgroud) 我已使用 AWS Amplify 控制台在 AWS 上将 Nuxtjs 应用程序部署为 SPA。现在我的网站有一些动态路由,当重新加载或在新选项卡中打开时,它们会重定向到 404 页面。我知道当我们使用nuxt generate 路由生成静态站点时应该使用 nuxt.config.js 中的routes()。但在 SPA 模式下,它应该致力于页面刷新或重新加载。即使在 Angular 中,当在 SPA 模式下运行时,动态路由也可以正常工作。奇怪的是,当网站作为单页应用程序运行时,动态路由不起作用。
当在生产模式下本地使用时,即npm run build && npm run start路由工作正常。但将其部署到 AWS Amplify 后,它会重定向到 404 页面。我在这里缺少什么?这是我使用的 Amplify.yml 配置
version: 0.1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build
artifacts:
# IMPORTANT - Please verify your build output directory
baseDirectory: dist
files:
- '**/*'
cache:
paths:
- node_modules/**/*
test:
artifacts:
baseDirectory: cypress
configFilePath: '**/mochawesome.json'
files:
- …Run Code Online (Sandbox Code Playgroud) amazon-web-services vue.js nuxt.js aws-amplify aws-amplify-cli
我想开发一个简单的 Android 应用程序来将图像文件上传到 AWS 中已创建的 S3 存储桶。如果我用谷歌搜索,所有最新的 AWS 文档都会将我重定向到使用Amplify框架。我不明白此处描述的上传文件的文档。我不明白在哪里可以提供存储桶名称、IAM 凭证等。我也没有找到任何视频教程。如果在没有提供适当文档的情况下强制使用 Amplify,为什么 AWS 会这样做呢?
在这里他们提到使用 Amplify CLI 配置所有详细信息
amplify add storage
并要求使用推送更改
amplify push
但如果我们想以编程方式添加详细信息,例如存储桶名称、用户详细信息等,那么我们该怎么做呢?给我使用 Amplify 框架或适用于 Android 的旧 AWS SDK 的分步详细信息,以便在不使用 Cognito 的情况下上传文件
android amazon-s3 aws-amplify aws-amplify-cli aws-amplify-sdk-android
这里的amplify 坞站表示,我们可以通过运行**amplify add function**并选择“ Lambda Trigger ”选项将 lambda 函数配置为 dynamodb 触发器,但是当我运行"amplify add api"(选择 Python 作为运行时语言)时,我没有获得 lambda 触发器选项,我'我只获得“无服务器函数”和“lambda 层”选项。
请帮助我解决此问题以访问该功能。
我知道它适用于 Nodejs 运行时 lambda,但我也希望 Python Lambda 具有此选项。
尝试使用 expo 和 AWS Amplify 创建一个反应本机应用程序。我刚刚完成了所有基本初始化步骤,将应用程序托管在 Amplify 的管理控制台上,然后按照 Amplify 的文档设置基本的 GraphQL 架构。尝试启动我的应用程序时,expo start出现以下错误App.js:
Module not found: Can't resolve './aws-exports'
16 | import Amplify, { API, graphqlOperation } from 'aws-amplify';
> 17 | import awsconfig from './aws-exports';
18 | Amplify.configure(awsconfig);
Run Code Online (Sandbox Code Playgroud)
值得注意的是,如果我注释掉第 16-18 行并尝试expo-start再次运行,应用程序运行得很好(只是没有插入 AWS 后端)
不管怎样,当我第一次看到这个时,我去检查了导入语句,发现虽然有一个模块aws-amplify,但我的存储库中不存在模块aws-exports。所以我尝试了一些命令来看看是否可以下载它。
npm install aws-amplify尝试再次安装节点模块amplify init重新初始化后端amplify pull获取我之前创建的现有后端,并在应用程序的新实例上尝试它。我在这些尝试中都没有太多运气,所以我希望在这里找到更多帮助!谢谢 :)
amazon-web-services node.js node-modules aws-amplify aws-amplify-cli
npm install -g @aws-amplify/cli我在 M1 Mac 上安装了 Amplify CLI 。
当我amplify在终端运行时,什么也没有发生。一条新的终端线随即出现。没有错误,只是换了一行。跑步amplify help amplify -v amplify configure什么都不做。
% amplify help
%
Run Code Online (Sandbox Code Playgroud)
如何让 amplify cli 工作?
aws-amplify-cli ×10
aws-amplify ×9
amazon-s3 ×1
android ×1
angular ×1
angular10 ×1
aws-appsync ×1
aws-lambda ×1
node-modules ×1
node.js ×1
nuxt.js ×1
reactjs ×1
vue.js ×1