背景
我正在研究AWS kinesis,API网关.
据我所知,每当请求访问API网关时,我都可以将数据转发到流中,或者我可以选择触发lambda(将进行一些处理).
思考与质疑
所以,我的想法是,如果我可以直接从API网关触发lambda(当请求到达时,它是实时的),有一个kinesis流(用于实时数据处理)的优势是什么?
我可以删除流并直接从API网关触发lambda(甚至为不同的任务创建多个API)
在这种情况下的任何想法!
背景
我正在使用boto3代码从s3下载文件,这是以下代码。
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
print (key)
if key.find('/') < 0 :
if len(key) > 4 and key[-5:].lower() == '.json': //File is uploaded outside any folder
download_path = '/tmp/{}{}'.format(uuid.uuid4(), key)
else:
download_path = '/tmp/{}/{}'.format(uuid.uuid4(), key)//File is uploaded inside a folder
Run Code Online (Sandbox Code Playgroud)
如果在s3存储桶中上传了新文件,则会触发此代码,并且此代码会下载该新上传的文件。
将其上传到任何文件夹之外时,此代码可以正常工作。
但是,当我在目录中上载文件时,会发生IO错误。这是我遇到的IO错误的转储。
[Errno 2]没有这样的文件或目录: /tmp/316bbe85-fa21-463b-b965-9c12b0327f5d/test1/customer1.json.586ea9b8:IOError
test1是s3存储桶中的目录,其中上载了customer1.json。
询问
有什么想法,如何解决这个错误?
背景
要通过 ssh 进入 Google Compute Engine 中的 VM 实例,我需要为用户提供 instanceAdmin 角色,这将管理控制权授予用户,这有时可能是一个安全问题。
询问
Google Compute Engine 是否提供任何 IAM 角色,允许用户通过 SSH 连接到实例,在其上运行程序但没有管理员访问权限(不向用户提供实例管理员角色)??