es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bicep – Cómo inicializar los archivos de la aplicación de una función de Azure PowerShell (por ejemplo, requirements.psd1)?

Estamos usando Bicep para crear una aplicación de función de Azure que ejecuta una función de PowerShell. Esto funciona bien, excepto por un detalle.

Parte de la definición de la aplicación de función son los archivos de la aplicación que necesitamos inicializar al crearla, específicamente requirements.psd1, donde se enumeran los módulos requeridos:

introducir descripción de la imagen aquí

¿Se puede hacer esto en un archivo Bicep? Si es así, ¿cómo? Si no, ¿cuál es la forma recomendada de hacerlo?

(Estamos usando Azure CLI con Bicep (az bicep), por lo que una solución en ese contexto sería buena).

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible inicializar los archivos de la aplicación en un archivo Bicep.

    Primero, crea una variable que contenga el contenido del archivo requirements.psd1 como una cadena de texto:

    var contenidoArchivoRequisitos = 'Contenido del archivo de requisitos'
    

    Luego, define el recurso de la aplicación de Azure Function y utiliza la propiedad siteConfig para establecer las appSettings que incluyen el contenido del archivo requirements.psd1.

    recurso app 'Microsoft.Web/sites@2021-02-01' = {
      name: 'miFunctionApp'
      location: 'eastus'
      kind: 'functionapp'
      properties: {
        serverFarmId: '/suscripciones/{subscriptionId}/gruposDeRecursos/{resourceGroup}/proveedores/Microsoft.Web/planesDeServicio/{appServicePlanName}'
      }
      sku: {
        name: 'Y1'
        tier: 'Dynamic'
      }
      siteConfig: {
        appSettings: [
          {
            name: 'WEBSITE_RUN_FROM_PACKAGE',
            value: '1'
          },
          {
            name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING',
            value: ''
          },
          {
            name: 'WEBSITE_CONTENTSHARE',
            value: ''
          },
          {
            name: 'WEBSITE_DOTNET_ENABLE_HSTS',
            value: 'true'
          },
          {
            name: 'AzureFunctionsJobHost__Logging__Console__IsEnabled',
            value: 'true'
          },
          {
            name: 'AzureFunctionsJobHost__Logging__Console__LogLevel__Default',
            value: 'Information'
          },
          {
            name: 'requirements.psd1',
            value: '${contenidoArchivoRequisitos}'
          }
        ]
      }
    }
    

    En este ejemplo, la propiedad WEBSITE_RUN_FROM_PACKAGE se establece en 1 para habilitar la implementación desde paquete. Las propiedades WEBSITE_CONTENTAZUREFILECONNECTIONSTRING y WEBSITE_CONTENTSHARE no se especifican, por lo que la aplicación utilizará la cuenta de almacenamiento predeterminada proporcionada por Azure. Por último, se agrega el contenido del archivo requirements.psd1 a appSettings como una sustitución de variable ${contenidoArchivoRequisitos}.

    Si el archivo requirements.psd1 es grande, puede ser mejor almacenarlo en una cuenta de almacenamiento de blobs de Azure y cargarlo desde allí en lugar de utilizar una variable para reducir el tamaño del archivo Bicep.

Comments are closed.