AWS - получите ключ активации шлюза хранилища от Lambda - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь написать немного автоматизации, которая получит ключ активации от экземпляра и активирует шлюз хранения в AWS. Я писал это в AWS Lambda для Python 3.6, используя библиотеку «запросов» только для:

Your web browser must have JavaScript enabled

Ошибка, когда я делаю запрос на получение. Однако на их документы:

https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html#get-activation-key-cli

Они используют wget, чтобы сделать запрос к экземпляру и получить ответ с ключом активации. У Wget нет интерпретатора JavaScript, как это вообще работает?

Возможно ли это через прямой python, или я застрял с загрузкой толстого бинарного файла, такого как селен или фантомные файлы, распаковкой его в zip и загрузкой этого zip только для того, чтобы сделать веб-запрос с javascript в нем?

1 Ответ

0 голосов
/ 10 января 2019

Curl установлен на лямбдах. Я смог добиться этого с помощью curl.

def get_gateway_activation_key(event):
  print("Getting activation key...")
  fgs = event["ResourceProperties"]["FileGatewayOptions"]["FileGatewaySettings"]
  url = "redirect_url=$(curl -f -s -S -w '%%{redirect_url}' \"http://%s/?activationRegion=%s\")  && echo $redirect_url" % (fgs["InstanceIP"],fgs["GatewayRegion"])
  redirect_url = os.popen(url).read()
  if redirect_url == "" or redirect_url is None:
      raise Exception("No redirect url returned for ip: %s" % fgs["InstanceIP"])
  key = redirect_url.split("activationKey=")[1].split("&gateway")[0]
  if key is None or key is "":
      raise Exception("Unable to extract the key from the returned redirect url: %s" %redirect_url)
  print("Retrieved Activation Key: %s" % key)
  return key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...