我正在使用 Fargate 在 ECS 中开始一项任务,在处于 PENDING 状态一段时间后,它最终处于 STOPPED 状态,并出现以下错误:
STOPPED (CannotPullContainerError: "Error response from daem
Run Code Online (Sandbox Code Playgroud)
当我展开细节时,我看到
STOPPED (CannotPullContainerError: "Error response from daemon: Get https://id.dkr.ecr.ap-southeast-2.amazonaws.com/v2/: net/http: request canceled while waiting for connection"
Run Code Online (Sandbox Code Playgroud)
与原因
(Client.Timeout exceeded while awaiting headers)
Run Code Online (Sandbox Code Playgroud)
因此,由于某种原因,该任务无法访问容器,但我不确定缺少什么权限以及来自什么资源。我已经阅读了一些,我发现的唯一真正的建议是将 AssignPublicIp: ENABLED 添加到 AwsvpcConfiguration 但这没有帮助。
有没有办法让 Lambda 关闭?我正在打开一个数据库连接并希望保持其打开状态,但我想确保它在 Lambda 终止时关闭。
我正在查看https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html试图找出 AWS Lambda 使用的 IP 地址范围,但在链接的 JSON 文件中我看不到任何对 Lambda 服务的引用。AWS Lambda 是否只是在幕后使用 EC2,我应该查看那些 IP 地址范围吗?
在 AWS Lambda 中,如果我查看 Lambda 函数的“监控”选项卡,我可以看到一个调用图,其中显示一段时间内对 Lambda 函数的调用次数。AWS 中是否有什么东西可以告诉我在我的所有 Lambda 函数中哪些 Lambda 函数被最常调用?我不想单独查看每个调用图来弄清楚。
error: cannot find symbol当compileTestJava 任务在我的 Gradle 项目中运行时,我收到很多错误。
我的代码在src/main/java,我的测试在src/test/java,测试类无法解析任何类src/main/java
例如:
C:\q\src\test\java\q\MainTest.java:14: error: cannot find symbol
Main.main(new String[0]);
^
symbol: variable Main
location: class MainTest
Run Code Online (Sandbox Code Playgroud)
但q\src\main\java\q\Main.java存在、编译并且是同一包中的公共类。
构建.gradle:
plugins {
id 'java'
}
repositories {
jcenter()
}
dependencies {
implementation 'com.google.guava:guava:29.0-jre'
testImplementation 'junit:junit:4.13'
}
Run Code Online (Sandbox Code Playgroud)
我一直在通过将以下内容添加到 build.gradle 来解决这个问题:
sourceSets {
test {
java.srcDirs = ['src/main/', 'src/test/']
}
}
Run Code Online (Sandbox Code Playgroud)
这确实有效,但会导致 IntelliJ 中出现错误。
我正在使用 Fargate 启动 ECS 任务,容器在处于 PENDING 状态几分钟后最终处于 STOPPED 状态。状态提供以下错误消息:
CannotPullContainerError: context canceled
Run Code Online (Sandbox Code Playgroud)
我正在使用 PrivateLink 来允许 ECS 主机与 ECR 注册表对话,而无需通过公共互联网,这就是它的配置方式(无服务器语法增强 CloudFormation):
Properties:
PrivateDnsEnabled: true
ServiceName: com.amazonaws.ap-southeast-2.ecr.dkr
SubnetIds:
- { Ref: frontendSubnet1 }
- { Ref: frontendSubnet2 }
VpcEndpointType: Interface
VpcId: { Ref: frontendVpc }
Run Code Online (Sandbox Code Playgroud)
关于导致错误的原因有什么想法吗?
我有一些自动缩放 ECS 任务,并将 AssignPublicIp 设置为 true。正在运行的任务都获得公共 IP 地址,但如果我可以使用的 IP 地址数量有限制,我在文档中找不到任何地方。我知道每个账户的弹性 IP 地址是有限的,但 ECS 任务似乎没有获得弹性 IP 地址(至少我没有在 AWS 控制台中看到任何正在使用的弹性 IP 地址)。
AWS 会为我提供与运行 ECS 任务一样多的 IP 地址吗?我知道它不会是无限的,因为我认为我最多可以运行 2,000 个任务。
我正在使用 AWS Backup 备份一些 DynamoDB 表。使用 AWS Backup 控制台还原备份时,系统提示我还原到新表。这工作正常,但我的表是使用 CloudFormation 部署的,因此我需要现有表中恢复的数据。
将恢复的数据存入现有表的过程是怎样的?看起来有一些第三方工具可以在表之间复制数据,但我正在 AWS 本身中寻找一些东西。
我已经使用 Fortran 包管理器构建了一个库,并将测试代码打包为test/最终库的一部分 - 一切正常,但我更愿意在最终构建中省略测试代码。
有没有办法用 Fortran 包管理器来做到这一点?我在文档中看不到任何明显的内容fpm.toml
与 AWS DynamoDB 的通信使用什么端口?它是端口 443 上的 HTTPS 吗?
我能找到的唯一参考是与 AWS 提供的独立 DynamoDB(不是云版本)有关,它看起来像是端口 8000 上的 HTTP。
aws-lambda ×3
amazon-ecs ×2
aws-backup ×1
aws-ecr ×1
aws-fargate ×1
build.gradle ×1
fortran ×1
fortran90 ×1
gfortran ×1
gradle ×1
java ×1