当我创建 AWS Lambda 层时,我的 zip 文件的所有内容/模块都会/opt/在 AWS Lambda 执行时转到。这很容易变得麻烦和令人沮丧,因为我必须对我所有的 lambda 使用绝对导入。例子:
import json
import os
import importlib.util
spec = importlib.util.spec_from_file_location("dynamodb_layer.customer", "/opt/dynamodb_layer/customer.py")
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
def fetch(event, context):
CustomerManager = module.CustomerManager
customer_manager = CustomerManager()
body = customer_manager.list_customers(event["queryStringParameters"]["acquirer"])
response = {
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*"
},
"body": json.dumps(body)
}
return response
Run Code Online (Sandbox Code Playgroud)
所以我想知道,是否可以通过 serverless.yml 预先将这些 /opt/paths 添加到 PATH 环境变量中?那样的话,我就可以from dynamodb_layer.customer import CustomerManager,而不是那种怪异的丑陋。
我不是python程序员,但我正在尝试将一些Python代码转换为R.我遇到的一段python代码是:
hashlib.sha256(x).hexdigest()
Run Code Online (Sandbox Code Playgroud)
我对这段代码的解释是该函数将使用sha256算法计算x的散列并以十六进制形式返回值.
鉴于这种解释,我使用以下R函数:
digest(x, algo="sha256", raw=FALSE)
Run Code Online (Sandbox Code Playgroud)
基于我虽然有限的R知识和我在线阅读的Python的hashlib函数,这两个函数应该产生相同的结果,但它们不是.
我错过了什么或者我使用了错误的R功能.