这个功能的好处我不清楚(我没有找到任何好的文档):
谢谢你。
编辑:
有人问我“你为什么要为多个 Lambda 函数使用相同的代码?” 因为我将 AWS Lambda 与 AWS API Gateway 一起使用,所以我有 1 个项目,其中包含所有处理程序,这些处理程序是我的 RESTful API 的实际“端点”。
编辑 #2:我确认在 S3 上上传 zip 文件的修改版本不会改变现有的 lambda 函数结果。
如果 AWS 人员阅读了此消息,那么拥有一种批量更新功能会很棒,该功能可以通过一次单击在 S3 上使用 1 个 zip 文件更新一组选定的 lambda 函数(甚至是“自动更新”功能,可以检测何时文件已更新;-))
假设您在 1 个项目中有 50 个处理程序,然后您修改了影响所有这些处理程序的全局内容,目前您必须检查所有 lambda 函数并手动更新 zip 文件...
我使用aws-java-sdk版本1.11.104。根据AWS凭证doc,默认区域为us-east-1,但是当我创建客户端时未手动设置区域时,如下所示:
AWSCredentialsProvider awsCredentialsProvider =
new AWSStaticCredentialsProvider(new BasicAWSCredentials(awsAccessKey, awsSecretKey));
AmazonS3 s3Client =
AmazonS3ClientBuilder.standard().withCredentials(awsCredentialsProvider).build();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
com.amazonaws.SdkClientException:
Unable to find a region via the region provider chain.
Must provide an explicit region in the builder or setup environment to supply a region.
Run Code Online (Sandbox Code Playgroud)
为什么不使用默认区域?
我试图在上面的代码之前添加以下内容,但仍然无法正常工作。
System.setProperty(SDKGlobalConfiguration.AWS_REGION_ENV_VAR, "us-east-1");
Run Code Online (Sandbox Code Playgroud)如何以编程方式设置AWS区域?(我想在运行时为项目的所有类设置它)。
谢谢。
编辑:
我知道我可以.withRegion()在客户端的生成器上使用,但是我期望使用默认区域,或者是通过默认区域提供程序链从环境变量中选择的区域。
这是路线:
from("aws-sqs://myQueue?accessKey=RAW(xxx)&secretKey=RAW(yyy)&deleteAfterRead=false")
.log("Attributes: ${header.CamelAwsSqsAttributes}")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
Map<String, String> messageAttributes = (Map<String, String>) exchange.getIn().getHeader("CamelAwsSqsAttributes");
...
}
});
Run Code Online (Sandbox Code Playgroud)
在.log()示出了空的映射,以及如果我打印为messageAttributes从处理器。
我也尝试使用标题"CamelAwsSqsMessageAttributes"而不是"CamelAwsSqsAttributes"但仍然没有。
不过,我从AWS控制台看到了属性。
顺便说一下,我得到了消息正文,我使用了 Camel 2.15
在我的骨干路由器的初始化功能中我有
$(document).on('click', '.back', function(e) {
e.preventDefault();
window.history.back();
});
Run Code Online (Sandbox Code Playgroud)
我定义了我的后退按钮
<a data-rel="back" class="back">Back</a>
Run Code Online (Sandbox Code Playgroud)
事情是我想在我回去时改变过渡和方向(反向=真),目前它使用默认值.
顺便说一下,主干负责创建页面和路由,我只使用JQ Mobile用于UI(你可以看到我如何在那里更改页面:jQuery Mobile + backbone.js:navbar问题).
谢谢.