喜欢以下源代码:
package util.abc;
public class Test{
public String out(){
return "Hello World!";
}
}
Run Code Online (Sandbox Code Playgroud)
我可以用:
Class c = Class.forName("util.abc.Test");
Run Code Online (Sandbox Code Playgroud)
获取此类,但我必须将此源文件(Test.java)放在ClassPath中/util/abc/
我想从数据库动态加载这个类(将源代码存储为string,或binary)
这个有可能 ?
感谢帮助 :)
我正在尝试使用"Cognito Oauth2"在资源服务器中实现Spring Security,但是我似乎找不到太多信息.关于它(或者甚至可能这样做).
我最接近的方法是使用"Nimbus + JOSE"来检查"访问令牌"与"JWKS"的有效性,并授予访问资源的权限.(类似于他们在此处提供的"API网关资源保护实施"示例:https://aws.amazon.com/es/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway /)
非常感激您的帮忙.
谢谢!
我创建了一个lambda和云形成模板,该模板向lambda授予对参数存储和秘密管理器的访问权限。当我测试lambda时,我在export.handler函数之外具有以下函数:
function getParameterFromStore(param){
let promise = new Promise(function(resolve, reject){
console.log('++ ' + param.Path);
servmgr.getParametersByPath(param, function(err, data){
if(err){
reject(console.log('Error getting parameter: ' + err, err.stack));
} else {
resolve(data);
}
});
});
let parameterResult = promise.then(function(result){
console.log('---- result: '+ JSON.stringify(result));
return result;
});
return parameterResult;
};
Run Code Online (Sandbox Code Playgroud)
servmgr 被实例化为 var servmgr = new AWS.SSM();
当我从export.handler函数调用此函数时,我这样做是:
myFirstParam = { Path : '/myPath/Service/servicesEndpoint'};
let endpointResult = getParameterFromStore(myFirstParam);
Run Code Online (Sandbox Code Playgroud)
在lambda中,我有一个函数来检索包装在promise中的export.handler函数bt之外定义的参数。
当我运行/测试此lambda时,返回的对象始终是未定义的……我得到Parameters [],但没有值。
2019-02-20T21:42:41.340Z 2684fe88-d552-4560-a477-6761f2de6717 ++ /myPath/Service/serviceEndpoint
2019-02-20T21:42:41.452Z 2684fe88-d552-4560-a477-6761f2de6717 ---- result: {"Parameters":[]}
Run Code Online (Sandbox Code Playgroud)
如何在运行时如何将参数值返回给lambda?
更新
基于Thales的建议/答案,我将lambda简化为:
const getParameterFromStoreAsync …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 AWS Lambda 函数将 csv 数据从 S3 写入 DynamoDB。我目前收到以下错误“BatchWriteItem 操作:提供的关键元素与架构不匹配”。
有没有快速解决这个问题的方法?
import boto3
s3 = boto3.client('s3')
dynamodb = boto3.resource('dynamodb')
def csv_reader(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
obj = s3.get_object(Bucket=bucket, Key=key)
rows = obj['Body'].read().split('\n')
table = dynamodb.Table('customer_id')
with table.batch_writer() as batch:
for row in rows:
batch.put_item(Item={
'Customer-ID':row.split(',')[0],
'Name':row.split(',')[1]
})
Run Code Online (Sandbox Code Playgroud)
错误看起来像这样:
调用 BatchWriteItem 操作时发生错误 (ValidationException):提供的关键元素与架构不匹配:ClientError Traceback(最近一次调用最后一次):
文件“/var/task/lambda_function.py”,第 22 行,在 csv_reader 'Name':row.split(',')[1]
文件“/var/runtime/boto3/dynamodb/table.py”,第 156 行,退出 self._flush()
文件“/var/runtime/boto3/dynamodb/table.py”,第 137 行,在 _flush RequestItems={self._table_name: items_to_send})
文件“/var/runtime/botocore/client.py”,第 314 行,在 _api_call 中返回 self._make_api_call(operation_name, kwargs)
文件“/var/runtime/botocore/client.py”,第 …
我正在尝试实现将在消息发布到 SQS 时触发的 lambda1。我能够将消息发送到 SQS 队列并接收消息。我创建了 SQS lambda 模板如下:
GetPatientStatusSQS:
Type: AWS::SQS::Queue
Properties:
MaximumMessageSize: 1024
QueueName: !Sub "${EnvironmentName}-GetPatientStatusSQS"
VisibilityTimeout: 30
Run Code Online (Sandbox Code Playgroud)
我查看了 aws 文档,但找不到任何示例显示当消息发布到 SQS 队列时如何触发 lambda。
我找到了这个链接Can an AWS Lambda function call another但不确定这是否有帮助。
我如何更新上面的 SQS 模板以触发 lambda1?
在打印声明中使用\x{..}或\N{U+..}在打印声明中有区别吗?对我来说,它们看起来像做同一件事的两种方式。那么有什么区别-如果有的话?