

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 MQ 上的 RabbitMQ：HTTP ARN 无效
<a name="troubleshooting-action-required-codes-invalid-arn-http"></a>

 当 HTTP auth\_backend 的一个或多个 SSL 证书或 HTTP auth\_backend 密钥文件的 ARN 无效或无法访问时，亚马逊 MQ 上的 RabbitMQ 将引发一个 INVALID\_ARN\_HTTP 关键操作必需代码。这适用于`aws.arns.auth_http.ssl_options.certfile`或中指定的 ARNS `aws.arns.auth_http.ssl_options.cacertfile``aws.arns.auth_http.ssl_options.keyfile`，它必须引用包含证书和私钥的 Amazon S3 对象和 AWS Secrets Manager 机密。

 RABBITMQ\_INVALID\_ARN\_HTTP 隔离区中的代理无法通过 HTTP 服务器进行身份验证。如果 HTTP 是唯一配置的身份验证方法，则用户将无法连接到代理。ARN 无效可能是由格式错误的 ARN 语法、对不存在的密钥的引用、机密位于与代理不同的 AWS 区域或 IAM 角色中的 s3: GetObject/secretsmanager:GetSecretValue 权限不足造成的。

## 诊断和解决 RABBITMQ\_INVALID\_ARN\_HTTP
<a name="w2aac40c33b7"></a>

 要诊断和解决 RABBITMQ\_INVALID\_ARN\_HTTP 操作所需的代码，您必须使用亚马逊日志和控制台。 CloudWatch 

**解决无效的 HTTP ARN 问题**

1. 导航至 Amazon CloudWatch Logs Insights，然后对您的经纪人的日志组运行以下查询`/aws/amazonmq/broker/<broker-id>/general`：

   ```
   fields @timestamp, @message
   | sort @timestamp desc
   | filter @message like /error.*aws_arn_config/
   | limit 10000
   ```

1. 查找类似于以下内容的错误消息：

   ```
   [error] <0.209.0> aws_arn_config: {<<"could not resolve ARN 'arn:aws:s3:::xxxx' for configuration 'aws.arns.auth_http.ssl_options.certfile', error: \"AWS service is unavailable\"">>,{error,"AWS service is unavailable"}}
   ```

1. 检查 S3 Object/Secrets 管理器密钥并修复所有问题，例如：
   + 验证资源是否与代理位于同一 AWS 区域
   + 确认 ARN 语法正确
   + 确保 IAM 角色具有 s3: GetObject 和 secretsmanager: 权限 GetSecretValue 

1. 更新代理配置并重启代理。