amazon-web-services - 使用 AWS CLI 调整 Redshift 集群大小的问题
问题描述
虽然,我已经解决了这个问题;但是在这里分享我的经验,以便如果有人被卡住,这可能对您有所帮助。
根据我们的用例,我们过去常常使用 AWS 提供的 CLI 定期调整 AWS Redshift 集群的大小。
我们曾经使用以下脚本:
aws redshift modify-cluster --region=eu-west-1 --cluster-identifier test-cluster --node-type dc1.large --number-of-nodes 2
它抛出以下错误:
An error occurred (InternalFailure) when calling the ModifyCluster operation (reached max retries: 4): An internal error has occurred. Please try your query again at a later time.
我尝试使用谷歌上的错误消息进行搜索,但无法找到太多信息。我已检查 AWS 密钥是否正确部署在我运行脚本的机器上。
这里有什么问题,为什么会发生?
解决方案
我与 AWS 支持团队取得了联系。它提出了以下解决方案
我收到错误的原因是当 Redshift 平台试图代表我的账户进行描述 VPC 调用时,它得到了一个未经授权的异常,Redshift 平台正在吞下并冒泡内部故障。
我必须向我用来调整 Redshift 集群大小的 IAM 用户添加新的 IAM 策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"redshift:*",
"ec2:DescribeAccountAttributes",
"ec2:DescribeAddresses",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeInternetGateways",
"sns:CreateTopic",
"sns:Get*",
"sns:List*",
"cloudwatch:Describe*",
"cloudwatch:Get*",
"cloudwatch:List*",
"cloudwatch:PutMetricAlarm",
"cloudwatch:EnableAlarmActions",
"cloudwatch:DisableAlarmActions"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "redshift.amazonaws.com"
}
}
}
]
}
推荐阅读
- swift - 快速推迟手势识别器(UISwipeGestureRecognizer)
- c# - 如何在 ASP.NET 框架中设置客户端证书身份验证
- java - 使用 Scanner nextInt 制作 if == 语句
- python - Pandas 用第二列分组逗号分隔的单词,然后是 groupby 和 sum
- visual-studio - asp.net core web api在iis express上工作,但在windows上的iis中不工作
- c++ - 如何将 unique_ptr.get() 的引用传递给函数
- python-3.x - 如果类实例总是通过引用传递?
- typescript - 在打字稿项目中导入纽曼(邮递员)?
- python - 循环遍历二维数组的快速方法
- c# - 使用 Xamarin ImageSource.FromUri("https://my image url") 如何判断是否已检索图像