如果我在 AWS ECS(EC2 容器服务)中运行基于 docker 的容器,有没有办法从应用程序内部识别我的容器是否在 AWS ECS 上运行?这是必需的,因为我的 docker 容器可以在任何平台上运行,但是当它运行在 AWS ECS 上时,我需要执行一些额外的操作。
我一直在使用 mvn spring-boot:run 命令和 -Dspring-boot.run.arguments 将参数/变量传递给我们的 spring-boot 应用程序,例如:
mvn spring-boot:run -Dspring-boot.run.arguments=--jwt.validateExp=false,--jwt.skipValidation=true
Run Code Online (Sandbox Code Playgroud)
在应用程序中,我曾经使用注释读取参数值:@Value("${jwt.skipValidation}")。这在 spring-boot 2.2.1 中运行良好。
当我升级到 spring-boot 2.3.1 时,它停止工作。有什么建议吗?
如果我在 Docker 容器中运行一个 java 应用程序,并且我想从同一个 java 应用程序代码中获取正在运行的 docker 容器的名称(我的 java 应用程序在其中运行),那么通过 java 获取容器名称的方法是什么?代码?
请注意,我希望在容器内运行的同一个 java 应用程序中使用 java 代码。
我正在尝试使用 AWS CLI 将 AWS ELB 添加到 ECS 集群服务。我正在使用以下命令:
aws ecs create-service --service-name ${SERVICE_NAME} --desired-count 1 --task-definition launch-test-app --load-balancers targetGroupArn=arn:aws:elasticloadbalancing:us-east-1:NNNNNNNNNNNN:loadbalancer/app/bw-test/edfe7f7c15e40d56,containerName=launch-test-app,containerPort=8080 --role arn:aws:iam::NNNNNNNNNNNN:role/service-role/bw-metering-role --cluster ${CLUSTER} --region ${REGION}
角色“bw-metering-role”附加了以下策略:
并且角色还具有以下信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ecs.amazonaws.com",
"ec2.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
但在执行上述 AWS CLI 命令时仍然出现以下错误:
An error occurred (InvalidParameterException) when calling the CreateService operation: Unable to assume role and validate the specified targetGroupArn. Please verify that the …
我正在使用 AXIS (1.4) 客户端来调用 SOAP Web 服务,JDK 版本为 8。某些 SOAP 服务调用出现以下间歇性错误。在负载条件下,1000 个请求中有 5-10 个请求会发生这种情况。
Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:223) ~[axis-1.4.jar:na]
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:130) ~[axis-1.4.jar:na]
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1104) ~[axis-1.4.jar:na]
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) ~[na:na]
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) ~[na:na]
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) ~[na:na]
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[na:na]
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[na:na]
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[na:na]
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[na:na]
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) ~[na:na]
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) ~[na:na]
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:241) ~[axis-1.4.jar:na]
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) ~[axis-1.4.jar:na]
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) ~[axis-1.4.jar:na]
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) ~[axis-1.4.jar:na]
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) ~[axis-1.4.jar:na]
at org.apache.axis.client.Call.invokeEngine(Call.java:2782) …
Run Code Online (Sandbox Code Playgroud) amazon-ecs ×2
containers ×2
docker ×2
java ×2
amazon-ec2 ×1
axis ×1
java-8 ×1
soap ×1
spring-boot ×1