Tutorial: Crear una canalización que implemente una habilidad de Amazon Alexa - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Crear una canalización que implemente una habilidad de Amazon Alexa

En este tutorial, puede configurar una canalización que enviará constantemente la habilidad de Alexa mediante Alexa Skills Kit como proveedor de implementación en la etapa de implementación. La canalización completa detecta cambios en la habilidad cuando se realiza un cambio en los archivos de código fuente en el repositorio de código fuente. Esto hace que la canalización utilice Alexa Skills Kit para realizar la implementación en la etapa de desarrollo de la habilidad de Alexa.

importante

Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente CodePipeline para los artefactos. (Es diferente del depósito que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la cuenta de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca Cuentas de AWS a una persona segura y fiable.

nota

Esta característica no está disponible en las regiones de Asia Pacífico (Hong Kong) ni Europa (Milán). Para utilizar otras acciones de implementación disponibles en esa región, consulte Integraciones de acciones de implementación.

Para crear una habilidad personalizada como una función Lambda, consulte Hospedar una habilidad personalizada como una función Lambda AWS. También puede crear una canalización que utilice archivos fuente de Lambda y un CodeBuild proyecto para implementar cambios en Lambda según sus habilidades. Por ejemplo, para crear una nueva habilidad y la función de Lambda relacionada, puede crear un proyecto de AWS CodeStar . Consulte Crear un proyecto de una habilidad de Alexa en AWS CodeStar Para esa opción, la canalización incluye una tercera etapa de creación con una CodeBuild acción y una acción en la etapa de implementación. AWS CloudFormation

Requisitos previos

Debe disponer de lo siguiente:

Paso 1: Crea un perfil de LWA seguridad de los servicios para desarrolladores de Alexa

En esta sección, crearás un perfil de seguridad para usarlo con Login with Amazon (LWA). Si ya tiene un perfil, puede omitir este paso.

  • Sigue los pasos que se indican generate-lwa-tokensa continuación para crear un perfil de seguridad.

  • Después de crear el perfil, anote el Client ID (ID de cliente) y el Client Secret (Secreto de cliente).

  • Asegúrese de introducir la devolución permitida tal y URLs como se indica en las instrucciones. El ASK CLI comando URLs allow the redirija las solicitudes de token de actualización.

Paso 2: Crea los archivos fuente de habilidades de Alexa y envíalos a tu CodeCommit repositorio

En esta sección, debe crear y enviar los archivos de código fuente de la habilidad de Alexa al repositorio que utiliza la canalización para la etapa de código fuente. Para la habilidad que ha creado en la consola para desarrolladores de Amazon, debe crear y enviar lo siguiente:

  • Un archivo skill.json

  • Una carpeta interactionModel/custom

    nota

    Esta estructura de directorios cumple con los requisitos de formato del paquete de habilidades de Alexa Skills Kit, tal y como se describe en Skill package format. Si la estructura de directorios no utiliza el formato de paquete de habilidades correcto, los cambios no se implementan correctamente en la consola de Alexa Skills Kit.

Para crear los archivos de código fuente de la habilidad
  1. Recupere el ID de habilidad de la consola para desarrolladores de Alexa Skills Kit. Utilice este comando:

    ask api list-skills

    Localice la habilidad por su nombre y a continuación, copie el ID asociado en el campo skillId.

  2. Genere un archivo skill.json que contenga los detalles de la habilidad. Utilice este comando:

    ask api get-skill -s skill-ID > skill.json
  3. (Opcional) Cree una carpeta interactionModel/custom.

    Utilice este comando para generar el archivo del modelo de interacción en la carpeta. Para la configuración regional, este tutorial utiliza en-US como configuración regional del nombre de archivo.

    ask api get-model --skill-id skill-ID --locale locale > ./interactionModel/custom/locale.json
Para enviar archivos a tu CodeCommit repositorio
  1. Envía o sube los archivos a tu CodeCommit repositorio. Estos archivos son el artefacto de código fuente creado por el asistente Create Pipeline (Crear canalización) para la acción de implementación en AWS CodePipeline. Sus archivos deberían ser parecidos a estos en su directorio local:

    skill.json /interactionModel /custom |en-US.json
  2. Elija el método que desea usar para cargar los archivos:

    1. Para utilizar la línea de comandos de Git desde un repositorio clonado en el equipo local:

      1. Ejecute el siguiente comando para preparar todos los archivos de una vez:

        git add -A
      2. Ejecute el siguiente comando para confirmar los archivos con un mensaje de confirmación:

        git commit -m "Added Alexa skill files"
      3. Ejecuta el siguiente comando para enviar los archivos de tu repositorio local a tu CodeCommit repositorio:

        git push
    2. Para usar la CodeCommit consola para cargar tus archivos:

      1. Abre la CodeCommit consola y elige tu repositorio en la lista de repositorios.

      2. Elija Add file (Añadir archivo) y, a continuación, Upload file (Cargar archivo).

      3. Elija Choose file (Elegir archivo) y luego busque el archivo. Para confirmar el cambio, introduzca su nombre de usuario y la dirección de correo electrónico. Seleccione Confirmar cambios.

      4. Repita este paso para cada archivo que desee cargar.

Paso 3: Usa ASK CLI comandos para crear un token de actualización

CodePipeline utiliza un token de actualización basado en el ID de cliente y el secreto de tu cuenta de desarrollador de Amazon para autorizar las acciones que realiza en tu nombre. En esta sección, utilizarás el ASK CLI para crear el token. Estas credenciales se utilizan al usar el asistente Create Pipeline (Crear canalización).

Para crear un token de actualización con las credenciales de una cuenta de desarrollador de Amazon
  1. Utilice el siguiente comando:

    ask util generate-lwa-tokens
  2. Cuando se le solicite, introduzca el ID y el secreto del cliente, tal y como se muestra en este ejemplo:

    ? Please type in the client ID: amzn1.application-client.example112233445566 ? Please type in the client secret: example112233445566
  3. El navegador muestra la página de inicio de sesión. Inicie sesión con las credenciales de su cuenta de desarrollador de Amazon.

  4. Vuelva a la pantalla de la línea de comandos. El token de acceso y el token de actualización se generan en la salida. Copie el token de actualización que se devuelven en la salida.

Paso 4: Crear la canalización

En esta sección, debe crear una canalización con las siguientes acciones:

  • Una etapa de origen con una CodeCommit acción en la que los artefactos de origen son los archivos de habilidades de Alexa que respaldan tu habilidad.

  • Una etapa de implementación con una acción de implementación de Alexa Skills Kit.

Para crear una canalización con el asistente
  1. Inicia sesión en la CodePipeline consola AWS Management Console y ábrela en http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Elija la AWS región en la que desea crear el proyecto y sus recursos. El tiempo de ejecución de la habilidad de Alexa está disponible solo en las siguientes regiones:

    • Asia-Pacífico (Tokio)

    • Europe (Irlanda)

    • Este de EE. UU. (Norte de Virginia)

    • Oeste de EE. UU. (Oregón)

  3. En la página Bienvenido, Introducción o Canalizaciones, elija Crear canalización.

  4. En Step 1: Choose pipeline settings (Paso 1: Elegir configuración de canalización), en Pipeline name (Nombre de canalización), escriba MyAlexaPipeline.

  5. En Tipo de canalización, elija V2. Para obtener más información, consulte Tipos de canalización. Elija Next (Siguiente).

  6. En Función de servicio, elija Nueva función de servicio CodePipeline para permitir la creación de una función de servicio en ellaIAM.

  7. En Advanced settings (Configuración avanzada), deje los valores predeterminados y elija Next (Siguiente).

  8. En el Step 2: Add source stage (Paso 2: Añadir etapa de código fuente), en Source provider (Proveedor de código fuente), elija AWS CodeCommit. En Nombre del repositorio, elija el nombre del CodeCommit repositorio en el que lo creóPaso 1: Crear un CodeCommit repositorio. En Nombre de ramificación, elija el nombre de la ramificación que incluye la última actualización del código.

    Tras seleccionar el nombre y la sucursal del repositorio, aparecerá un mensaje con la regla de Amazon CloudWatch Events que se va a crear para esta canalización.

    Elija Next (Siguiente).

  9. En Step 3: Add build stage (Paso 3: Añadir etapa de compilación), elija Skip build stage (Omitir etapa de compilación) y, a continuación, acepte el mensaje de advertencia eligiendo Skip (Omitir) una vez más.

    Elija Next (Siguiente).

  10. En Step 4: Add deploy stage (Paso 4: Añadir una etapa de implementación):

    1. En Deploy provider (Proveedor de implementación), elija Alexa Skills Kit.

    2. En Alexa skill ID (ID de habilidad de Alexa), especifique el ID de habilidad asignado a la habilidad en la consola para desarrolladores de Alexa Skills Kit.

    3. En Client ID (ID de cliente), especifique el ID de la aplicación que ha registrado.

    4. En Client secret (Secreto de cliente), especifique el secreto de cliente que eligió cuando se registró.

    5. En Refresh token (Token de actualización), especifique el token que ha generado en el paso 3.

      La página Paso 4: Implementación para una acción de Alexa Skills Kit
    6. Elija Next (Siguiente).

  11. En Step 5: Review, revise la información y después elija Create pipeline.

Paso 5: Realizar un cambio en cualquier archivo de origen y verificar la implementación

Realice un cambio en la habilidad y, a continuación, envíe ese cambio al repositorio. Esto desencadena la ejecución de la canalización. Compruebe que la habilidad se actualiza en la consola para desarrolladores de Alexa Skills Kit.