我正在编写一个 python 脚本来查询 Qualys API 以获取漏洞元数据。我在 AWS 中将它作为 lambda 函数执行。我已经在控制台中设置了环境变量,但是当我执行我的函数时,出现以下错误:
module initialization error: name 'QUALYS_USERNAME' is not defined
Run Code Online (Sandbox Code Playgroud)
我正在使用这个 os 模块在我的处理程序函数的代码中调用它们:
import os
import requests
import time
import lxml
import tinys3
from lxml import etree
def lambda_handler(event, context):
QUALYS_USERNAME = os.environ('QUALYS_USERNAME')
QUALYS_PASSWORD = os.environ('QUALYS_PASSWORD')
ACCESS_KEY = os.environ('ACCESS_KEY')
SECRET_KEY = os.environ('SECRET_KEY')
s = requests.Session()
s.headers.update({'X-Requested-With':QUALYS_USERNAME})
def login(s):
payload = {'action':'login', 'username':QUALYS_USERNAME,
'password':QUALYS_PASSWORD}
r = s.post('https://qualysapi.qualys.com/api/2.0/fo/session/',
data=payload)
def launchReport(s, polling_delay=120):
payload = {'action':'launch', 'template_id':'X',
'output_format':'xml', 'report_title':'X'}
r = s.post('https://qualysapi.qualys.com/api/2.0/fo/report/', data=payload)
global extract_id …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 AWS Lambda 上执行一个 python 函数。在我的函数中,我试图导入 mysql.connector 模块。但是出现了一个错误:
errorMessage": "没有名为 'mysql.connector' 的模块"
我最初在我的 EC2 实例中编写了我的 python 代码。我使用 pip 在我的 python 文件目录中安装了 mysql-connector。
pip install mysql-connector -t /path/to/file/dir
Run Code Online (Sandbox Code Playgroud)
我上传了唯一文件的 zip 文件,而不是任何包含该文件的文件夹。
出于某种原因,无论我如何更改响应,我的 AWS lambda 都会返回 502 错误。
Sun Mar 25 03:39:12 UTC 2018:转换前的端点响应正文:{"status":200,"body":"{\"Items\":[],\"Count\":0,\"ScannedCount \":1}","isBase64Encoded":false,"headers":{"content-type":"application/json"}}
我确保对我的正文进行字符串化并添加状态、标题和 isBase64Encoded 属性。我尝试改变标题并使它们也为空。
为什么我会收到这个错误?
这是 lambda 代码:
var response = {
status : 200,
body : JSON.stringify(data),
isBase64Encoded : false,
headers : {"content-type" : "application/json"}
}
console.log(response)
callback(null, response);
Run Code Online (Sandbox Code Playgroud) 我正在研究一个 .Net Core 解决方案,其中我们刚刚添加了 .Net Core lambdas。新创建的 lambda 都已设置,包括 aws-lambda-tools.json。
我剩下要做的就是使用 TeamCity 自动发布这些 lambda。(解决方案的其余部分已经在 TC 上设置了持续部署)
此外,我不想每次添加新的 Lambda 时都更新 TC 构建步骤。
如何设置 TC 以自动发布所有 lambda?
我应该使用 .Net CLI 还是有任何插件可以帮助我配置这一步?
我正在使用 dynamoDb 作为我的数据库为我当前的应用程序构建一个无服务器后端。我使用 aws sam 将我的 lambda 函数上传到 aws。此外,我将所有表名作为全局变量传递给 lambda(nodejs8.10 运行时),以便process.env在我的 lambda 函数内的对象上访问它们。我面临的问题如下:每当我batchGetItem在 dynamoDB 上运行该方法时,我必须传递一个字符串作为我的表名,我无法根据全局变量动态更改表名:
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'ap-south-1'}, {apiVersion:'2012-08-10'});
const params = {
RequestItems: {
//needs to be a string, cannot be a variable containing a string
'tableName': {
Keys: [] //array of keys
}
}
}
dynamodb.batchGetItem(params, (err, result) => {
// some logic
})
Run Code Online (Sandbox Code Playgroud)
我需要将表名作为字符串传递,本质上是将表名硬编码到我的函数中。其他 DynamoDB 操作(例如getItem方法)接受参数对象中表名的键值对:
const tableName = process.env.TableName;
const getItemParams = { …Run Code Online (Sandbox Code Playgroud) 该文档描述了如何通过控制台标记 s3 对象。我们如何使用 lambda 函数以编程方式执行此操作?
AWS Lambda 函数是否提供对 Kotlin 语言的支持?目前 Lambda 函数创建向导在运行时下拉列表中不包含 Kotlin 选项:
但是有 Java 8 和不同的 Node.js 版本。哪个平台更适合在 AWS Lambda 上下文中使用 Kotlin 编写的函数 - JVM 或 Node.js?我可以使用哪些 Kotlin 框架来编写 Lambda 函数?
我有一个 S3 存储桶读取策略:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
基于创建新存储桶时的云跟踪日志,我正在创建一个将调用 Lambda 函数的事件。
能够读取策略的 json 并将新资源(存储桶)添加到同一策略。是否有要调用的直接 python API 将使用新资源更新现有 IAM 策略?
我正在构建一个 AWS Lambda 函数,该函数使用 Node.js 从 Google Calendar API 中提取信息。然后 Node 应用程序向第三方应用程序发送一个 html 响应。我基本上遵循google 的本指南,除了我将 html 发送到其他地方进行渲染。我一直遇到一个错误,Google 告诉我我没有将来自 Lambda 的 javascript 来源列入白名单。这是错误文本:
{error: "idpiframe_initialization_failed", details: ""Not a valid origin for the client: https://<Lambda URL>.execute-api.us-west-2.amazonaws.com has not been whitelisted for client ID <My_Google_API_Client_Id>.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID."}
我已经进入 Google API 开发人员控制台并将该 URL 列入白名单,但我仍然收到该错误。这是一个屏幕截图。
我也试过将“us-west-2.amazonaws.com”列入白名单,但没有成功。谢谢!!
google-calendar-api google-api amazon-web-services node.js aws-lambda
我正在尝试使用 Coveritlive 聊天系统创建假受众应用程序。为此,我创建了不同的 lambda 函数,一个用于发布评论,一个用于获取项目 ID,另一个用于添加对评论的回复。但是为了实现回复服务,我需要通过调用coveritlive.com的事件/数据API来获取评论的item_id。但是在 Amazon DynamoDB 中执行更新操作时出现以下异常。我不知道为什么会显示此异常。另外我想知道是否有任何可用的批量更新功能。请帮我解决这个问题。
ConditionalCheckFailedException: The conditional request failed at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:48:27) at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20) at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:
06179d64-8906-11e8-bc53-f1cb2c5efa4e { ConditionalCheckFailedException: The conditional request failed
at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:48:27)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
message: 'The conditional request failed',
code: 'ConditionalCheckFailedException',
requestId: 'JVQV9VI69F3T2UDG6388RLDPFBVV4KQNSO5AEMVJF66Q9ASUAAJG',
statusCode: 400,
retryable: false,
retryDelay: 4.294909454040329
Run Code Online (Sandbox Code Playgroud)
这是我用于更新的代码:
function updateItemId(id,itemId,docClient) {
var updateParams …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services node.js amazon-dynamodb aws-lambda
aws-lambda ×10
node.js ×3
amazon-s3 ×2
python ×2
.net-core ×1
amazon-iam ×1
aws-sdk ×1
google-api ×1
java ×1
javascript ×1
kotlin ×1
python-2.7 ×1
serverless ×1
teamcity ×1