我正在尝试从ecs-task
向APIGateway Websocket @connection api
发出post_to_connection
请求,但每次都得到禁止的响应ecs-task
无法做到这一点。
此ecs-task
具有附加的角色,具有以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": "execute-api:ManageConnections",
"Resource": "arn:aws:execute-api:*:*:*"
}
]
}
我做过的测试:
我已经复制了在此容器上找到的凭据;access_key_id
,secret_access_key
和session
,并从我的本地机器发出请求,这是成功的。
我创建了一个credential object
并将其传递给apigateway
客户端并从容器内部发出请求,但它再次失败,响应Forbidden
。
为了提出这些请求,我使用的是相同版本的aws-sdk-apigatewaymanagementapi
gem。
client = Aws::ApiGatewayManagementApi::Client.new(endpoint: url, region: 'eu-west-1')
resp = client.post_to_connection({data: "{type: 'hello'}",connection_id: "conn_id"})
在这一点上,我没有想法,因为我对 AWS 没有太多的经验。你能想到我能尝试什么吗?
通过创建一个指向此 ApiGateway 实例的Custom Domain
来解决此问题。