{"action":"created","issue":{"url":"https://api.github.com/repos/Neilpang/acme.sh/issues/1506","repository_url":"https://api.github.com/repos/Neilpang/acme.sh","labels_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/1506/labels{/name}","comments_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/1506/comments","events_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/1506/events","html_url":"https://github.com/Neilpang/acme.sh/issues/1506","id":312825994,"node_id":"MDU6SXNzdWUzMTI4MjU5OTQ=","number":1506,"title":"AWS Route53 rate exceeded on certificate renewal cron","user":{"login":"pietervogelaar","id":1067483,"node_id":"MDQ6VXNlcjEwNjc0ODM=","avatar_url":"https://avatars2.githubusercontent.com/u/1067483?v=4","gravatar_id":"","url":"https://api.github.com/users/pietervogelaar","html_url":"https://github.com/pietervogelaar","followers_url":"https://api.github.com/users/pietervogelaar/followers","following_url":"https://api.github.com/users/pietervogelaar/following{/other_user}","gists_url":"https://api.github.com/users/pietervogelaar/gists{/gist_id}","starred_url":"https://api.github.com/users/pietervogelaar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pietervogelaar/subscriptions","organizations_url":"https://api.github.com/users/pietervogelaar/orgs","repos_url":"https://api.github.com/users/pietervogelaar/repos","events_url":"https://api.github.com/users/pietervogelaar/events{/privacy}","received_events_url":"https://api.github.com/users/pietervogelaar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-04-10T08:42:58Z","updated_at":"2018-08-29T00:39:49Z","closed_at":null,"author_association":"NONE","body":"Sometimes when executing the certificate renewal cron command, we experience Route53 rate exceeded limits.\r\n```\r\n/root/.acme.sh/acme.sh --cron --home /root/.acme.sh\r\n```\r\n\r\n```\r\nResponse error:<?xml version=\"1.0\"?>\r\n<ErrorResponse xmlns=\"https://route53.amazonaws.com/doc/2013-04-01/\"><Error><Type>Sender</Type><Code>Throttling</Code><Message>Rate exceeded</Message></Error><RequestId>a3c61f46-3c84-11e8-8ee7-94mnbdhf</RequestId></ErrorResponse>\r\n```\r\n\r\nMore information: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html\r\n\r\nThis probably meant more than \"Five requests per second per AWS account\". I'm not sure what the proper fix is yet. Maybe sleep times somewhere? Does it ring a bell?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/Neilpang/acme.sh/issues/comments/416785244","html_url":"https://github.com/Neilpang/acme.sh/issues/1506#issuecomment-416785244","issue_url":"https://api.github.com/repos/Neilpang/acme.sh/issues/1506","id":416785244,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNjc4NTI0NA==","user":{"login":"ddarbyson","id":1116416,"node_id":"MDQ6VXNlcjExMTY0MTY=","avatar_url":"https://avatars3.githubusercontent.com/u/1116416?v=4","gravatar_id":"","url":"https://api.github.com/users/ddarbyson","html_url":"https://github.com/ddarbyson","followers_url":"https://api.github.com/users/ddarbyson/followers","following_url":"https://api.github.com/users/ddarbyson/following{/other_user}","gists_url":"https://api.github.com/users/ddarbyson/gists{/gist_id}","starred_url":"https://api.github.com/users/ddarbyson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddarbyson/subscriptions","organizations_url":"https://api.github.com/users/ddarbyson/orgs","repos_url":"https://api.github.com/users/ddarbyson/repos","events_url":"https://api.github.com/users/ddarbyson/events{/privacy}","received_events_url":"https://api.github.com/users/ddarbyson/received_events","type":"User","site_admin":false},"created_at":"2018-08-29T00:39:49Z","updated_at":"2018-08-29T00:39:49Z","author_association":"NONE","body":"Well, here's a hacky workround... \r\n\r\nAdd a pre-hook to create a delay between requests to AWS API\r\n\r\n```\r\n/root/.acme.sh/acme.sh --home /root/.acme.sh --cron --pre-hook /root/.acme.sh/acme-sleep.sh\r\n```\r\n\r\nHere's the contents of `acme-sleep.sh`\r\n```bash\r\n#!/bin/sh\r\nsleep 7\r\nexit\r\n```\r\n\r\n...the idea here was understood from https://github.com/appscode/go-dns/blob/master/aws/aws.go#L48 where \"Route 53 enforces an account-wide(!) 5req/s query limit.\"\r\n\r\nBy adding a delay between request to AWS API we are able to generate the certificates without any \"Throttling Rate Exceeded\" error messages. \r\n\r\nI suppose this better then not working at all!"}}
{"actor":{"display_login":"ddarbyson"}}