我使用传感器在AWS::ApplicationAutoScaling::ScalableTarget
上获得了温度,压力和高度读数:
SecIndexWriteCapacity:
Type: AWS::ApplicationAutoScaling::ScalableTarget
Properties:
MaxCapacity: 1000
MinCapacity: 15
ResourceId: !Sub "table/${MY_MAIN_TABLE}/index/${MY_SECONDARY_INDEX_NAME}"
RoleARN: !GetAtt ScalingRole.Arn
ScalableDimension: dynamodb:index:WriteCapacityUnits
ServiceNamespace: dynamodb
SecIndexReadCapacity:
Type: AWS::ApplicationAutoScaling::ScalableTarget
Properties:
MaxCapacity: 1000
MinCapacity: 15
ResourceId: !Sub "table/${MY_MAIN_TABLE}/index/MY_SECONDARY_INDEX_NAME"
RoleARN: !GetAtt ScalingRole.Arn
ScalableDimension: dynamodb:index:ReadCapacityUnits
ServiceNamespace: dynamodb
SecIndexWriteScalingPolicy:
Type: AWS::ApplicationAutoScaling::ScalingPolicy
Properties:
PolicyName: SecIndexWriteScalingPolicy
PolicyType: TargetTrackingScaling
ScalingTargetId: !Ref SecIndexWriteCapacity
TargetTrackingScalingPolicyConfiguration:
TargetValue: 50.0
ScaleInCooldown: 30
ScaleOutCooldown: 1
PredefinedMetricSpecification:
PredefinedMetricType: DynamoDBWriteCapacityUtilization
SecIndexReadScalingPolicy:
Type: AWS::ApplicationAutoScaling::ScalingPolicy
Properties:
PolicyName: SecIndexReadScalingPolicy
PolicyType: TargetTrackingScaling
ScalingTargetId: !Ref SecIndexReadCapacity
TargetTrackingScalingPolicyConfiguration:
TargetValue: 50.0
ScaleInCooldown: 30
ScaleOutCooldown: 0
PredefinedMetricSpecification:
PredefinedMetricType: DynamoDBReadCapacityUtilization
。我试图以某种方式自动化它,所以它将继续运行我想要的时间。 有没有办法可以为这两个任务编写代码?
谢谢。
答案 0 :(得分:2)
这里需要两件事。首先是一个脚本,即code.py
,用于在过程中记录temperature, pressure, and altitude
读数等功能行为以及错误/响应。另一个是脚本执行日志,即在预定时间内成功或失败以及其他系统日志。
对于第一份工作,您必须自己做,但要确保有一个logger
模块来记录流程。
对于第二个作业,您可以将OS提供的调度程序crontab
用于基于Linux
的操作系统。例如,每分钟执行一次脚本
* * * * * python /home/script/code.py > /home/script/code.log 2>&1
有关计划程序作业的更多信息,请参阅here
答案 1 :(得分:0)
时间模块是你的朋友。您可以使用while True:
设置无限循环,并在循环结束时使用time.sleep(secs)
(在输出之后)。
答案 2 :(得分:0)
我会使用这样的附加控制器脚本:
import subprocess;
import time;
import sys;
x = True;
while x:
while exit_code!=0:
try:
exit_code = subprocess.check_call(['python', 'collect_data.py', '-cli_args_if_needed']);
except:
print(sys.exec_info()[1]);
print('Relaunching in 5 seconds');
time.sleep(5)