问题标签 [moto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 我真的可以在模拟的 EMR 集群上运行 Spark 作业吗?
使用moto
我能够模拟 EMR 集群:
添加的步骤似乎一直处于STARTING
状态。是否可以将 Spark 作业实际提交到模拟集群并在那里运行?
我正在构建一个将作业提交到 EMR 集群的实用程序,并且我想对其进行测试。我想使用这个实用程序运行一个简单的 Spark 作业,这就是问题的来源。请注意,我对 Spark 集群或测试提交的 Spark 作业的正确性不感兴趣。实际上,我对测试将作业提交到EMR并检查结果的流程更感兴趣(理想情况下,应该将其保留在模拟的 S3 存储桶上)。
serverless-framework - 使用单独的无服务器离线包或 AWS SAM Local 或 Moto 库在本地运行 lambda
我需要创建一个集成项目,它在执行时应该启动所有 aws mock 服务,例如S3、API 网关、SQS、Dynamo db和SSM。我们使用serverless.com 框架在内部使用上述 AWS 服务的 Node.js 中开发 lambda。此外,这些 lambda 使用 API Gateway 调用另一个 lambda,其中 X 调用类型是异步调用的事件。
关于我应该选择哪种方法在本地运行这些 lambda 的任何建议:
- 我应该创建一个无服务器项目,其中无服务器离线插件如
- serverless- s3 -local
- 无服务器-发电机-本地
- 无服务器离线-ssm
- 无服务器离线 - dynamodb
所以当这个项目被执行时,它将在本地机器的特定端口上运行这些服务。
使用SAM 本地。
- 为此,我需要编写一个 sam 模板,因为目前我使用的是 serverless.com 框架,其中有 serverless.yml 而不是 sam 模板。
- 还有 serverless-sam 插件可以将 serverless.yml 导出到 sam 模板,但是,对于 serverless.yml 中的少数部分,它会引发错误,因为对于少数基础构建,我们使用 serverless.yml 中的 terraform 执行输出。
- 此 terraform 不适用于本地。所以基本上我没有选择使用 serverless-sam 插件的导出功能。我需要创建一个单独的项目,该项目将具有包含所有相关 AWS 服务规范的 sam 模板。
使用 Python Moto 库:https ://github.com/spulec/moto#stand-alone-server-mode
提前致谢
amazon-web-services - MOTO后端服务如何创建bucket
任何人都可以指出我正确的方向吗?我正在尝试将 moto ( https://github.com/spulec/moto ) 作为后端服务运行,以便我可以测试我的应用程序。我能够按照建议(http://localhost:5000/moto-api/#)运行 moto 服务并加载 moto-api 的网页。
我有一个问题,我如何为这个后端服务设置我的所有测试桶和实例?
谢谢。
python - 如何在 Python/Django 中使用 AWS SNS (boto3/moto) 测试 SMS?
我正在开发一个使用 AWS SNS 在某些端点发送 SMS 的 API。在涉及这些端点的测试中,使用了mock_sns
装饰器。但是,没有就发送的 SMS 消息的数量或内容作出任何断言。我想这只是为了避免错误。然而,就我而言,我实际上需要检查是否发送了一条 SMS 消息并且它是否包含特定文本。我怎样才能做到这一点?我的测试应该是什么样子?
我知道如何使用普通的 Python 模拟来做到这一点,但由于该项目已经moto
作为依赖项,我想我会试一试,但我很惊讶我找不到任何这样一个简单用例的例子。或者也许我误解了这个图书馆的目的?
amazon-web-services - 调用 Lambda 函数的 aws boto3 unittest 函数
我有一个调用 AWS Lambda 函数的 python 函数。
如何为此功能创建单元测试?我一直在将 Moto 用于其他 AWS 服务,但无法使其适用于 Lambda。
我尝试使用moto:
这会出错:
python - Moto mock_s3 EndpointConnectionError,连接被拒绝
我正在尝试模拟我与 moto 的 S3 连接
但我收到以下错误:
regex - 涉及 grep 的相同 bash 脚本在一台机器上成功,但在另一台机器上失败
我有以下 shell 脚本:
shunit2
我使用and为上述脚本编写了一些单元测试moto_server
。这是测试脚本:
现在我在本地机器上运行代码,测试顺利通过。
然后我将它推送到 gitlab,测试脚本由 gitlab 运行器使用 python:3.8 图像执行。
运行器上的测试失败,并且模式匹配的断言似乎失败了。
我注意到 runner 使用 grep 版本 3.3-1,而我的本地机器上有 3.4 版本,但经过查看,并没有太大区别。
此外,我确实采用了跑步者产生的输出并在本地对其进行了测试,以尝试匹配相同的正则表达式,并且它确实匹配。
我不知道为什么会存在这种差异。
python - 模拟多个 boto3 服务,其中一些没有 moto 实现
我正在尝试使用模拟对 AWS Lambda 函数中的逻辑进行单元测试。Lambda 通过 AWS Pinpoint 发送推送通知来完成它的执行。Lambda 还使用 AWS SSM 参数存储。我一直在使用 moto https://github.com/spulec/moto在其他 Lambdas 中模拟多个 boto3 对象,但目前在 moto 中没有 Pinpoint 实现。
我在https://stackoverflow.com/a/55527212/839338中找到了一个解决方案,我需要对其进行修改才能使其正常工作。它回答的问题不是关于我的确切情况,而是答案为我指明了一个解决方案。所以我在这里发帖记录我对我修改的解决方案的更改,并询问是否有更优雅的方式来做到这一点。我看过 botocore.stub.Stubber 但看不出更好的方法,但我愿意被证明是错误的。
到目前为止我的代码:
测试.py
我的模块.py
特别是我想知道如何更好、更优雅地实现 mock_boto3_client() 以更通用的方式处理。
python - Moto mock s3 似乎可以运行但找不到文件
我正在尝试用 模拟一个 s3 实例Moto
,这似乎确实有效,但是由于某种原因,它似乎在真正的 s3 中搜索文件而不是模拟的 s3。
我的工作层次结构如下所示:
在conftest
我这样嘲笑s3:
test mock s3.py
看起来像这样:
当我运行pytest tests/mock s3/test mock s3.py
它似乎工作正常。但是,如果我在运行时pytest
(例如pytest tests/mock s3
)由于某种原因不直接调用文件,它似乎没有使用我的模拟 s3,files
从 s3 取回真实文件。
模拟夹具仍然被应用(我知道,因为我添加了打印的打印件)但由于某种原因它无法在模拟中找到文件。
编辑——添加路径和文件到test_something
boto3 - 如何在 Boto3 中获取模拟事件
我有一个注册了 SNS 的 s3 存储桶。SNS 通知进入一个由我想测试的 lambda 监控的 SQS。
我在测试中使用 moto 来模拟我的 s3 调用。当我设置测试时,我将一个对象放入我的 S3 存储桶中。然后我还有一个我模拟的 json 文档,它反映了将生成并传递给我的 lambda(从 S3 接收事件)的事件。
我的问题是,与其手动模拟事件 json,我可以使用 moto/boto 来生成它吗?