Лямбда-команда Ask-cli использует неверную настройку региона

Я пытаюсь настроить рабочий процесс через ask-cli для разработки навыков Amazon с помощью лямбда-сервера Amazon. Я создал навык, и он отлично работает при использовании команд "ask api...", но когда я использую команду "ask lambda...", например "ask lambda download -f MySkill", используется неправильный регион параметр. Я получаю сообщение об ошибке:

ResourceNotFoundException: Function not found: arn:aws:lambda:us-east-1:123456789:function:MySkill

Как видите, он ищет экземпляр лямбды в us-east-1. Но экземпляр My lambda находится в eu-west-1, как указано в моем файле skill.json ниже. Этот вопрос в значительной степени является дубликатом https://forums.developer.amazon.com/questions/87922/ask-cli-does-not-use-region-setting-from-aws-confi.html.. Ответ на этот вопрос подразумевает, что вы можете добавить поле региона где-нибудь в один из файлов json, но я не могу понять, где. Любая помощь будет оценена по достоинству.

Это мой ~/.ask/cli_config

{
  "profiles": {
    "default": {
      "aws_profile": "default",
      "token": {
        "access_token": "My_access_token",
        "refresh_token": "My_refresh_token",
        "token_type": "bearer",
        "expires_in": 3600,
        "expires_at": "2017-10-06T14:12:26.171Z"
      },
      "vendor_id": "My_vendor_id"
    }
  }
}

это мой ~/.aws/config

[default]
output = text
region = eu-west-1

Это мой skill.json, который я получаю, когда звоню: "ask api get-skill -s skill_id > skill.json"

{
  "skillManifest": {
    "publishingInformation": {
      "locales": {
        "en-GB": {
          "name": "My Skill"
        }
      },
      "isAvailableWorldwide": true,
      "category": "PUBLIC_TRANSPORTATION",
      "distributionCountries": []
    },
    "apis": {
      "custom": {
        "endpoint": {
          "uri": "arn:aws:lambda:eu-west-1:123456789:function:MySkill"
        },
        "interfaces": []
      }
    },
    "manifestVersion": "1.0"
  }
}

person MyrionSC2    schedule 09.10.2017    source источник
comment
Я нашел обходной путь для себя. Использование команды клонирования запроса для клонирования навыка также возвращает код экземпляра лямбда. Затем можно использовать ask deploy для развертывания изменений в лямбда-коде. Я все еще не могу использовать ask lambda... но, по крайней мере, я могу продолжить настройку рабочего процесса.   -  person MyrionSC2    schedule 09.10.2017
comment
Пожалуйста, обновите обходной путь, который вы нашли в разделе ответов, чтобы он был полезен для других, у которых возникла такая же проблема.   -  person Vijayanath Viswanathan    schedule 09.10.2017
comment
Однако на самом деле это не ответ, а просто обходной путь. Я и все, кто увидит это в будущем, до сих пор не могут использовать команды ask lambda....   -  person MyrionSC2    schedule 09.10.2017
comment
Хотел бы получить ответ на этот вопрос ... все, что я нашел в Интернете, - это просто люди с проблемами и без решений.   -  person Henry Wilson    schedule 21.11.2018


Ответы (2)


для меня это работает, если я редактирую следующий файл:

~/.aws/credentials (Linux, macOS или Unix)

C:\Users\USERNAME\.aws\credentials (Windows)

[ask_cli_default]
aws_access_key_id=YOUR_AWS_ACCESS_KEY
aws_secret_access_key=YOUR_AWS_SECRET_KEY
region=eu-west-1
person Manu Rauck    schedule 28.02.2019

Регион ОС, указанный в разделе lambda файла .ask/config. Пример:

        "lambda": [
          {
            "alexaUsage": [
              "custom/default"
            ],
            "arn": "arn:aws:lambda:eu-west-1:XXXXXXXXX:function:ask-premium-hello-world",
            "awsRegion": "eu-west-1",
            "codeUri": "lambda/custom",
            "functionName": "ask-premium-hello-world",
            "handler": "index.handler",
            "revisionId": "XXXXXXXXXXXXXXXXXX",
            "runtime": "nodejs8.10"
          }
        ]
person German    schedule 12.08.2019