为什么Kafka基于拉力而不是推基础?我同意卡夫卡给了我经历过的高通量,但我没有看到卡夫卡吞吐量将如何往下走,如果它是基于推.关于基于推送的任何想法都会降低性能?
我想只使用本机Python库将JSON编码数据发送到服务器.我喜欢请求,但我根本无法使用它,因为我不能在运行脚本的机器上使用它.我需要在没有的情况下这样做.
newConditions = {"con1":40, "con2":20, "con3":99, "con4":40, "password":"1234"}
params = urllib.parse.urlencode(newConditions)
params = params.encode('utf-8')
req = urllib.request.Request(conditionsSetURL, data=params)
urllib.request.urlopen(req)
Run Code Online (Sandbox Code Playgroud)
我的服务器是本地Wamp服务器.我总是得到一个
urllib.error.HTTPError:HTTP错误500:内部服务器错误
我100%确定这不是服务器问题,因为同一台机器上具有相同网址的相同数据与同一服务器一起使用请求库.(也适用于发送POST请求的程序).我无法找出它为什么这样做......我自己编写了API.
我有一个用于向另一个端点发出 HTTP POST 请求的 AWS Lambda 函数的 Python 脚本。由于Python的urllib2.request
,https://docs.python.org/2/library/urllib2.html,只能在标准处理数据application/x-www-form-urlencoded
格式,我要张贴JSON数据,我使用的请求库,https://pypi.org /project/requests/2.7.0/。
该请求库在 Python 运行时环境中的 AWS Lambda 中不可用,因此必须通过from botocore.vendored import requests
. 到现在为止还挺好。
今天,我收到了一个弃用警告:
DeprecationWarning: You are using the post() function from 'botocore.vendored.requests'.
This is not a public API in botocore and will be removed in the future.
Additionally, this version of requests is out of date. We recommend you install the
requests package, 'import requests' directly, and use the requests.post() function instead. …
Run Code Online (Sandbox Code Playgroud) 我正在使用无服务器框架在AWS Lambda中部署功能,但我无法找到从创建的URL端点中删除阶段说明符的位置/方式.文档似乎没有涉及这一部分.
例如,这是我的serverless.yml
(省略了不相关的部分):
service: cd-mock
provider:
name: aws
runtime: python3.6
region: eu-west-1
package:
include:
- handler.py
functions:
index:
handler: handler.index
events:
- http:
path: /
method: get
Run Code Online (Sandbox Code Playgroud)
在a之后serverless deploy
,返回以下服务信息:
service: cd-mock
stage: dev
region: eu-west-1
stack: cd-mock-dev
api keys:
None
endpoints:
GET - https://ab1cd2ef3g.execute-api.eu-west-1.amazonaws.com/dev/
functions:
index: cd-mock-dev-index
Run Code Online (Sandbox Code Playgroud)
注意/dev
URL端点中的部分以及函数中的部分.这dev
是stage
配置文件中参数的默认值.
stage: something
在serverless.yml
文件中指定将/something
在URL 中作为后缀,并作为函数的一部分.
问题:如何从生成的URL端点中删除阶段规范,或者:如何防止该阶段规范成为生成的URL的一部分?
(该阶段是该功能的一部分,很好.这将很容易在AWS Lambda仪表板中分离staging
和production
运行.)
amazon-web-services aws-lambda serverless-framework serverless-plugins
我知道与我有密切相关的问题,但他们没有帮助我.
我正在学习整个rails,gem,git,heroku概念并且喜欢它.当我发出heroku命令行动作(Ubuntu linux)时,我收到了宝石被弃用的警告,我应该安装工具带.我运行了工具带的完整wget安装:
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
Run Code Online (Sandbox Code Playgroud)
但是现在当我使用heroku命令行时,我仍然得到了已弃用的警告.我怀疑我必须摆脱heroku宝石,但我不知道该怎么做?我想确保正确地做到这一点,以后不再通过bundler再次加载.谢谢.
我们将组织名称存储在AWS上的DynamoDB表中,并希望在这些商业名称中保留官方大写,例如"TNT"和"FedEx".
我们的用例是应用程序的用户可以按名称搜索组织,但我们希望他们的查询被解释为不区分大小写.因此,对"FedEx","Fedex"或"fedex"的查询都应返回表中的正确项.
其他数据库有办法执行忽略大小写的查询(例如通过ILIKE
PostgreSQL中的关键字),通过正则表达式表达查询,或者通过在条件中应用函数(例如 LOWER()
函数).
如何在DynamoDB中完成?Amazon DynamoDB查询的文档没有提供答案.
(最好的解决方法似乎是将名称存储两次:一次使用官方大写,一次使用名称转换为小写的另一个字段.然后应在后一个字段进行搜索,查询搜索项也是转换为小写.是的,我知道它增加了表的冗余.这是一种解决方案,而不是最佳解决方案.)
代替
(A)遵循在AWS上运行Web应用程序的更传统路线(例如,在AWS EC2或Beanstalk上使用Ruby/Sinatra或Python/Flask),或者
(C)在S3中创建静态HTML和JavaScript文件以及在AWS Lambda中创建动态API端点(将JSON数据发送到那些通过JavaScript使用/解释该数据的静态网页),
我想达成一个中间立场:
该设置将产生无服务器的Web应用程序,其中AWS Lambda函数提供服务器端(具有讽刺意味的是,我没有丢失)生成的HTML输出.
在AWS Lambda函数的Python代码中,可以包含HTML代码片段,在函数中修改(填充数据),并将HTML作为text/html
输出返回给客户端.这种方法的缺点是HTML模板然后"嵌入"在Python代码中,而不是外部在单独的文件中.
Q1:如何在代码包中的某处引用HTML模板文件 - 模板应该是包的一部分 - 由Python函数读取,并通过模板中的变量替换生成HMTL页面?
Q2:如何使用AWS无服务器应用程序模型(AWS SAM)指定/包含/链接到项目中的一组HTML模板文件?
使用AWS Cloudformation时,aws cloudformation create-stack
由于某些尚不清楚的原因而失败。对于这个问题,错误和解释不相关,但我认为我传递的参数--parameters
在 CloudFormation 模板中未正确处理,或者在评估模板中的表达式或引用变量时可能会出现错误。
不管怎样,我真的希望能够在模板评估期间输出一些调试语句或表达式;堆栈的配置。将表达式输出到 CloudWatch Logs 或其他输出通道的CloudFormation 等效项是什么?logging.debug(some-expression)
CloudFormation Stacks 中的事件日志显示了错误(在我的例子中),但遗憾的是没有显示修复错误所需的详细信息。它在执行/配置期间不显示变量或 CloudFormation 表达式的值,并且(据我所知)我无法创建显示变量或表达式值的事件。对于预配任务,CloudWatch Logs 为空。并且aws cloudformation validate-template
没有显示任何错误,因此 CloudFormation 模板在语法上是正确的。
使用Serverless Framework部署AWS Lambda函数,Serverless创建(或接收)特定的URL端点字符串。我想在serverless.yml
规范文件的另一部分中使用该字符串(作为变量)。
该URL端点是否可以作为in中的变量serverless.yml
?关于与AWS相关的变量的无服务器框架文档
似乎无法回答这种情况。
详细信息:my serverless.yml
包含provider:
类似于以下内容的规范:
provider:
name: aws
runtime: python3.6
memorySize: 512
region: ${opt:region, 'eu-west-1'}
profile: ${opt:profile, 'default'}
stage: ${opt:stage, 'staging'}
Run Code Online (Sandbox Code Playgroud)
和以以下functions:
内容开头的部分:
functions:
round-control:
name: ${self:provider.stage}-round-control
runtime: nodejs8.10
handler: round/control/app.lambdaHandler
events:
- http:
path: round/control
method: get
Run Code Online (Sandbox Code Playgroud)
之后
serverless deploy --profile [my-aws-profile]
sample-experiments-staging-round-control
据报道Lambda函数在端点可用
https://1a234bc5de.execute-api.eu-west-1.amazonaws.com/staging/round/control
。
问题:Serverless中是否有一个包含该变量的变量1a234bc5de
,或者1a234bc5de.execute-api
甚至
包含1a234bc5de.execute-api.eu-west-1.amazonaws.com
?(显然,如果我知道第一个,我也可以构造最后两个。)
使用该变量,我可以构造完整的URL端点,而该端点需要在serverless.yml
文件的其他位置。
注意:这1a234bc5de
不是动态生成的随机字符串-我当前的项目(每个阶段,每个区域)“固定”到相同的字符串。也许该字符串是在AWS Lambda或AWS API Gateway上生成的?
amazon-web-services aws-lambda aws-api-gateway serverless-framework
我正在使用 Google Maps API Web Services Directions API或Distance Matrix API来查找位置之间的旅行距离和时间。
貌似API只支持计算一起点一目的地的路线。(在距离矩阵 API 的情况下,直接计算起点和终点之间的多个组合。)
我的情况是,我想知道沿着一系列(如有序数组)位置的多段旅程的路线(实际上,只是旅行时间和距离)。
因此,考虑到四个位置 、A
、B
、C
,D
我知道如何计算任何对之间的路线A-B
、A-C
、A-D
、B-C
等等。我想计算A-B-C-D
orA-C-D-B
或A-D-B-C
等等的路线。我提供路线和腿的顺序,所以我不是要求解决旅行商问题。
使用 Google Maps Directions API 或 Distance Matrix API 可以做到这一点吗?
很显然,我可以链中的位置自己,所以要求在单独调用个人腿的路线,然后在需要的顺序加在一起他们:A-C
+ C-D
+D-B
变A-C-D-B
。我希望通过一个电话就可以实现。
(我已经寻找了类似的问题,但还没有找到确切的问题。)