Cómo usar Azure Pipelines con Apache Flink® en HDInsight en AKS
Nota:
Retiraremos Azure HDInsight en AKS el 31 de enero de 2025. Antes del 31 de enero de 2025, deberá migrar las cargas de trabajo a Microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo. Los clústeres restantes de la suscripción se detendrán y quitarán del host.
Solo el soporte técnico básico estará disponible hasta la fecha de retirada.
Importante
Esta funcionalidad actualmente está en su versión preliminar. En Términos de uso complementarios para las versiones preliminares de Microsoft Azure encontrará más términos legales que se aplican a las características de Azure que están en versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para más información sobre esta versión preliminar específica, consulte la Información de Azure HDInsight sobre la versión preliminar de AKS. Para plantear preguntas o sugerencias sobre la característica, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones en la Comunidad de Azure HDInsight.
En este artículo, aprenderá a usar Azure Pipelines con HDInsight en AKS para enviar trabajos de Flink con la API de REST del clúster. Le guiaremos a través del proceso mediante una canalización de YAML de ejemplo y un script de PowerShell, ambos de los cuales simplifican la automatización de las interacciones de la API REST.
Requisitos previos
Suscripción de Azure. Si no tiene una suscripción de Azure, cree una cuenta gratuita.
Una cuenta de GitHub en la que pueda crear un repositorio. cree una de forma gratuita.
Cree el directorio
.pipeline
y copie flink-azure-pipelines.yml y flink-job-azure-pipeline.ps1Organización de Azure DevOps. cree una de forma gratuita. Si el equipo ya tiene una, asegúrese de que es un administrador del proyecto de Azure DevOps que desea usar.
Tener capacidad para ejecutar canalizaciones en agentes hospedados por Microsoft. Para usar agentes hospedados por Microsoft, la organización de Azure DevOps debe tener acceso a trabajos paralelos hospedados por Microsoft. Puede comprar un trabajo paralelo o solicitar una concesión gratuita.
Un clúster de Flink. Si no tiene uno, cree un clúster de Flink en HDInsight en AKS.
Cree un directorio en la cuenta de almacenamiento del clúster para copiar el archivo JAR del trabajo. Debe configurar este directorio más adelante en la canalización de YAML para la ubicación del archivo JAR del trabajo (<JOB_JAR_STORAGE_PATH>).
Pasos para configurar la canalización
Creación de una entidad de servicio para Azure Pipelines
Cree una entidad de servicio de Microsoft Entra para acceder a Azure: conceda permisos para acceder a HDInsight en el clúster de AKS con el rol Colaborador y anote el valor de appId, la contraseña y el inquilino de la respuesta.
az ad sp create-for-rbac -n <service_principal_name> --role Contributor --scopes <Flink Cluster Resource ID>`
Ejemplo:
az ad sp create-for-rbac -n azure-flink-pipeline --role Contributor --scopes /subscriptions/abdc-1234-abcd-1234-abcd-1234/resourceGroups/myResourceGroupName/providers/Microsoft.HDInsight/clusterpools/hiloclusterpool/clusters/flinkcluster`
Referencia
Nota:
Apache, Apache Flink, Flink y los nombres de proyecto de código abierto asociados son marcas comerciales de Apache Software Foundation (ASF).
Creación de un Almacén de claves
Cree una instancia de Azure Key Vault; puede seguir este tutorial para crear una instancia de Azure Key Vault.
Crear tres secretos
cluster-storage-key para la clave de almacenamiento.
service-principal-key para el valor de clientId o appId de la entidad de seguridad.
service-principal-secret para el secreto de la entidad de seguridad.
Conceda permiso para acceder a Azure Key Vault con el rol "Administrador de secretos de Key Vault" a la entidad de servicio.
Configuración de la canalización
Vaya al proyecto y haga clic en Configuración del proyecto.
Desplácese hacia abajo y seleccione Conexiones de servicio y, a continuación, Nueva conexión de servicio.
Seleccione Azure Resource Manager.
En el método de autenticación, seleccione Entidad de servicio (manual).
Edite las propiedades de la conexión de servicio. Seleccione la entidad de servicio que creó recientemente.
Haga clic en Comprobar para comprobar si la conexión se configuró correctamente. Si se produce el siguiente error:
Debe asignar el rol Lector a la suscripción.
Después de este paso, la comprobación debería ser correcta.
Guardar la conexión del servicio.
Vaya a Canalizaciones y haga clic en Nueva canalización.
Seleccione GitHub como ubicación del código.
Seleccione el repositorio . Consulte cómo crear un repositorio en GitHub. Imagen select-github-repo.
Seleccione el repositorio . Para obtener más información, consulte Creación de un repositorio en GitHub.
En la opción Configure su canalización, seleccione Archivo YAML de Azure Pipelines existente. Seleccione la rama y el script de canalización que copió anteriormente. (.pipeline/flink-azure-pipelines.yml)
Reemplace el valor en la sección de variables.
Corrija la sección de compilación de código en función de sus necesidades y configure <JOB_JAR_LOCAL_PATH> en la sección de variables para la ruta de acceso local del archivo JAR del trabajo.
Agregue la variable de canalización "action" y configure el valor "RUN".
Puede cambiar los valores de la variable antes de ejecutar la canalización.
NEW: este valor es el predeterminado. Inicia un nuevo trabajo y, si el trabajo ya se está ejecutando, actualiza el trabajo en ejecución con el archivo JAR más reciente.
SAVEPOINT: este valor toma el punto de guardado del trabajo en ejecución.
DELETE: cancela o elimina el trabajo en ejecución.
Guarde y ejecute la canalización. Puede ver el trabajo en ejecución en el portal en la sección Trabajo de Flink.
Nota:
Este es un ejemplo para enviar el trabajo mediante la canalización. Puede seguir la documentación de la API REST de Flink para escribir su propio código para enviar el trabajo.