我有无服务器 API,它与无服务器框架版本 1.25 一起使用
\n\n出于安全原因,我想添加响应标头。请帮助我如何通过 serverless.yml 文件设置以下标头。出于安全原因是否有必要添加此标头?
\n\n\xe2\x80\xa2 内容安全策略:包括 default-src 'self'
\n\n\xe2\x80\xa2 严格传输安全 max-age=31536000; 包括子域;预载
\n\n\xe2\x80\xa2 X-内容类型选项:nosniff
\n\n\xe2\x80\xa2 X-XSS 保护:1
\n\n\xe2\x80\xa2 缓存控制:max-age=0;过期=-1 或过期:1990 年 1 月 1 日星期五 00:00:00 GMT;无缓存,必须重新验证
\n\n下面是我的无服务器应用程序 serverless.yaml
\n\nservice: myService\nprovider:\n name: aws\n runtime: nodejs6.10\n stage: dev\n region: eu-west-1\n environment:\n REGION: ${self:provider.region}\n PROJECT_NAME: ${self:custom.projectName}\n SERVERLESS_STAGE: ${self:provider.stage}\n SERVERLESS_SERVICE: ${self:service}\n IP_ADDRESS: http://example.com\nfunctions:\n getMyFunction:\n handler: handler.getMyFunction\n timeout: 30\n events:\n - http:\n method: get\n path: api/getMyFunction/v1\n integration: lambda\n cors: true\n authorizer:\n name: authorizerFunc\n …Run Code Online (Sandbox Code Playgroud) javascript httpresponse amazon-web-services http-headers serverless-framework
我试过下面的代码。
var exec = require('child_process').execFile;
var runCmd = 'java -jar ' + process.env.LAMBDA_TASK_ROOT + '/src/' + 'myjar.jar'
exec(runCmd,
function (err, resp) {
if (err) {
cb(null, { err: err})
} else {
cb(null, { resp: resp})
}
)
Run Code Online (Sandbox Code Playgroud)
在这里,我也将我的 jar 文件放在根文件夹和 src 文件夹中。但它给出了我的以下错误。我已经添加了带有代码的 .jar 文件。但是出现以下错误。
"err": {
"code": "ENOENT",
"errno": "ENOENT",
"syscall": "spawn java -jar /var/task/src/myjar.jar",
"path": "java -jar /var/task/src/myjar.jar",
"spawnargs": [],
"cmd": "java -jar /var/task/src/myjar.jar"
}
Run Code Online (Sandbox Code Playgroud)
那么如何,我可以在 AWS Lambda 环境中执行这个 .jar 文件吗?请帮我。