在本文中,我们将详细介绍如何在elasticbeanstalkworkertomcat中获取SQS消息属性?的各个方面,并为您提供关于elasticsearch获取所有数据的相关解答,同时,我们也将为
在本文中,我们将详细介绍如何在elasticbeanstalk worker tomcat中获取SQS消息属性?的各个方面,并为您提供关于elasticsearch获取所有数据的相关解答,同时,我们也将为您带来关于amazon-web-services – 为什么我得到ElasticBeanstalk :: ExternalInvocationError?、amazon-web-services – 在Elastic Beanstalk上设置Docker容器主机名、asp.net – 如何在.net中读取Elastic Beanstalk环境属性?、AWS Elastic Beanstalk-Java平台和Tomcat平台有什么区别?的有用知识。
本文目录一览:- 如何在elasticbeanstalk worker tomcat中获取SQS消息属性?(elasticsearch获取所有数据)
- amazon-web-services – 为什么我得到ElasticBeanstalk :: ExternalInvocationError?
- amazon-web-services – 在Elastic Beanstalk上设置Docker容器主机名
- asp.net – 如何在.net中读取Elastic Beanstalk环境属性?
- AWS Elastic Beanstalk-Java平台和Tomcat平台有什么区别?
如何在elasticbeanstalk worker tomcat中获取SQS消息属性?(elasticsearch获取所有数据)
我有一个带有Worker层和tomcat 7.0的弹性beantalk应用程序,它运行良好。但是我不知道如何从aws-sqsd
1.1执行的POST调用中获取消息属性,我已经检查了所有标头,属性,参数和主体,但没有检查任何内容。
经过一会儿,我发现aws-sqsd 1.1于2014-02-19发行,但SQS消息属性支持的新功能于2014-05-06发行。因此,aws-sqsd
1.1不支持消息属性功能似乎是合理的,对吗?我们是否有任何解决方案来支持EB worker中的消息属性?
答案1
小编典典似乎已在aws-sqsd 1.2中添加了此功能!
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-
managing-env-
tiers.html
amazon-web-services – 为什么我得到ElasticBeanstalk :: ExternalInvocationError?
我的应用程序构建在RubyOnRails上,并使用乘客部署为弹性beanstalk应用程序,我正在尝试将标头添加到Nginx服务器并重新启动它,这是我的配置文件,来自aws弹性beanstalk的.ebextensions文件夹中的脚本:
packages:
yum:
Nginx: []
files:
"/etc/Nginx/conf.d/webapp.conf" :
mode: "000644"
owner: root
group: root
content: |
server {
location /assets {
alias /var/app/current/public/assets;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
location /public {
alias /var/app/current/public;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
}
# This reloads the server,which will both make the changes take affect and makes sure the config is valid when you deploy
container_commands:
01_reload_Nginx:
command: "sudo service Nginx reload"
但是我收到了这个错误:
[2017-12-13T06:23:48.635Z] ERROR [17344] : Command CMD-AppDeploy Failed!
[2017-12-13T06:23:48.635Z] INFO [17344] : Command processor returning results:
{"status":"FAILURE","api_version":"1.0","results":[{"status":"FAILURE","msg":"container_command 01_reload_Nginx in .ebextensions/01_elastic_beanstalk_webapp.config Failed. For more detail,check /var/log/eb-activity.log using console or EB CLI","returncode":7,"events":[]}]}
/var/log/eb-activity.log:
[2017-12-13T06:23:48.584Z] INFO [17344] - [Application update fix-command-Nginx-reload-hope@2/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_myapp_website/Command 01_reload_Nginx] : Starting activity...
[2017-12-13T06:23:48.619Z] INFO [17344] - [Application update fix-command-Nginx-reload-hope@2/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_myapp_website/Command 01_reload_Nginx] : Activity execution Failed,because: (ElasticBeanstalk::ExternalInvocationError)
[2017-12-13T06:23:48.619Z] INFO [17344] - [Application update fix-command-Nginx-reload-hope@2/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_myapp_website/Command 01_reload_Nginx] : Activity Failed.
虽然如果我ssh到实例并执行sudo服务Nginx重新加载它将正常执行..
任何的想法?
编辑
$cat /proc/version
Linux version 4.9.43-17.39.amzn1.x86_64 (mockbuild@gobi-build-64011) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Fri Sep 15 23:39:41 UTC 2017
部署命令:
eb deploy my-app -v
请求资产的标题:
Connection: keep-alive
content-encoding: gzip
Content-Type: application/x-javascript
Date: Fri,24 Aug 2018 11:03:50 GMT
ETag: W/"12cd8ea0-20db3"
Last-Modified: Mon,31 Dec 1979 04:08:00 GMT
Server: Nginx/1.12.1
transfer-encoding: chunked
Via: 1.1 8cc9957dff77c27e9931ab0aaf344ec9.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 0NlE-figgzczadHYeK7HMMsDsGRmaB8Sefvo89phHWw3LSx01t5rgQ==
X-Cache: Miss from cloudfront
缺少标题:
access-control-max-age: 3000
age: 48214
服务器上的更新conf文件
$cat /etc/Nginx/conf.d/webapp.conf
server {
location /assets {
alias /var/app/current/public/assets;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
add_header 'Access-Control-Allow-Origin' '*';
}
location /public {
alias /var/app/current/public;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
add_header 'Access-Control-Allow-Origin' '*';
}
}
编辑
service Nginx configtest结果:
$sudo service Nginx configtest
Nginx: the configuration file /etc/Nginx/Nginx.conf Syntax is ok
Nginx: configuration file /etc/Nginx/Nginx.conf test is successful
您可能会遇到CDN服务到期的延迟,请尝试刷新缓存或直接对EB网址进行测试.
amazon-web-services – 在Elastic Beanstalk上设置Docker容器主机名
我想手动设置部署在AWS Elastic Beanstalk上的Docker容器的主机名.您可以在使用docker run -h HOSTNAME旋转容器时设置主机名,但我无法弄清楚如何(或者甚至是)将自定义参数传递给docker run命令.
Dockerrun.aws.json文件似乎是一个可能的候选者,但是没有记录的密钥能够满足我的需求.
有谁知道这是否可能?
这里可能的黑客攻击是利用EB对环境变量的不良解析.您可以设置环境变量,例如:
ParaM1 =哑-h MYHOSTNAME
EB不引用参数,因此您的-h部分将嵌入到docker run命令中.
我自己没试过.
另一个选择是创建一个ebextension文件来修补/opt/elasticbeanstalk/hooks/appdeploy/pre/04run.sh脚本,将-h MYHOST行注入其中.
asp.net – 如何在.net中读取Elastic Beanstalk环境属性?
Configuration > Software Configuration > Environment Properties
以下方法均无效:
ConfigurationManager.AppSettings["MyServiceUrl"] ConfigurationManager.AppSettings["aws:elasticbeanstalk:application:environment.MyServiceUrl"] Environment.GetEnvironmentvariable("MyServiceUrl") Environment.GetEnvironmentvariable("aws:elasticbeanstalk:application:environment.MyServiceUrl")
“完全合格”的名称尝试来自AWS EB documentation.
有任何想法吗?
解决方法
option_settings: - option_name: MyServiceUrl value: change me
这将在您的EB环境属性部分中添加“MyServiceUrl”选项(正如您已经看到的那样).部署后,这会将以下内容添加到Web.Config文件中:
<appSettings> <add key="MyServiceUrl" value="change me" /> </appSettings>
如果你进入你的EC2实例,你会看到这个.
使用EB控制台更改属性时,将在Web.Config文件中修改该设置.
因此,您使用标准AppSettings方法访问此属性:
string value = ConfigurationManager.AppSettings["MyServiceUrl"];
抓住:
您需要确保您的Web.Config文件不包含此设置,否则EB不会替换它.如果您的Visual Studio部署包中包含此设置,则EB不会替换它,并且当您通过代码访问该属性时,您将始终收到已部署的值.
解决方案:
在Web.Release.config文件中,在Visual Studio部署期间删除了该设置:
<appSettings> <add key="MyServiceUrl" xdt:Transform="Remove" xdt:Locator="Match(key)" /> </appSettings>
这将在Visual Studio部署期间从Web.Config中删除该设置,并允许EB在EB部署期间将值添加到文件中.
AWS Elastic Beanstalk-Java平台和Tomcat平台有什么区别?
来自the documentation:
AWS Elastic Beanstalk支持两个适用于Java应用程序的平台。
Tomcat –基于Apache Tomcat(开源Web)的平台 使用Java Servlet和JavaServer Pages的应用程序的容器 (JSP)来处理HTTP请求。 Tomcat促进Web应用程序 提供多线程声明式安全性进行开发 配置和广泛的自定义。 Elastic Beanstalk有 Tomcat当前每个主要版本的平台分支。对于 有关更多信息,请参阅Tomcat平台。
Java SE –一个不使用Web容器的应用程序平台, 或使用除Tomcat外的其他产品,例如Jetty或GlassFish。您可以 将您的应用程序使用的所有库Java归档文件(JAR)包含在 您部署到Elastic Beanstalk的源包。欲了解更多 有关信息,请参阅Java SE平台。
回答您的问题:
我想了解背景情况。当我 选择“ Tomcat”是Elastic Beanstalk进行配置 tomcat自动为我安装并安装我们的.war来使用它吗?
是的,这正是Elastic Beanstalk所做的。
在选择怎么样的Java?什么是servlet容器 以及如何设置?是Java时尝试建立Nginx吗? 选择了吗?
期望您提供不依赖Tomcat的Java部署工件,例如Spring Boot可运行的Jar。
今天关于如何在elasticbeanstalk worker tomcat中获取SQS消息属性?和elasticsearch获取所有数据的讲解已经结束,谢谢您的阅读,如果想了解更多关于amazon-web-services – 为什么我得到ElasticBeanstalk :: ExternalInvocationError?、amazon-web-services – 在Elastic Beanstalk上设置Docker容器主机名、asp.net – 如何在.net中读取Elastic Beanstalk环境属性?、AWS Elastic Beanstalk-Java平台和Tomcat平台有什么区别?的相关知识,请在本站搜索。
本文标签: