我已经解决了我自己的问题,但无论如何都要张贴它,希望能在几个小时内拯救别人!
我在AWS上有一个无服务器项目,使用Python将记录插入到kinesis队列中.但是,当我使用boto3.client('kinesis')或put_record函数时,它似乎挂起,直到它超时,没有错误消息或其他信息.以下是功能:
import boto3
def put_record_kinesis(data, stream_name, partition_key):
print "create kinesis begin"
kinesis = boto3.client("kinesis")
print "put record begin"
response = kinesis.put_record(StreamName=stream_name, Data=data, PartitionKey=partition_key)
print "put record complete"
print response
Run Code Online (Sandbox Code Playgroud)
serverless.yml定义如下:
provider:
name: aws
runtime: python2.7
iamRoleStatements:
- Effect: "Allow"
Action:
- "ec2:CreateNetworkInterface"
- "ec2:DescribeNetworkInterfaces"
- "ec2:DeleteNetworkInterface"
- "kinesis:*"
Resource: "*"
vpc:
securityGroupIds:
- sg-...
subnetIds:
- subnet-...
- subnet-...
- subnet-...
stage: dev
region: eu-west-1
memorySize: 128
functions:
LambdaQueueFunction:
handler: python_file.queue
memorySize: 1024
timeout: 100
LambdaDequeueFunction:
handler: python_file.dequeue
resources: …Run Code Online (Sandbox Code Playgroud) 我是AWS的新手,我遇到了一些问题.这是我的代码:
from __future__ import print_function
from urllib2 import Request, urlopen, URLError
import requests
import boto3
import json
def lambda_handler(event, context):
url = "https://globalcurrencies.xignite.com/xGlobalCurrencies.json/GetHistoricalRatesRange?Symbol=BTCUSD&PriceType=Mid&StartDate=01/01/2017&EndDate=10/27/2017&PeriodType=Daily&FixingTime=22:00&_token=some_token_xyz"
response = requests.get(url).json()
# print json.dumps(response, indent=4) # gives a syntax error
return response
Run Code Online (Sandbox Code Playgroud)
该文件的名称是lambda_function.py; 我已经检查了stackoverflow上的类似问题,有些人提到我必须更改文件命名.但它没有帮助.以下是python方法的命名方式:
这是我得到的错误:
START RequestId: cf24e9be-bbef-11e7-97b4-d9b586307f3e Version: $LATEST
Unable to import module 'lambda_function': No module named requests
当尝试打印时,它给我一个语法错误.抱歉格式化.有什么建议?
我只是想知道是否有某种类使用android 2.1的多点触控功能.具体来说,我正在尝试实现双指缩放,并想知道我是否总是要测量两个触摸事件之间的距离并自己计算缩放级别?
谢谢,克里斯
情况就是这样:
X能够连接到YTCP端口上的实例27017(EC2安全组允许)X 有mongo shellYMongoDB正在运行,接受来自X端口的连接27017X,使用mongo shell连接到数据库实例YX,查询Y和插入到Y.一切都很成功.Y:删除27017#1中提到的端口规则X仍然可以从/ insert查询到托管的数据库Y.这不是预期的.X期望EC2网络防火墙将终止违反规则的连接(安全组策略).
你能解释一下上面的#7是怎么回事吗?那怎么可以避免(那时候X什么都做不了Y)?
谢谢.
amazon-ec2 mongodb amazon-web-services amazon-vpc aws-security-group
我有一个名为 ECR 存储库workflow,在该存储库中,有 5 个使用 GitHub 操作推送的图像。
现在我有一个 terraform 工作流程,它将仅使用 ECR 中的图像,并使用此 ECR 图像构建 ECS 容器定义。
所以现在我想获取带有标签的最新图像,无论它是什么......
我尝试了下面的事情
data "aws_ecr_repository" "example" {
name = "workflow"
}
Run Code Online (Sandbox Code Playgroud)
进而
"image": "${data.aws_ecr_repository.example.repository_url}"
Run Code Online (Sandbox Code Playgroud)
但在这里我只得到没有标签的存储库的 Url
那么我怎样才能在这里传递带有标签的最新或最新图像呢?
在我的应用程序中,我需要查询SMS和MMS日志以获取所有传入和传出消息的历史记录.这段代码非常适合SMS:
Cursor c = cr.query(Uri.parse("content://sms"), null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试以下操作时,我会得到完全不同的结果:
Cursor c = cr.query(Uri.parse("content://mms"), null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
SMS查询返回包含消息地址(电话号码),联系人姓名,消息主题,消息正文等的数据... MMS的相同查询返回一堆我无法理解的空值或数值字段的.我真的需要一个当前手机上所有MMS消息的列表,其中包含与之关联的电话号码或联系人ID,以及该消息是传入或传出消息.在SMS查询结果中,我可以从address字段中获取电话号码,从字段中获取传入/传出类型,type但是当我查询MMS时,这些都不存在.
是否有不同的内容Uri,我需要查询这种MMS数据?任何帮助将不胜感激.
编辑:只是为了澄清,我完全清楚这是一个不受支持的内容提供商.但是,由于没有支持的方法,我完全愿意在每个手机/每个OS版本的基础上测试和支持这个.为了让讨论保持正轨,可以说这个问题是针对HTC Dream(G1)或HTC Magic(MyTouch)上的Android 1.6特有的.您将如何在特定的手机和操作系统版本上完成此任务?或者如果它不可能,但在摩托罗拉Droid上的Android 2.0上是可能的,那么我会发现这些信息也非常有用.但无论如何,让我们坚持讨论如何以支持或不支持的方式完成此任务,而不是让它讨论我们应该如何远离API不支持的事情,这是我的事情.发现Android讨论组充满了各种各样的东西,我认为这些讨论组几乎没有任何帮助.如果我使用的是不受支持的方法,那很好,请告诉我完成该任务所支持的方法.如果没有支持的方法,那么为什么API支持允许我通过android.permission.READ_SMS请求读取SMS的权限?
我正在使用AWS Lambda函数(用python编写)在对象上传到预设的S3存储桶时发送电子邮件.该对象通过AWS PHP SDK上传到S3存储桶,并使用分段上传.每当我测试我的代码(在Lambda代码编辑器页面内)它似乎工作正常,我只收到一封电子邮件.
但是当通过PHP SDK上传对象时,Lambda函数会运行两次并发送两封电子邮件,两封邮件都有不同的邮件ID.我尝试了不同的电子邮件地址,但每个地址只收到两封重复的电子邮件.
任何人都可以指导我哪里可能出错?我正在使用随示例python代码导入的boto3库来发送电子邮件.
我正在尝试使用s3cmd sync(vanilla命令远程到本地),但是对于每个文件,我都会收到not writable: Operation not permitted警告(见下文).但是,文件似乎正确下载,如果我ls在文件上执行,则它就在那里.我尝试使用--disable-multipart旗帜,但这没有任何区别.我使用的是s3cmd版本1.5.0-rc1.
我有没有理由收到这些警告?
WARNING: MD5 signatures do not match: computed=11ff15bf.., received="b119cb85b109c6.."
WARNING: ./path/part-r-00003.gz.parquet not writable: Operation not permitted
s3://bucket/path/part-r-00003.gz.parquet -> <fdopen> [31 of 72] 36101458 of 36101458 100% in 2s 16.30 MB/s done
Run Code Online (Sandbox Code Playgroud) 在我的AWS环境中,有一些负载均衡/自动调整的Elastic Beanstalk应用程序.
我想在他们面前有一个负载均衡器,所以对http://loadbalancer.com/app1的任何请求都会被路由到第一个Elastic Beanstalk应用程序, http://loadbalancer.com/app2到第二个,等等.
我尝试设置一个应用程序负载均衡器,其中不同的侦听器路由到不同的目标组.不幸的是我的解决方案并不理想,因为目标组绑定到一组固定的EC2实例,而我希望它们与按需创建或销毁实例的环境相关联.
我还没有找到一种方法将应用程序负载均衡器的监听器绑定到自动缩放组.
有没有办法实现我想要的?
amazon-ec2 amazon-web-services amazon-elastic-beanstalk elastic-load-balancer
aws-lambda ×4
amazon-s3 ×3
amazon-ec2 ×2
android ×2
python ×2
amazon-ecr ×1
amazon-vpc ×1
boto3 ×1
mms ×1
mongodb ×1
multi-touch ×1
python-2.7 ×1
s3cmd ×1
sms ×1
terraform ×1