¿Cómo puedo usar un runbook de SAW para solucionar problemas de mi nombre de dominio personalizado en API Gateway?

8 minutos de lectura
0

Quiero solucionar los problemas de mi configuración de nombres de dominio personalizados en Amazon API Gateway mediante el runbook AWS Support-TroubleshootApiGatewayCustomDomainConfig de AWS Support Automation Workflow (SAW).

Descripción breve

El runbook AWSSupport-TroubleshootAPIGatewayCustomDomainConfig proporciona una solución automatizada para verificar la configuración de su nombre de dominio personalizado en API Gateway. Este runbook verifica que el nombre de dominio personalizado esté configurado en API Gateway con las configuraciones correctas para el registro de DNS y las asignaciones de API.

Para obtener más información sobre SAW, consulte AWS Support Automation Workflows (SAW).

Resolución

El runbook de AWSSupport-TroubleshootApiGatewayCustomDomainConfig valida las siguientes características:

  • Si el nombre de dominio personalizado existe en API Gateway.
  • Si existen asignaciones entre el nombre de dominio personalizado y cualquier API.
  • Si la lista de asignaciones anterior contiene una asignación entre el nombre de dominio personalizado y las API especificadas.
  • Si existe un registro DNS para el nombre de dominio personalizado.
  • Si el registro DNS apunta al valor objetivo correcto generado por API Gateway durante la creación del nombre de dominio personalizado.

El usuario actual o el rol de servicio de AWS Identity and Access Management (IAM) asumido que ejecuta la automatización debe tener los siguientes permisos:

  • API Gateway: GET
  • iam: ListRoles
  • iam: PassRole
  • route53:ListResourceRecordSets
  • ssm:DescribeAutomationExecutions
  • ssm:GetAutomationExecution
  • ssm:DescribeAutomationStepExecutions
  • ssm:StartAutomationExecution
  • ssm:DescribeDocument
  • ssm:GetDocument
  • ssm:ListDocuments

Requisitos previos

Antes de ejecutar el runbook, asegúrese de que su usuario o rol de IAM tiene los permisos correctos. Estos permisos incluyen los permisos específicos de AWS Systems Manager y los permisos adicionales específicos de los servicios que se describen en las secciones anteriores de este artículo.

Ejecute la automatización AWSSupport-TroubleShootApiGatewayCustomDomainConfig

  1. Abra el runbook de AWSSupport-TroubleshootAPIGatewayCustomDomainConfig.
    Nota: El runbook se encuentra en la región de AWS us-east-1.

  2. Seleccione Ejecutar automatización.

    Para los parámetros de entrada, introduzca lo siguiente:

    • **AutomationAssumeRole (opcional):**El nombre de recurso de Amazon (ARN) del rol de IAM que permite a Automation, una función del administrador de sistemas, realizar las acciones en su nombre. Si no se especifica ningún rol, Automation usa los permisos del usuario que inicia el runbook.
    • **Nombre de dominio (obligatorio):**El nombre de dominio personalizado de su API.
    • **ApiId (obligatorio):**El ID de su API.
    • **DNSServerIP (opcional):**Un servidor DNS para resolver el nombre de dominio personalizado. Cuando no se especifica el valor, se utiliza el servidor DNS de AWS.
    • **HostedZoneId (opcional):**El ID de la zona alojada pública que contiene el registro DNS del nombre de dominio personalizado. Esto no es necesario cuando Route 53 no se usa para el DNS.
  3. Selecciona Ejecutar. Se inicia la automatización.

  4. Una vez finalizada la automatización, revise la sección Resultados para obtener resultados detallados.

    Si las comprobaciones del runbook se ejecutan correctamente, el resultado mostrará los detalles de configuración del nombre de dominio personalizado.

    Si la configuración del nombre de dominio personalizado no supera una de las comprobaciones del runbook, el runbook fallará en el paso correspondiente. Las recomendaciones para la solución de problemas están disponibles en la salida del manual de instrucciones.

Ejemplos de resultados para el runbook de AWSSupport-TroubleshootAPIGatewayCustomDomainConfig

Ejemplo de resultado para comprobaciones de configuración exitosas:

{
  "Result": "The custom domain name is configured correctly",
  "DomainDetails": {
    "DomainName": "<<CUSTOM DOMAIN NAME>>",
    "APIGatewayDomainName": "d-XXXXXXXX.execute-api.<<REGION>>.amazonaws.com",
    "Status": "XXXXXX",
    "EndpointType": "XXXXXX"
  },
  "MappingDetails": [
    {
      "API": "XXXXXX",
      "MappingId": "XXXXXX",
      "MappingKey": "XXXXXX",
      "Stage": "XXXXXX",
      "Status": "ApiHasMappings"
    }
  ],
  "DNSDetails": {
    "<<RECORD TYPE>>": [
      "XXX.XXX.XXX.XXX",
      "XXX.XXX.XXX.XXX",
      "XXX.XXX.XXX.XXX"
    ]
  }
}

Ejemplo de resultado para cuando el nombre de dominio personalizado no está en API Gateway:

" Check (1/5): Check custom domain name exists.
  Status: Failed.

  Troubleshooting Recommendations:
    - Custom domain name: <<CUSTOM DOMAIN NAME>> is not configured in API gateway.
    - Please see the link below for information on how to setup a custom domain for API Gateway:
      > https://aws.amazon.com/es/premiumsupport/knowledge-center/custom-domain-name-amazon-api-gateway/

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A mapping to the API you are trying to reach
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.

  Check (2/5): List mappings.
  Status: Skipped

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Skipped

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Skipped

  Check (5/5): Validate DNS record.
  Status: Skipped "

Ejemplo de resultado para cuando el nombre de dominio personalizado no tiene ninguna asignación:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Failed

  Troubleshooting Recommendations:
    - <<CUSTOM DOMAIN NAME>> does not contain any mappings.
    - Please see the documentation to create one here:
      > https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mappings.html

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A mapping to the API you are trying to reach
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Skipped

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Skipped

  Check (5/5): Validate DNS record.
  Status: Skipped "

Ejemplo de resultado para cuando el nombre de dominio personalizado no tiene ninguna asignación al ID de API especificado:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Complete

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Failed

    Troubleshooting Recommendations:
    - A base path mapping does not exist between API Id: <<API ID>> and custom domain name: <<CUSTOM DOMAIN NAME>>.
    - Please see the documentation to create one here:
      > https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mappings.html

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A mapping to the API you are trying to reach
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Not Run

  Check (5/5): Validate DNS record.
  Status: Skipped "

Ejemplo de resultado para cuando no hay ningún registro de DNS para el nombre de dominio personalizado:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Complete

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Complete

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Failed

  Troubleshooting Recommendations:
    - There is no DNS record for the custom domain name: <<CUSTOM DOMAIN NAME>> or the domain could not be resolved.
    - Please check your DNS server for a record for this domain and ensure it can be resolved.

    - The remaining checks have not been run at this point hence there may be other errors in the current configuration.
    - After resolving the error above, please check that your custom domain name has:
      > A DNS record pointing to the generated API Gateway domain name.

    - You can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details.


  Check (5/5): Validate DNS record.
  Status: Skipped "

Ejemplo de resultado para cuando el registro DNS no apunta al destino correcto:

" Check (1/5): Check custom domain name exists.
  Status: Complete

  Check (2/5): List mappings.
  Status: Complete

  Check (3/5): Check mapping exists to API Id: <<API ID>>.
  Status: Complete

  Check (4/5): Check DNS record exists for custom domain name.
  Status: Complete

  Check (5/5): Validate DNS record.
  Status: Failed

  Troubleshooting Recommendations:
    - The DNS record for the custom domain name: <<CUSTOM DOMAIN NAME>> may not be pointing to the correct target.
    - The API Gateway domain name generated for this custom domain name is: <<API GATEWAY DOMAIN NAME>> which should be the target of the DNS record created for the custom domain name.
    - Please check your DNS record for this domain and ensure it is pointing to the API Gateway domain name: <<API GATEWAY DOMAIN NAME>>.

    - After resolving the error above, you can run this automation again to confirm the changes have been made correctly.
    - More details for this particular error can be found within the individual step details."

**Nota:**Para ayudarlo a solucionar problemas, corregir, administrar y reducir los costes de sus recursos de AWS, AWS Support mantiene un subconjunto de los runbooks predefinidos que proporciona AWS. Los prefijos del runbook son AWSSupport- y AWSPremiumSupport-.

Información relacionada

Ejecute una automatización

Configuración de la automatización