Команда aws pinpoint update-apns-sandbox-channel приводит к отсутствию учетных данных

aws --versionaws-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

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

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

Спасибо

1 ответ

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

Первоначально я делал вызов 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"
}

Другие вопросы по тегам