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.

Crear cola en Azurite a través de script de PowerShell

Quiero tener un script para crear una cola en Azurite que se ejecute en un contenedor Docker. (Preferiblemente un script de PowerShell)

Mi docker-compose.yml:
aquí

Información de mi contenedor en ejecución:
aquí

No entiendo completamente cómo puedo lograr la creación de una cola. Aquí está la documentación oficial.
Y aquí está el código actual en mi script de PowerShell:

# $url = "https://127.0.0.1:10001/devstoreaccount1/newqueue";
$url = "https://0.0.0.0:10001/devstoreaccount1/newqueue";

# credenciales de cuenta predeterminadas
$auth = "SharedKey devstoreaccount1:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
$date = "Tue, 21 Dec 2021 23:39:12 GMT"

# encabezados requeridos
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add('Authorization',$auth)
$headers.Add('x-ms-date',$date)

Invoke-RestMethod -Method PUT -Uri $url -Headers $headers;

No puedo hacer que esto funcione ni con https://127.0.0.1:10001 ni con https://0.0.0.0:10001.
Estos son los errores correspondientes que obtengo al intentar uno u otro:
aquí
Obtengo el mismo primer error al intentar enviar una solicitud http también a http://127.0.0.1:10001. De todos modos, necesito usar https.

Por favor, ayúdame a enviar una solicitud adecuada a Azurite en ejecución en el contenedor para crear una cola.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear una cola en Azurite en ejecución en un contenedor de Docker utilizando PowerShell, prueba el siguiente código:

    $storageAccountName = "devstoreaccount1"
    $storageAccountKey = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
    $storageConnectionString = "DefaultEndpointsProtocol=https;AccountName=$storageAccountName;AccountKey=$storageAccountKey;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"
    
    $queueName = "newqueue"
    New-AzStorageQueue -Name $queueName -Context (New-AzStorageContext -ConnectionString $storageConnectionString)
    

    Explicación:

    • Primero, definimos el nombre y la clave de la cuenta de almacenamiento, y las utilizamos para construir una cadena de conexión con los puntos de conexión Blob y Queue. Ten en cuenta que aquí estamos utilizando la dirección IP 127.0.0.1, que corresponde a la interfaz de bucle local del contenedor; esto debería funcionar independientemente de la dirección IP de la máquina principal.
    • A continuación, especificamos el nombre de la cola que queremos crear.
    • Por último, utilizamos el cmdlet New-AzStorageQueue para crear la cola, pasando un objeto New-AzStorageContext con la cadena de conexión.

    Ten en cuenta que estamos utilizando el módulo Az para Azure PowerShell, que proporciona una interfaz fácil de usar para gestionar recursos en Azure y Azure Stack. Es posible que necesites instalar este módulo si aún no lo has hecho; puedes hacerlo ejecutando Install-Module -Name Az en una terminal de PowerShell.

Comments are closed.