我是无服务器框架的新手.学习无服务器时的最佳实践. 这里
我有一个关于"在Lambda代码之外初始化外部服务"的问题.怎么实现呢?例如:在handler.js中的代码下面
const getOneUser = (event, callback) => {
let response = null;
// validate parameters
if (event.accountid && process.env.SERVERLESS_SURVEYTABLE) {
let docClient = new aws.DynamoDB.DocumentClient();
let params = {
TableName: process.env.SERVERLESS_USERTABLE,
Key: {
accountid: event.accountid,
}
};
docClient.get(params, function(err, data) {
if (err) {
// console.error("Unable to get an item with the request: ", JSON.stringify(params), " along with error: ", JSON.stringify(err));
return callback(getDynamoDBError(err), null);
} else {
if (data.Item) { // got response
// compose response
response = …Run Code Online (Sandbox Code Playgroud) 我有一个用Java I编写的Lambda函数,我想让它访问S3(putObject).
我不想在我的Lambda函数中使用或存储凭据以访问S3.相反,我想使用IAM角色.
如何在我的Java代码(将由Lambda运行)中编写AWS S3客户端,该代码不需要任何凭据并假设Lambda具有适当的角色?
amazon-s3 amazon-web-services aws-sdk aws-lambda serverless-framework
我正在使用无服务器使用nodejs模板创建lambda函数。
serverless.yml。当我尝试时serverless invoke local -f functionName,它总是超时,因此我必须部署它进行测试。
是否可以在本地进行测试serverless?
amazon-web-services node.js amazon-elasticache aws-lambda serverless-framework
我正在使用无服务器框架编写后端服务.
分离"Dev"和"Prod"环境的最佳方法是什么?
假设我希望我的开发配置文件部署在某个区域,而我的prod配置文件则部署在另一个区域?有没有办法在无服务器框架中实现这一目标?
我想做的事情如下:
serverless deploy --profile dev (--> use serverless-dev.yml)
serverless deploy --profile prod (--> use serverless-prod.yml)
Run Code Online (Sandbox Code Playgroud) 刚刚开始使用GCloud Functions,我遇到了问题.我已将我的一个项目更新为功能就绪,并使用谷歌local-emulator(@ google-cloud/functions-emulator)来调试和测试我的新功能.一切顺利,模拟器部署进行得很顺利.```
$ functions deploy doThing --trigger-http --timeout=540s
Copying file:///var/folders/nw/.../T/us-central1-doThing-....zip...
Waiting for operation to finish...done.
Deploying function.......done.
Function doThing deployed.
Run Code Online (Sandbox Code Playgroud)
```
但是当我尝试使用实际的相同的东西gcloud beta functions我得到一个构建错误没有任何理由或明显的方式来调试它:
```
$ gcloud beta functions deploy doThing --stage-bucket test-bucket --trigger-http --timeout=360s
Copying file:///var/folders/nw/.../T/tmpUJvuxd/fun.zip [Content-Type=application/zip]...
| [1 files][ 7.5 MiB/ 7.5 MiB]
Operation completed over 1 objects/7.5 MiB.
Deploying function (may take a while - up to 2 minutes)...failed.
ERROR: (gcloud.beta.functions.deploy) OperationError: code=13, message=Error in the build environment
Run Code Online (Sandbox Code Playgroud)
```
在GClould日志中,我没有得到任何其他细节==> …
下面是我用来在单个响应中设置 cookie 和重定向链接的代码,但只有其中一个可以工作。如果 statusCode 是 301/302,则重定向正在发生,但未设置 cookie。如果 statusCode 是 200 cookie 设置但重定向不起作用。有谁知道如何在单个请求中同时使用两者?我应该更改 StatusCode 某些状态代码不允许设置 cookie 吗?
const response = {
statusCode: 302,
headers: {
"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Credentials" : true,
"Set-Cookie": 'data='+data,
"Location":"http://localhost:8040/#/dashboard",
},
body: JSON.stringify({
message: data,
}),
};
callback(null, response);
Run Code Online (Sandbox Code Playgroud)
我正在使用 nodejs 的无服务器框架。
我想为 Dynamo DB 设置标签,我们是否有一个 serverless.yml 配置,就像我们有它的功能一样
functions:
createUsers:
tags:
key: value
Run Code Online (Sandbox Code Playgroud) 我正在使用无服务器框架编写一些nodejs函数。该package.json文件需要一些依赖项:
{
"name": "adam-test-sls",
"version": "0.1.0",
"description": "Test package to play with sls/lambda",
"main": "handler.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Adam Matan <adam@binaris.com>",
"license": "UNLICENSED",
"dependencies": {
"aws-sdk": ">= 2.0.9",
"json": "^9.0.6",
"underscore": "^1.8.3",
"uuid": "^3.1.0"
},
"devDependencies": {
"eslint": "^4.2.0",
"eslint-config-airbnb": "^15.0.2",
"eslint-config-airbnb-base": "^11.2.0",
"eslint-plugin-import": "^2.7.0"
}
}
Run Code Online (Sandbox Code Playgroud)
node-modules目录的大小几乎为50mb:
# du -smc node_modules
47 node_modules
47 total
Run Code Online (Sandbox Code Playgroud)
压缩时间约为9.5MB,部署时间超过35秒:
# time serverless deploy function --function hello -v …Run Code Online (Sandbox Code Playgroud) AppSync GraphQL订阅的参数可以用于什么?根据文档上的实时数据页面:
使用GraphQL订阅的一个重要部分是了解何时以及如何使用参数,因为细微的更改将允许您修改客户端通知发生的突变的方式和时间.(...)在默认示例中,客户端可以在传递特定eventId参数时订阅注释
但是,我找不到任何方法来访问订阅参数.我有不同的"渠道"评论,我希望用户能够单独订阅,可选择使用密码.我设置的订阅会响应所有渠道中的评论.
有没有办法通过映射模板或类似方法"过滤"通过订阅的数据?如果没有,订阅参数的预期用途是什么?过滤必须在客户端完成吗?
amazon-web-services graphql serverless-framework serverless aws-appsync
aws-lambda ×5
node.js ×5
amazon-s3 ×1
aws-appsync ×1
aws-sdk ×1
cookies ×1
cron ×1
dependencies ×1
gcloud ×1
graphql ×1
javascript ×1
npm ×1
serverless ×1