0

次のコードを使用して、Azure コンテナー インスタンスを使用して owasp zap インスタンスを作成しようとしています。

$containerGroupName = "EW-owaspzap"
$containerDnsName = "EW-owaspzap"
$imageName = "owasp/zap2docker-stable"
$myIpAddress = (Invoke-WebRequest ifconfig.me/ip).Content.Trim()
$environmentVars = @{"api.key"="myreallysecureapikey";"api.addrs.addr.name"=$myIpAddress}
$containerGroup = Get-AzureRmContainerGroup -ResourceGroupName $resourceGroupName -Name $containerGroupName -ErrorAction SilentlyContinue
if (!$containerGroup) {
    New-AzureRmContainerGroup -ResourceGroupName $resourceGroupName -Name $containerGroupName -Image $imageName -Command zap-webswing.sh -Port 8080,8090 `
         -IpAddressType Public -DnsNameLabel $containerDnsName -RestartPolicy OnFailure -Location WestEurope -AzureFileVolumeShareName $storageShareName `
        -AzureFileVolumeMountPath '/output' -AzureFileVolumeAccountCredential $storageCredentials -EnvironmentVariable $environmentVars
     }

ただし、次のエラーが表示されます。

コンテナー グループ 'EW-owaspzap' のコンテナー 'EW-owaspzap' の環境変数名が無効です。有効な環境変数名は、英字または ' ' で始まり、その後に英数字または ' ' の文字列が続く必要があります (例: 'my_name'、'MY_NAME'、または 'MyName')。

このhttps://github.com/zaproxy/zaproxy/wiki/Dockerによると、環境変数の形式は正しいです。他に見逃したものはありますか?

4

3 に答える 3

1

これは ACI の制限です。環境変数の名前付けの制限については、こちらを参照してください。

| | 環境変数 | 1-63 |大文字と小文字を区別しない |最初または最後の文字を除くすべての英数字およびアンダースコア (_)

これは Zap の問題ではなく、ACI の問題です。これは、環境変数を Azure 形式で取得し、それらを Zap の形式 (例: api_keyto api.key) に変換するスクリプトで解決できます。これは疑似コードです (私はテストしていません)。

export set api.key=$API_KEY
./zap 

Zap の公式イメージに基づいて新しい docker イメージを作成し、スクリプトをコピーして、通常の Zap のコマンドの代わりにそれを使用して Zap を起動します。

于 2018-09-04T16:20:18.880 に答える