microsoft management powershell azure ftp azure-web-sites azure-powershell

powershell - management - panel azure login



Crear un sitio web de Azure con PowerShell y FTP (1)

Parece que ahora puede acceder a la huella digital del certificado usando

$thumbprint = $s.DefaultAccount

en lugar de

#$thumbprint = $s.Certificate.Thumbprint

Parece que la DefaultAccount tiene exactamente el mismo valor que la huella digital del certificado.

Solo como referencia aquí está mi script completo para obtener un perfil de publicación para un sitio web dado:

Function get-AzureWebSitePublishXml { Param( [Parameter(Mandatory = $true)] [String]$WebsiteName ) # Get the current subscription $s = Get-AzureSubscription -Current if (!$s) {throw "Cannot get Windows Azure subscription."} #$thumbprint = $s.Certificate.Thumbprint #this code doesn''t work anymore $thumbprint = $s.DefaultAccount if (!$thumbprint) { throw "Cannot get subscription cert thumbprint."} # Get the certificate of the current subscription from your local cert store $cert = Get-ChildItem Cert:/CurrentUser/My/$thumbprint if (!$cert) {throw "Cannot find subscription cert in Cert: drive."} $website = Get-AzureWebsite -Name $WebsiteName if (!$website) {throw "Cannot get Windows Azure website: $WebsiteName."} # Compose the REST API URI from which you will get the publish settings info $uri = "https://management.core.windows.net:8443/{0}/services/WebSpaces/{1}/sites/{2}/publishxml" -f ` $s.SubscriptionId, $website.WebSpace, $Website.Name # Get the publish settings info from the REST API $publishSettings = Invoke-RestMethod -Uri $uri -Certificate $cert -Headers @{"x-ms-version" = "2013-06-01"} if (!$publishSettings) {throw "Cannot get Windows Azure website publishSettings."} return $publishSettings }

NOTA: esto solo funciona cuando se ha conectado a azul mediante Import-AzurePublishSettingsFile

¿Alguien puede confirmar que es seguro usar la propiedad DefaultAccount ?

ACTUALIZAR

Si usa Kudu API para cargar su sitio, así , no necesita ningún certificado o perfil de publicación. Debe leer el nombre de usuario y la contraseña utilizando Get-AzureWebsite y el nombre de host es simplemente yourwebsitename.scm.azurewebsites.net (observe el segmento scm). Sugiero usar Kudu porque es mucho más confiable y rápido.

Necesito escribir un script de PowerShell que cree automáticamente un sitio web de Azure y despliegue el contenido de un sistema de archivos local. Parece que Azure PowerShell SDK no proporciona una forma de copiar archivos a un sitio web, por lo que queremos utilizar FTP como método de implementación.

Para obtener las credenciales y puntos finales de FTP correctos, la única forma que he encontrado es llamar a una API de Azure Management Rest: Obtener el perfil de publicación de un sitio .

Pero esta API como otra API de administración de Azure requiere un certificado. He encontrado el siguiente tutorial Creación de aplicaciones en la nube en el mundo real con Windows Azure que explican cómo obtener el certificado:

$s = Get-AzureSubscription -Current $thumbprint = $s.Certificate.Thumbprint

Desafortunadamente parece que con el SDK actual $s.Certificate es siempre nulo, esta propiedad no existe. Si configuro manualmente la huella digital del certificado, todo funciona como se espera.

¿Tiene alguna idea sobre cómo obtener el certificado de suscripción correcto? ¿O tiene una alternativa fácil para implementar archivos locales en un sitio web de Azure?