aws --version
aws-cli/1.16.76 Python/2.7.10 Darwin/16.7.0 botocore/1.12.66
我正在尝试以编程方式将APNS_SANDBOX频道添加到精确的应用程序。我可以通过精确的控制台成功完成此操作,但不能使用aws cli或lambda函数作为最终目标。只能通过CodePipeline更改测试/产品环境,但是出于测试目的,我尝试使用aws cli来实现。
我尝试了aws cli(使用根凭据)和lambda函数-都导致以下错误:
An error occurred (BadRequestException) when calling the UpdateApnsSandboxChannel operation: Missing credentials
我尝试将UpdateApnsSandboxChannel json对象中的“证书”字段设置为.p12证书文件的路径,并尝试使用从openssl工具获取的字符串值。
今天,我与aws支持人员合作,在尝试调试几个小时后,他们无法解决问题。他们说,他们将向精确团队发送电子邮件,但他们尚无何时作出回应的预计到达时间。
谢谢
答案 0 :(得分:0)
我最终使它成功工作-这就是失败的原因:
我最初使用以下请求对象进行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"
}