创建DynamoDB CloudForm模板时,您需要指定提供吞吐量:
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb表格已提交
但我也看到了这篇文档,其中指出,当您通过控制台创建表时,默认情况下会设置自动缩放。
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html#HowItWorks.ProvisionedThroughput.AutoScaling
我的问题是:为了让我的DynamoDB表自动缩放,我需要对Cloudformation做一些特殊的事情吗?
这似乎有效:
"ReadScaling" : {
"Type" : "AWS::ApplicationAutoScaling::ScalableTarget",
"Properties" : {
"MaxCapacity" : "<MAX CAPACITY>,
"MinCapacity" : "<MIN CAPACITY>,
"ResourceId" : "table/<TABLE NAME>",
"RoleARN" : "<IAM ROLE ARN>",
"ScalableDimension" : "dynamodb:table:ReadCapacityUnits",
"ServiceNamespace" : "dynamodb"
}
},
"ReadScalingPolicy" : {
"Type" : "AWS::ApplicationAutoScaling::ScalingPolicy",
"Properties" : {
"PolicyName" : "ReadScalingPolicy",
"PolicyType" : "TargetTrackingScaling",
"ResourceId" : "table/<TABLE NAME>",
"ScalableDimension" : "dynamodb:table:ReadCapacityUnits",
"ServiceNamespace" : "dynamodb",
"TargetTrackingScalingPolicyConfiguration" : {
"PredefinedMetricSpecification": {
"PredefinedMetricType": "DynamoDBReadCapacityUtilization"
},
"ScaleInCooldown" : "60",
"ScaleOutCooldown" : "60",
"TargetValue" : "70"
}
},
"DependsOn" : "ReadScaling"
},
看见http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.CLI.html有关IAM角色的规范
自动缩放可以使用云形成完成。
请参考此答案。
尚未使用CloudFormation配置自动缩放DynamoDB
云形成通常不会立即支持AWS服务的新功能。添加支持的延迟可能会有所不同,但通常需要数月时间。
编辑
Amazon刚刚宣布了目标跟踪策略,这就是如何使用单独的资源类型AWS::ApplicationAutoScaling::ScalingPolicy在CloudFormation中实现的。
您仍然需要使用特定的读写吞吐量配置DynamoDB表,但要分别配置读的缩放策略和写的另一个策略。
Amazon在其文档中提供了以下示例。
{
"Resources": {
"DDBTable": {
"Type": "AWS::DynamoDB::Table",
"Properties": {
"AttributeDefinitions": [
{
"AttributeName": "ArtistId",
"AttributeType": "S"
},
{
"AttributeName": "Concert",
"AttributeType": "S"
},
{
"AttributeName": "TicketSales",
"AttributeType": "S"
}
],
"KeySchema": [
{
"AttributeName": "ArtistId",
"KeyType": "HASH"
},
{
"AttributeName": "Concert",
"KeyType": "RANGE"
}
],
"GlobalSecondaryIndexes": [
{
"IndexName": "GSI",
"KeySchema": [
{
"AttributeName": "TicketSales",
"KeyType": "HASH"
}
],
"Projection": {
"ProjectionType": "KEYS_ONLY"
},
"ProvisionedThroughput": {
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 5
}
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 5,
"WriteCapacityUnits": 5
}
}
},
"WriteCapacityScalableTarget": {
"Type": "AWS::ApplicationAutoScaling::ScalableTarget",
"Properties": {
"MaxCapacity": 15,
"MinCapacity": 5,
"ResourceId": { "Fn::Join": [
"/",
[
"table",
{ "Ref": "DDBTable" }
]
] },
"RoleARN": {
"Fn::GetAtt": ["ScalingRole", "Arn"]
},
"ScalableDimension": "dynamodb:table:WriteCapacityUnits",
"ServiceNamespace": "dynamodb"
}
},
"ScalingRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"application-autoscaling.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
},
"Path": "/",
"Policies": [
{
"PolicyName": "root",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:DescribeTable",
"dynamodb:UpdateTable",
"cloudwatch:PutMetricAlarm",
"cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricStatistics",
"cloudwatch:SetAlarmState",
"cloudwatch:DeleteAlarms"
],
"Resource": "*"
}
]
}
}
]
}
},
"WriteScalingPolicy": {
"Type": "AWS::ApplicationAutoScaling::ScalingPolicy",
"Properties": {
"PolicyName": "WriteAutoScalingPolicy",
"PolicyType": "TargetTrackingScaling",
"ScalingTargetId": {
"Ref": "WriteCapacityScalableTarget"
},
"TargetTrackingScalingPolicyConfiguration": {
"TargetValue": 50.0,
"ScaleInCooldown": 60,
"ScaleOutCooldown": 60,
"PredefinedMetricSpecification": {
"PredefinedMetricType": "DynamoDBWriteCapacityUtilization"
}
}
}
}
}
}
我正在尝试为AWS CloudFormation模板制定逻辑流程,该模板将承担IAM角色,可以从另一个AWS帐户的S3存储桶中提取文件。 到目前为止,我得到的是: accountA有一个角色a roleA的策略允许sts:AssumeRole作为accountB:arn:aws:iam::1112223444:role/AllowPullS3中的角色 accountB的角色(AllowPullS3
问题内容: 我需要使用matplotlib获取一个自动拟合数据的图。这是我得到的代码: 这样就创建了一个图,但是无论数据是什么,窗口都始终是相同的(0-〜.8),即使所有数据都在该窗口之外。生成的窗口无法放大,只能放大,因此这是一个主要问题。我找不到在任何地方设置任何类型的大小设置的地方,II也找不到关于默认值的详细信息。我需要一个窗口来自动拟合数据,但是我找不到能执行此操作的任何函数(由于某些原
问题内容: 我有一个带有代码的JPanel。当我用鼠标滚轮滚动时,我希望面板朝着面板中间的位置放大。当前,每当我用鼠标滚轮放大/缩小时,图像左上角的角都保持在同一位置。我很难找到正确的算法。 为了放大图片,代码使用AffineTransform对象,该对象根据双精度值缩放图像,该值根据鼠标滚轮的移动而增大或减小。 还增加了复杂性的是,还可以在面板周围单击和拖动图像。如果单击并拖动它,则缩放仍必须放
我有以下的云形成模板片段。整个模板创建了ECS法门集群以及所有资源。但是现在,我面临着法门服务和任务定义的问题。 模板的服务部分如下所示: 服务: 任务定义如下: 任务定义: 我知道,fargate服务和任务定义在集群中是相互关联的。但问题是,如何使用模板建立这种关系。 我收到以下失败事件: 任务定义中不存在容器abc服务开发人员。(服务:AmazonECS;状态代码:400;错误代码:Inval
我正在尝试HPA:https://kubernetes.io/docs/tasks/run-application/hosteral-pod-autoscale/ HPA: 并创建了新的吊舱: 正如您所看到的,我使用的是,它不支持访问模式。 我发现了一些东西:没有什么可以确保新扩展的pod将与第一个pod运行在同一个节点上。因此,如果卷插件不支持,并且缩放的pod在另一个节点上运行,则它将无法挂载
我有一个向 SNS 主题发送通知的 AWS λ。 Lambda函数 我们使用云形成模板来部署 、 和 。如何访问通过云信息创建的主题的 ARN。 云形成模板