NestJS AWS SQS:找不到元数据:<QueueName>

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

我正在尝试在我的项目中配置 @nestjs-sqs,但我正在获取

WARN [SqsService] No metadata found for: <QueueName>

我的模块是

Module({
  imports: [
    ConfigModule.forRoot( {} ),
    SqsModule.registerAsync( {
      imports: [ConfigModule],
      useFactory: async (configService: ConfigService) => {
        const queueUrl = configService.get<string>('QUEUE_URL');
        const region = configService.get<string>('REGION');
        return {
          consumers: [
            {
              name: "<QueueName>",
              queueUrl,
              region,
              sqs: new AWS.SQS( {
                credentials: new AWS.Credentials( {
                  accessKeyId: configService.get( "AWS_SQS_ACCESS_KEY_ID" ) || "",
                  secretAccessKey: configService.get( "AWS_SQS_SECRET_ACCESS_KEY" ) || "",
                } ),
                region: configService.get( "AWS_SQS_REGION" ),
              } )
            },
          ],
          producers: [
            {
              name: "<QueueName>",
              queueUrl,
              region,
              sqs: new AWS.SQS( {
                credentials: new AWS.Credentials( {
                  accessKeyId: configService.get( "AWS_SQS_ACCESS_KEY_ID" ) || "",
                  secretAccessKey: configService.get( "AWS_SQS_SECRET_ACCESS_KEY" ) || "",
                } ),
                region: configService.get( "AWS_SQS_REGION" ),
              } )
            },
          ],
        };
      },
      inject: [ConfigService],
    } ),
  ],

我正在通过如下

ProducerService
发送消息

@Injectable()
export class ProducerService {
  constructor( private readonly sqsService: SqsService, private configService: ConfigService ) {}

  private queueName = "<QueueName>";

  async sendMessage( body: unknown, groupId: string ) { ... }

我尝试将 SQS 配置(访问密钥、访问 ID)直接注入模块,但没有成功。此外,我还尝试删除访问密钥,但也没有用。

我期待使用

.env
文件变量异步注册 SQS 模块。

nestjs amazon-sqs aws-sqs-fifo
© www.soinside.com 2019 - 2024. All rights reserved.