examples_test.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
  2. package applicationautoscaling_test
  3. import (
  4. "fmt"
  5. "strings"
  6. "time"
  7. "github.com/aws/aws-sdk-go/aws"
  8. "github.com/aws/aws-sdk-go/aws/awserr"
  9. "github.com/aws/aws-sdk-go/aws/session"
  10. "github.com/aws/aws-sdk-go/service/applicationautoscaling"
  11. )
  12. var _ time.Duration
  13. var _ strings.Reader
  14. var _ aws.Config
  15. func parseTime(layout, value string) *time.Time {
  16. t, err := time.Parse(layout, value)
  17. if err != nil {
  18. panic(err)
  19. }
  20. return &t
  21. }
  22. // To delete a scaling policy
  23. //
  24. // This example deletes a scaling policy for the Amazon ECS service called web-app,
  25. // which is running in the default cluster.
  26. func ExampleApplicationAutoScaling_DeleteScalingPolicy_shared00() {
  27. svc := applicationautoscaling.New(session.New())
  28. input := &applicationautoscaling.DeleteScalingPolicyInput{
  29. PolicyName: aws.String("web-app-cpu-lt-25"),
  30. ResourceId: aws.String("service/default/web-app"),
  31. ScalableDimension: aws.String("ecs:service:DesiredCount"),
  32. ServiceNamespace: aws.String("ecs"),
  33. }
  34. result, err := svc.DeleteScalingPolicy(input)
  35. if err != nil {
  36. if aerr, ok := err.(awserr.Error); ok {
  37. switch aerr.Code() {
  38. case applicationautoscaling.ErrCodeValidationException:
  39. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  40. case applicationautoscaling.ErrCodeObjectNotFoundException:
  41. fmt.Println(applicationautoscaling.ErrCodeObjectNotFoundException, aerr.Error())
  42. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  43. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  44. case applicationautoscaling.ErrCodeInternalServiceException:
  45. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  46. default:
  47. fmt.Println(aerr.Error())
  48. }
  49. } else {
  50. // Print the error, cast err to awserr.Error to get the Code and
  51. // Message from an error.
  52. fmt.Println(err.Error())
  53. }
  54. return
  55. }
  56. fmt.Println(result)
  57. }
  58. // To deregister a scalable target
  59. //
  60. // This example deregisters a scalable target for an Amazon ECS service called web-app
  61. // that is running in the default cluster.
  62. func ExampleApplicationAutoScaling_DeregisterScalableTarget_shared00() {
  63. svc := applicationautoscaling.New(session.New())
  64. input := &applicationautoscaling.DeregisterScalableTargetInput{
  65. ResourceId: aws.String("service/default/web-app"),
  66. ScalableDimension: aws.String("ecs:service:DesiredCount"),
  67. ServiceNamespace: aws.String("ecs"),
  68. }
  69. result, err := svc.DeregisterScalableTarget(input)
  70. if err != nil {
  71. if aerr, ok := err.(awserr.Error); ok {
  72. switch aerr.Code() {
  73. case applicationautoscaling.ErrCodeValidationException:
  74. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  75. case applicationautoscaling.ErrCodeObjectNotFoundException:
  76. fmt.Println(applicationautoscaling.ErrCodeObjectNotFoundException, aerr.Error())
  77. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  78. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  79. case applicationautoscaling.ErrCodeInternalServiceException:
  80. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  81. default:
  82. fmt.Println(aerr.Error())
  83. }
  84. } else {
  85. // Print the error, cast err to awserr.Error to get the Code and
  86. // Message from an error.
  87. fmt.Println(err.Error())
  88. }
  89. return
  90. }
  91. fmt.Println(result)
  92. }
  93. // To describe scalable targets
  94. //
  95. // This example describes the scalable targets for the ecs service namespace.
  96. func ExampleApplicationAutoScaling_DescribeScalableTargets_shared00() {
  97. svc := applicationautoscaling.New(session.New())
  98. input := &applicationautoscaling.DescribeScalableTargetsInput{
  99. ServiceNamespace: aws.String("ecs"),
  100. }
  101. result, err := svc.DescribeScalableTargets(input)
  102. if err != nil {
  103. if aerr, ok := err.(awserr.Error); ok {
  104. switch aerr.Code() {
  105. case applicationautoscaling.ErrCodeValidationException:
  106. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  107. case applicationautoscaling.ErrCodeInvalidNextTokenException:
  108. fmt.Println(applicationautoscaling.ErrCodeInvalidNextTokenException, aerr.Error())
  109. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  110. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  111. case applicationautoscaling.ErrCodeInternalServiceException:
  112. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  113. default:
  114. fmt.Println(aerr.Error())
  115. }
  116. } else {
  117. // Print the error, cast err to awserr.Error to get the Code and
  118. // Message from an error.
  119. fmt.Println(err.Error())
  120. }
  121. return
  122. }
  123. fmt.Println(result)
  124. }
  125. // To describe scaling activities for a scalable target
  126. //
  127. // This example describes the scaling activities for an Amazon ECS service called web-app
  128. // that is running in the default cluster.
  129. func ExampleApplicationAutoScaling_DescribeScalingActivities_shared00() {
  130. svc := applicationautoscaling.New(session.New())
  131. input := &applicationautoscaling.DescribeScalingActivitiesInput{
  132. ResourceId: aws.String("service/default/web-app"),
  133. ScalableDimension: aws.String("ecs:service:DesiredCount"),
  134. ServiceNamespace: aws.String("ecs"),
  135. }
  136. result, err := svc.DescribeScalingActivities(input)
  137. if err != nil {
  138. if aerr, ok := err.(awserr.Error); ok {
  139. switch aerr.Code() {
  140. case applicationautoscaling.ErrCodeValidationException:
  141. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  142. case applicationautoscaling.ErrCodeInvalidNextTokenException:
  143. fmt.Println(applicationautoscaling.ErrCodeInvalidNextTokenException, aerr.Error())
  144. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  145. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  146. case applicationautoscaling.ErrCodeInternalServiceException:
  147. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  148. default:
  149. fmt.Println(aerr.Error())
  150. }
  151. } else {
  152. // Print the error, cast err to awserr.Error to get the Code and
  153. // Message from an error.
  154. fmt.Println(err.Error())
  155. }
  156. return
  157. }
  158. fmt.Println(result)
  159. }
  160. // To describe scaling policies
  161. //
  162. // This example describes the scaling policies for the ecs service namespace.
  163. func ExampleApplicationAutoScaling_DescribeScalingPolicies_shared00() {
  164. svc := applicationautoscaling.New(session.New())
  165. input := &applicationautoscaling.DescribeScalingPoliciesInput{
  166. ServiceNamespace: aws.String("ecs"),
  167. }
  168. result, err := svc.DescribeScalingPolicies(input)
  169. if err != nil {
  170. if aerr, ok := err.(awserr.Error); ok {
  171. switch aerr.Code() {
  172. case applicationautoscaling.ErrCodeValidationException:
  173. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  174. case applicationautoscaling.ErrCodeFailedResourceAccessException:
  175. fmt.Println(applicationautoscaling.ErrCodeFailedResourceAccessException, aerr.Error())
  176. case applicationautoscaling.ErrCodeInvalidNextTokenException:
  177. fmt.Println(applicationautoscaling.ErrCodeInvalidNextTokenException, aerr.Error())
  178. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  179. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  180. case applicationautoscaling.ErrCodeInternalServiceException:
  181. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  182. default:
  183. fmt.Println(aerr.Error())
  184. }
  185. } else {
  186. // Print the error, cast err to awserr.Error to get the Code and
  187. // Message from an error.
  188. fmt.Println(err.Error())
  189. }
  190. return
  191. }
  192. fmt.Println(result)
  193. }
  194. // To apply a scaling policy to an Amazon ECS service
  195. //
  196. // This example applies a scaling policy to an Amazon ECS service called web-app in
  197. // the default cluster. The policy increases the desired count of the service by 200%,
  198. // with a cool down period of 60 seconds.
  199. func ExampleApplicationAutoScaling_PutScalingPolicy_shared00() {
  200. svc := applicationautoscaling.New(session.New())
  201. input := &applicationautoscaling.PutScalingPolicyInput{
  202. PolicyName: aws.String("web-app-cpu-gt-75"),
  203. PolicyType: aws.String("StepScaling"),
  204. ResourceId: aws.String("service/default/web-app"),
  205. ScalableDimension: aws.String("ecs:service:DesiredCount"),
  206. ServiceNamespace: aws.String("ecs"),
  207. StepScalingPolicyConfiguration: &applicationautoscaling.StepScalingPolicyConfiguration{
  208. AdjustmentType: aws.String("PercentChangeInCapacity"),
  209. Cooldown: aws.Int64(60),
  210. StepAdjustments: []*applicationautoscaling.StepAdjustment{
  211. {
  212. MetricIntervalLowerBound: aws.Float64(0.000000),
  213. ScalingAdjustment: aws.Int64(200),
  214. },
  215. },
  216. },
  217. }
  218. result, err := svc.PutScalingPolicy(input)
  219. if err != nil {
  220. if aerr, ok := err.(awserr.Error); ok {
  221. switch aerr.Code() {
  222. case applicationautoscaling.ErrCodeValidationException:
  223. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  224. case applicationautoscaling.ErrCodeLimitExceededException:
  225. fmt.Println(applicationautoscaling.ErrCodeLimitExceededException, aerr.Error())
  226. case applicationautoscaling.ErrCodeObjectNotFoundException:
  227. fmt.Println(applicationautoscaling.ErrCodeObjectNotFoundException, aerr.Error())
  228. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  229. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  230. case applicationautoscaling.ErrCodeFailedResourceAccessException:
  231. fmt.Println(applicationautoscaling.ErrCodeFailedResourceAccessException, aerr.Error())
  232. case applicationautoscaling.ErrCodeInternalServiceException:
  233. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  234. default:
  235. fmt.Println(aerr.Error())
  236. }
  237. } else {
  238. // Print the error, cast err to awserr.Error to get the Code and
  239. // Message from an error.
  240. fmt.Println(err.Error())
  241. }
  242. return
  243. }
  244. fmt.Println(result)
  245. }
  246. // To apply a scaling policy to an Amazon EC2 Spot fleet
  247. //
  248. // This example applies a scaling policy to an Amazon EC2 Spot fleet. The policy increases
  249. // the target capacity of the spot fleet by 200%, with a cool down period of 180 seconds.",
  250. //
  251. //
  252. func ExampleApplicationAutoScaling_PutScalingPolicy_shared01() {
  253. svc := applicationautoscaling.New(session.New())
  254. input := &applicationautoscaling.PutScalingPolicyInput{
  255. PolicyName: aws.String("fleet-cpu-gt-75"),
  256. PolicyType: aws.String("StepScaling"),
  257. ResourceId: aws.String("spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3"),
  258. ScalableDimension: aws.String("ec2:spot-fleet-request:TargetCapacity"),
  259. ServiceNamespace: aws.String("ec2"),
  260. StepScalingPolicyConfiguration: &applicationautoscaling.StepScalingPolicyConfiguration{
  261. AdjustmentType: aws.String("PercentChangeInCapacity"),
  262. Cooldown: aws.Int64(180),
  263. StepAdjustments: []*applicationautoscaling.StepAdjustment{
  264. {
  265. MetricIntervalLowerBound: aws.Float64(0.000000),
  266. ScalingAdjustment: aws.Int64(200),
  267. },
  268. },
  269. },
  270. }
  271. result, err := svc.PutScalingPolicy(input)
  272. if err != nil {
  273. if aerr, ok := err.(awserr.Error); ok {
  274. switch aerr.Code() {
  275. case applicationautoscaling.ErrCodeValidationException:
  276. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  277. case applicationautoscaling.ErrCodeLimitExceededException:
  278. fmt.Println(applicationautoscaling.ErrCodeLimitExceededException, aerr.Error())
  279. case applicationautoscaling.ErrCodeObjectNotFoundException:
  280. fmt.Println(applicationautoscaling.ErrCodeObjectNotFoundException, aerr.Error())
  281. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  282. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  283. case applicationautoscaling.ErrCodeFailedResourceAccessException:
  284. fmt.Println(applicationautoscaling.ErrCodeFailedResourceAccessException, aerr.Error())
  285. case applicationautoscaling.ErrCodeInternalServiceException:
  286. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  287. default:
  288. fmt.Println(aerr.Error())
  289. }
  290. } else {
  291. // Print the error, cast err to awserr.Error to get the Code and
  292. // Message from an error.
  293. fmt.Println(err.Error())
  294. }
  295. return
  296. }
  297. fmt.Println(result)
  298. }
  299. // To register an ECS service as a scalable target
  300. //
  301. // This example registers a scalable target from an Amazon ECS service called web-app
  302. // that is running on the default cluster, with a minimum desired count of 1 task and
  303. // a maximum desired count of 10 tasks.
  304. func ExampleApplicationAutoScaling_RegisterScalableTarget_shared00() {
  305. svc := applicationautoscaling.New(session.New())
  306. input := &applicationautoscaling.RegisterScalableTargetInput{
  307. MaxCapacity: aws.Int64(10),
  308. MinCapacity: aws.Int64(1),
  309. ResourceId: aws.String("service/default/web-app"),
  310. RoleARN: aws.String("arn:aws:iam::012345678910:role/ApplicationAutoscalingECSRole"),
  311. ScalableDimension: aws.String("ecs:service:DesiredCount"),
  312. ServiceNamespace: aws.String("ecs"),
  313. }
  314. result, err := svc.RegisterScalableTarget(input)
  315. if err != nil {
  316. if aerr, ok := err.(awserr.Error); ok {
  317. switch aerr.Code() {
  318. case applicationautoscaling.ErrCodeValidationException:
  319. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  320. case applicationautoscaling.ErrCodeLimitExceededException:
  321. fmt.Println(applicationautoscaling.ErrCodeLimitExceededException, aerr.Error())
  322. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  323. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  324. case applicationautoscaling.ErrCodeInternalServiceException:
  325. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  326. default:
  327. fmt.Println(aerr.Error())
  328. }
  329. } else {
  330. // Print the error, cast err to awserr.Error to get the Code and
  331. // Message from an error.
  332. fmt.Println(err.Error())
  333. }
  334. return
  335. }
  336. fmt.Println(result)
  337. }
  338. // To register an EC2 Spot fleet as a scalable target
  339. //
  340. // This example registers a scalable target from an Amazon EC2 Spot fleet with a minimum
  341. // target capacity of 1 and a maximum of 10.
  342. func ExampleApplicationAutoScaling_RegisterScalableTarget_shared01() {
  343. svc := applicationautoscaling.New(session.New())
  344. input := &applicationautoscaling.RegisterScalableTargetInput{
  345. MaxCapacity: aws.Int64(10),
  346. MinCapacity: aws.Int64(1),
  347. ResourceId: aws.String("spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3"),
  348. RoleARN: aws.String("arn:aws:iam::012345678910:role/ApplicationAutoscalingSpotRole"),
  349. ScalableDimension: aws.String("ec2:spot-fleet-request:TargetCapacity"),
  350. ServiceNamespace: aws.String("ec2"),
  351. }
  352. result, err := svc.RegisterScalableTarget(input)
  353. if err != nil {
  354. if aerr, ok := err.(awserr.Error); ok {
  355. switch aerr.Code() {
  356. case applicationautoscaling.ErrCodeValidationException:
  357. fmt.Println(applicationautoscaling.ErrCodeValidationException, aerr.Error())
  358. case applicationautoscaling.ErrCodeLimitExceededException:
  359. fmt.Println(applicationautoscaling.ErrCodeLimitExceededException, aerr.Error())
  360. case applicationautoscaling.ErrCodeConcurrentUpdateException:
  361. fmt.Println(applicationautoscaling.ErrCodeConcurrentUpdateException, aerr.Error())
  362. case applicationautoscaling.ErrCodeInternalServiceException:
  363. fmt.Println(applicationautoscaling.ErrCodeInternalServiceException, aerr.Error())
  364. default:
  365. fmt.Println(aerr.Error())
  366. }
  367. } else {
  368. // Print the error, cast err to awserr.Error to get the Code and
  369. // Message from an error.
  370. fmt.Println(err.Error())
  371. }
  372. return
  373. }
  374. fmt.Println(result)
  375. }