小编Ash*_*Ash的帖子

模拟boto3 S3客户端方法Python

我正在尝试从boto3 s3客户端对象模拟一个单一方法来抛出异常.但我需要这个类的所有其他方法正常工作.

这样我可以在执行upload_part_copy时测试单个异常测试并发生错误

第一次尝试

import boto3
from mock import patch

with patch('botocore.client.S3.upload_part_copy', side_effect=Exception('Error Uploading')) as mock:
    client = boto3.client('s3')
    # Should return actual result
    o = client.get_object(Bucket='my-bucket', Key='my-key')
    # Should return mocked exception
    e = client.upload_part_copy()
Run Code Online (Sandbox Code Playgroud)

但是,这会产生以下错误:

ImportError: No module named S3
Run Code Online (Sandbox Code Playgroud)

第二次尝试

在查看了botocore.client.py源代码后,我发现它正在做一些聪明的事情并且该方法upload_part_copy不存在.我发现它似乎在调用,BaseClient._make_api_call所以我试图嘲笑它

import boto3
from mock import patch

with patch('botocore.client.BaseClient._make_api_call', side_effect=Exception('Error Uploading')) as mock:
    client = boto3.client('s3')
    # Should return actual result
    o = client.get_object(Bucket='my-bucket', Key='my-key')
    # Should return mocked exception
    e …
Run Code Online (Sandbox Code Playgroud)

python mocking boto botocore boto3

51
推荐指数
5
解决办法
4万
查看次数

表值函数刷新

我在SQL Server中有一个表值函数(TVF),如下所示:

CREATE FUNCTION TVF_xyz(@AuditKey INT)
RETURNS TABLE
AS
    RETURN
        SELECT *
        FROM xyz 
        WHERE AUDIT_KEY = @AuditKey
GO
Run Code Online (Sandbox Code Playgroud)

现在,我在xyz表中添加了新列。

当我使用查询时TVF_xyz,它不会显示新列(显示除新添加的列以外的所有其他列)。

查询:

SELECT TOP 10 * 
FROM TVF_xyz (1543)
Run Code Online (Sandbox Code Playgroud)

我想知道,如何刷新TVF以显示新列。

PS:Select *用于TVF中以获取所有列。

sql-server database-metadata

5
推荐指数
1
解决办法
1427
查看次数

AttributeError:“模块”对象没有属性“ mkdirs”

在Python 3.6中创建嵌套目录时,收到以下错误:

AttributeError: 'module' object has no attribute 'mkdirs'
Run Code Online (Sandbox Code Playgroud)

样例代码:

def create_sample_data():
    os.mkdirs("/tmp/lambdadir/ProjectTemp/mynewtest")
    f=open("/tmp/lambdadir/ProjectTemp/mynewtest/my_copy.txt","w+")
    f.write("This is inside a directory")
    f.close()
Run Code Online (Sandbox Code Playgroud)

请帮忙。

python-3.x aws-lambda

5
推荐指数
2
解决办法
3145
查看次数

通过示例了解缓慢变化的维度 (SCD) 类型 5 和 7

我试图了解 SCD 类型 5,6 和 7 的工作原理。

我阅读了 Kimball Group 的这篇文章和关于类型 6 的堆栈溢出答案。

我可以理解 Type 6 的概念、它是如何工作的以及何时使用它。

但是,我仍然无法理解类型 5 和 7 的工作原理以及何时使用它们。高度赞赏用示例对类型 5 和 7 的解释。

提前致谢。

data-warehouse dimensional-modeling scd

4
推荐指数
1
解决办法
4427
查看次数

删除网络负载均衡器 (NLB) 时出错:无法删除,因为它当前与其他服务关联

我正在尝试删除负载均衡器,但收到以下错误:

无法删除,因为它当前与其他服务关联

按照此文档首先拒绝端点连接请求,然后尝试删除负载均衡器,但仍然收到相同的错误

错误消息和我遵循的步骤的屏幕截图:

负载均衡器删除错误

拒绝端点连接请求

想知道我在这里还缺少什么。

amazon-web-services amazon-elb amazon-vpc

4
推荐指数
1
解决办法
3783
查看次数

半加性事实的示例

我正在尝试寻找除“日期维度”示例之外的半加性事实的实时示例。

即,可以对除时间之外的所有维度的度量进行总结。

我正在寻找半加性事实示例,其中除了时间之外,无法跨维度对度量进行总结。

提前致谢。

-灰

data-warehouse

2
推荐指数
1
解决办法
3493
查看次数

步骤函数中的aws胶水作业依赖性

我创建了 2 个胶水作业(gluejob1、gluejob2)。

我想创建一个依赖项,因为gluejob2 应该只在gluejob1 完成后运行。

为了编排这个,我创建了一个具有以下定义的阶跃函数:

 {
  "gluejob1": {
    "Type": "Task",
    "Resource": "gluejob1.Arn",
    "Comment": "Glue job1.",
    "Next": "gluejob2"
  },

  "gluejob2": {
    "Type": "Task",
    "Resource": "gluejob2.Arn",
    "Comment": "TGlue job2.",
    "Next": "Gluejob2 Finished Loading"
  },
  "Gluejob2 Finished Loading": {
    "Type": "Pass",
    "Result": "",
    "End": true
  }
}
Run Code Online (Sandbox Code Playgroud)

当我执行这个 step 函数时,状态函数在它触发 Gluejob1并继续触发gluejob2的那一刻称它为成功

我想知道是否有可能只有在gluejob1 完成后才运行gluejob2。

amazon-web-services aws-step-functions aws-glue

2
推荐指数
1
解决办法
4352
查看次数