Команда aws pinpoint update-apns-sandbox-channel приводит к отсутствию учетных данных - PullRequest
0 голосов
/ 15 февраля 2019

aws --version aws-cli/1.16.76 Python/2.7.10 Darwin/16.7.0 botocore/1.12.66

Я пытаюсь программно добавить канал APNS_SANDBOX в точное приложение.Я могу сделать это успешно с помощью консоли pinpoint, но не с помощью aws cli или лямбда-функции, которая является конечной целью.Изменения в наших средах Test / Prod могут быть сделаны только через CodePipeline, но для целей тестирования я пытаюсь добиться этого с помощью aws cli.

Я пробовал оба aws cli (используя учетные данные root)и лямбда-функция - оба приводят к следующей ошибке:

An error occurred (BadRequestException) when calling the UpdateApnsSandboxChannel operation: Missing credentials

Я попытался установить поле Сертификат в объекте json UpdateApnsSandboxChannel в качестве пути к файлу сертификата .p12 кака также с использованием строкового значения, полученного из инструмента openssl.

Сегодня я работал с кем-то из службы поддержки aws, и они не смогли выяснить проблему после попытки отладки в течение нескольких часов.Они сказали, что отправят электронное письмо команде, но у них не было ETA, когда они могли бы ответить.

Спасибо

1 Ответ

0 голосов
/ 15 февраля 2019

Я закончил тем, что получил это для успешной работы - вот почему это не удавалось:

Я первоначально делал вызов cli со следующим объектом запроса, поскольку это то, что включено в документацию:


aws pinpoint update-apns-sandbox-channel --application-id [physicalID]  --cli-input-json file:///path-to-requestObject.json
{
    "APNSSandboxChannelRequest": {
        "BundleId": "com.bundleId.value", 
        "Certificate":"P12_FILE_PATH_OR_CERT_AS_STRING", 
        "DefaultAuthenticationMethod": "CERTIFICATE", 
        "Enabled": true, 
        "PrivateKey":"PRIVATEKEY_FILE_PATH_OR_AS_STRING",
        "TeamId": "",
        "TokenKey": "",
        "TokenKeyId": ""
    }, 
    "ApplicationId": "Pinpoint_PhysicalId"
}

Еще поиграв с ним, я заставил его работать, удалив BundleId, TeamId, TokenKey и TokenKeyId.Я считаю, что эти поля необходимы при использовании сертификата p8.


{
    "APNSSandboxChannelRequest": {
        "Certificate":"P12_FILE_PATH_OR_CERT_AS_STRING", 
        "DefaultAuthenticationMethod": "CERTIFICATE", 
        "Enabled": true, 
        "PrivateKey":"PRIVATEKEY_FILE_PATH_OR_AS_STRING"      
    }, 
    "ApplicationId": "Pinpoint_PhysicalId"
}

...