我能够使用sns将事件数据分配给变量
def lambda_handler(event, context):
message = event['Records'][0]['Sns']['Message']
print("From SNS: " + message)
Run Code Online (Sandbox Code Playgroud)
输出:
{
"Records": [
{
"eventVersion": "2.0",
"eventSource": "aXXXX",
"awsRegion": "XXXXX",
"eventTime": "2016-03-09T12:24:19.255Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:XXXXXXXXXXX"
},
"requestParameters": {
"sourceIPAddress": "xxx.xxx.xx.xx"
},
"responseElements": {
"x-amz-request-id": "XXXX",
"x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "xxx-xxx-xxx",
"bucket": {
"name": "bucketname",
"ownerIdentity": {
"principalId": "XXXXXX"
},
"arn": "arn:aws:s3:::xxxxx"
},
"object": {
"key": "index.js",
"size": 7068,
"eTag": "xxxx",
"sequencer": "0000000000"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我无法进一步解析,并得到的值awsRegion, …
我正在使用 AWS 服务代码构建 Pilepileline 等配置 CICD piepline,以更新我的 ecs Fargate 集群中的部署网络,在我的 buildspec.yml 文件中,aws ecs cli 命令失败,抛出“COMMAND_EXECUTION_ERROR:执行命令时出错:aws ecs update-service --服务 xxxxx。原因:退出状态 255”
我尝试使用“AmazonECS_FullAccess”策略向代码构建角色提供权限。
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker images...
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
- echo Writing image definitions file...
- printf '[{"name":"xxxxxxx","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
- cat imagedefinitions.json
- echo Updating ECSfargate service ...
- aws ecs describe-services --services xxxxxxxxxxxxxxxxx
- aws ecs update-service --service xxxxxxxxxxxxxxxxx --desired-count 2 --no-force-new-deployment
Run Code Online (Sandbox Code Playgroud) 我有一个文本文件,input.txt 中包含以下值
key1=value1\r
key2=value2
key3=value3\r
key4=value4
Run Code Online (Sandbox Code Playgroud)
需要 jq r 表达式通过删除“\r”将其转换为以下 json 格式
输出.json
{
"Environment": {
"Variables": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
}
Run Code Online (Sandbox Code Playgroud)
}
我尝试过下面的表达式并得到
jq -Rs [ split("\n")[] | select(length > 0) | split("=") | {(.[0]): .[1]} ]
Run Code Online (Sandbox Code Playgroud)
并得到以下输出
[
{
"key1ey1": "Value1\r"
},
{
"key2": "value2"
},
{
"key3": "value3\r"
},
{
"key4": "value4"
}
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 获取在运行时按名称选择的变量的值eval,但如果-名称中包含(连字符),则无法获取其值。
ENV=dev
REGION=us-east-1
DBUSERNAME=DB_USER_${ENV}_$REGION
DBPASSWORD=DB_PASS_${ENV}_$REGION
eval "USERNAME=\${${DBUSERNAME}}"
eval "PASSWORD=\${${DBPASSWORD}}"
echo USERNAME=$USERNAME
echo PASSWORD=$PASSWORD
Run Code Online (Sandbox Code Playgroud)
echo USERNAME=east-1
echo PASSWORD=east-1
Run Code Online (Sandbox Code Playgroud)
echo USERNAME=DB_USER_dev_us-east-1
echo PASSWORD=DB_USER_dev_us-east-1
Run Code Online (Sandbox Code Playgroud)
如果名称中没有连字符,则工作正常。
我在 lambda 中使用节点 js 代码。
创建 S3 对象时,函数传递事件数据
var record = event.Records[0];
var bucket = record.s3.bucket.name;
var key = record.s3.object.key;
Run Code Online (Sandbox Code Playgroud)
如何获取 s3 密钥的最后修改日期以创建文件夹并将密钥粘贴到其中。
如果上次修改日期是:Mon Feb 22 14:46:23 GMT+530 2016,
那么文件夹名称必须是: Bucketname/2016/02/22/
我有一个存储桶,我已经从与该存储桶相同的区域中配置了sns主题作为通知,是否有任何方法可以配置其他区域中的sns主题以在发生s3事件时调用
amazon-s3 ×2
json ×2
shell ×2
amazon-ecs ×1
amazon-iam ×1
amazon-sns ×1
aws-lambda ×1
jq ×1
node.js ×1
parsing ×1
python ×1