Delphi Appercept AWS SDK - SNS 属性

问题描述 投票:0回答:1

尝试发布到具有一个或多个属性的 SNS 主题。 如果没有属性,一切都可以正常工作,但添加属性后,我们会收到带有错误请求的 400 响应。

我们尝试通过以下三种方式添加属性。

procedure TForm1.Button1Click(Sender: TObject);
var
  AWSOptions: IAWSOptions;
  SNS: ISNSClient;
  SNSRequest: ISNSPublishToTopicRequest;
  SNSResponse: ISNSPublishResponse;
  a: TSNSMessageAttributeValue;
begin

  AWSOptions := TAWSOptions.Create;
  with AWSOptions do
  begin
    Region := 'eu-west-1';
    AccessKeyId := '??????';
    SecretAccessKey := '??????';
  end;

  SNS := TSNSClient.Create(AWSOptions);
  SNSRequest := TSNSPublishToTopicRequest .Create(edt_ARN.Text, edt_Message.Text);


//  SNSRequest.MessageAttributes.AddString('test', 'testvalue');


//  SNSRequest.MessageAttributes.AddOrSetValue('test', TSNSMessageAttributeValue.Create('String', 'testvalue'));


//  a.Value := 'testvalue';
//  a.DataType := 'String';
//  SNSRequest.MessageAttributes.Add('test', a);



  SNSResponse := SNS.Publish(SNSRequest);

  ShowMessage(Format('Success: %s - Error: %s - Status: %d / %s - Message: %s' ,
                    [BoolToStr(SNSResponse.IsSuccessful),
                      BoolToStr(SNSResponse.IsError),
                      SNSResponse.StatusCode,
                      SNSResponse.StatusText,
                      SNSResponse.MessageId])
              );
end;

有人知道这里出了什么问题吗? 也想直接联系 appercept,但似乎联系不上。

amazon-web-services delphi amazon-sns
1个回答
0
投票

总结一下。使用的Appercept AWS SDK版本不是最新版本,该问题已在较新版本中修复。

提醒所有人,请始终确保您使用的是最新版本。

上例中,添加消息属性的正确方法是:

SNSRequest.MessageAttributes.AddString('test', 'testvalue');
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.