- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 AWS 账户 A 上的 VPC 中有一个 AWS lambda 函数,它与包含 DAX 集群的 AWS 账户 B 上的 VPC 有对等连接。尝试从我的 lambda 连接到 DAX 集群时出现以下错误。
2021-12-17T17:29:34.096Z 279f4ed8-a6ea-4f50-b1d7-31c307cc3f30 ERROR Failed to pull from my-cluster.v3fh7d.dax-clusters.us-east-1.amazonaws.com (11.0.225.143): TimeoutError: ConnectionException: Connection timeout after 10000ms
at SocketTubePool.alloc (/var/task/node_modules/amazon-dax-client/src/Tube.js:244:64)
at /var/task/node_modules/amazon-dax-client/generated-src/Operations.js:215:30 {
time: 1639762164096,
code: 'ConnectionException',
retryable: true,
requestId: null,
statusCode: -1,
_tubeInvalid: false,
waitForRecoveryBeforeRetrying: false
}
我的 lambda 代码的相关部分在这里。
let assumedRole;
const sts = new AWS.STS({ region: "us-east-1" });
const params = {
RoleArn:
"arn:aws:iam::<account-b>:role/role-to-access-dax",
RoleSessionName: "testAssumeRoleSession" + Date.now().toString(),
DurationSeconds: 3600,
};
try {
assumedRole = await sts.assumeRole(params).promise();
} catch (error) {
console.log("Failed getting sts assume role: " + error);
}
const dax = new AmazonDaxClient({
endpoint:
"dax://my-cluster.v3fh7d.dax-clusters.us-east-1.amazonaws.com",
region: "us-east-1",
accessKeyId: assumedRole.Credentials.AccessKeyId,
secretAccessKey: assumedRole.Credentials.SecretAccessKey,
sessionToken: assumedRole.Credentials.SessionToken,
httpOptions: { timeout: 150000 },
maxRetries: 1,
});
const dynamodb = new AWS.DynamoDB.DocumentClient({ service: dax });
try {
const params = {
Key: {
userid: requestData.userid,
},
TableName: "my-users-table",
};
const result = await dynamodb.get(params).promise();
if (result.Item == undefined || result.Item == null) {
return createResponse(401, "Unauthorized");
}
return createResponse(200, JSON.stringify(result.Item));
} catch (error) {
return createResponse(500, error);
}
角色arn:aws:iam::<account-b>:role/role-to-access-dax
具有以下权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dax:GetItem",
"dax:BatchGetItem",
"dax:Query",
"dax:Scan",
"dax:PutItem",
"dax:UpdateItem",
"dax:DeleteItem",
"dax:BatchWriteItem",
"dax:ConditionCheckItem"
],
"Resource": "arn:aws:dax:us-east-1:<account-b>:cache/my-cluster"
}
]
}
以及以下信任关系。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account-a>:root"
},
"Action": "sts:AssumeRole"
}
]
}
DAX 集群具有策略 AmazonDynamoDBFullAccess
.
对等连接显示为 Active
在 AWS 控制台中。
DAX 集群的安全组有一个入站规则,允许端口 8111
上的 TCP 流量来自来源<account-a> / <sg-of-lambda>
.
帐户 A VPC 的 CIDR 是 10.0.0.0/24
账户 B VPC 的 CIDR 是 11.0.0.0/16
.
账户 A VPC 的主路由表有一条路由指向目的地 11.0.0.0/16
的流量到对等连接。同样,账户 B VPC 的主路由表中有一条路由指向目的地 10.0.0.0/24
的流量。到对等连接。
顺便说一句,lambda 代码中的以下几行似乎被忽略了,因为 DAX 请求上有很多次重试并且超时没有从 10000 毫秒开始改变。
httpOptions: { timeout: 150000 },
maxRetries: 1,
最佳答案
我在 AWS 代表的帮助下解决了这个问题。事实证明,我的 VPC 中需要一个包含 lambda 的公共(public)和私有(private)子网。 lambda 本身必须位于私有(private)子网中,而公共(public)子网包含 NAT 网关和互联网网关。我需要两个子网的单独路由表,而不是 VPC 中的单个路由表。私有(private)路由包含对等连接路由和 VPC CIDR 路由,就像我在问题中提到的那样,但还包含一个目标为 0.0.0.0/0
的路由,以 NAT 网关为目标。公共(public)子网路由表包含 VPC CIDR 路由以及目标为 0.0.0.0/0
且以互联网网关为目标的路由。
关于node.js - 从 lambda 使用 VPC 对等访问时出现 AWS DAX ConnectionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70398550/
我希望我的 C/C++ 客户端通过 SSL 验证服务器。我首先使用 从服务器下载了证书文件 openssl s_client -showcerts -connect www.openssl.org:4
我正在尝试学习使用 RSelenium。我坚持只是尝试使用 rsDriver 启动服务器。我只是想运行下面的代码并得到以下错误: rD = 8 x64 (build 9200) Matrix prod
我已经建立了一个 8 组织的单 channel 结构网络。我能够进行整个网络设置。但是设置成功后。一些 docker 实例停止监听它们各自的端口。当我做 docker ps -a它显示了一些对等节点图
如何在多个 Azure Kubernetes 集群上的 Pod 之间配置路由? 与 Google Cloud 上的 ip-alias/vpc-native 类似的内容 最佳答案 在 AKS 中,我认为
我正在尝试实现点对点连接应用程序。所以我想将 2 个以上的设备相互连接。如何为每对设备创建单独的 session 使用新的 GameKit 框架是否可以连接到 1 个以上的设备? 最佳答案 您可以使用
我一直致力于创建一个 VPC 对等连接,该连接可以使用 cloudformation 从 eu-west-1 与 us-east-1 进行对等。这是目前的云信息: AWSTemplateFormatV
我正在尝试在两个不同区域之间进行 vpc 对等互连。在这里我已经创建了资源,现在我只想将它们的 id 作为参数传递。在同一区域,我可以在两个 VPC 之间进行对等。但我在两个不同的区域收到错误,因为r
我是一名优秀的程序员,十分优秀!