我正在使用Autofixture作为SUT工厂,并且在冻结空实例时遇到困难.
我想做点什么:
_fixture.Freeze<IPayPalConfiguration>(c => null);
Run Code Online (Sandbox Code Playgroud)
但很快意识到这是错误的.我使用这个解决了这个问题:
_fixture.Inject((IMyInterface)null);
Run Code Online (Sandbox Code Playgroud)
但它似乎不对.
希望有人能为HiveMind贡献正确的解决方案.
我最近发现Powershell函数只是命名为scriptblocks.例如
function HelloWorld {
Write-Output "Hello world"
}
$hw = $function:HelloWorld
& $hw
Run Code Online (Sandbox Code Playgroud)
将执行HelloWorld方法.
但是,我无法弄清楚的是,如何获得对其名称中包含破折号的方法的引用:
function Hello-World {
Write-Output "Hello world"
}
$hw = $function:Hello-World
You must provide a value expression on the right-hand side of the '-' operator.
At line:1 char:27
+ $hw = $function:Hello- <<<< World
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我知道我可以这样做:
$hw = (Get-Item function:Hello-World).ScriptBlock
Run Code Online (Sandbox Code Playgroud)
但它有点"嘈杂",我喜欢$ function语法
有没有办法可以重新定义由模块导出并由另一个模块使用的函数?
鉴于以下文件夹结构:
C:.
? MyScript.ps1
?
????MyModules
????Deployment
? Deployment.psm1
?
????Logging
Logging.psm1
Run Code Online (Sandbox Code Playgroud)
以及每个文件的以下内容:
MyScript.ps1:
#Add MyModules to the module path
$cleanedModulePath = @()
$env:PSModulePath -split ";" | %{
if( !( $_ -Match "MyModules") ){
$cleanedModulePath += $_
}
}
$thisDir = (Split-Path -parent $script:MyInvocation.MyCommand.Definition)
$moduleDir = Join-Path $thisDir "MyModules"
$cleanedModulePath += $moduleDir
$env:PSModulePath = ($cleanedModulePath -Join ";")
Import-Module Deployment -DisableNameChecking
#Neither of these manage to redefine Log-Debug - even if put before the Import
function Log-Debug{}
Set-Item -Path function:Log-Debug …Run Code Online (Sandbox Code Playgroud) 我很难协调一些在线建议,即将秘密(通常是密码)作为环境变量注入 docker 容器与 AWS ECS 甚至 EKS 的本机功能“不安全”,其中存储在 AWS Secrets Manager 中的秘密作为环境提供变量。我想使用这些平台的原生特性,但似乎这不是一个好主意。
我真的很喜欢/run/secrets“原始”docker的原生方法 - 但该功能无法扩展到 SecretsManager+ECS。我认为管理秘密和向我的应用程序公开的唯一“安全”方式是编写直接查询 AWS Secrets Manager 的专用应用程序代码。这个结论正确吗?或者我可以信任这个平台吗?
参考:
和反驳:
我们今天的Azure应用程序正在经历非常严重的计划外停机,目前为期9小时.我们向Azure支持报告,操作团队正在积极尝试解决问题,我不怀疑.我们设法让我们的应用程序在我们拥有的另一个"测试"托管服务上运行,并重定向我们的CNAME指向实例,以便我们的客户满意,但"主要"托管服务仍然不可用.
我自己的"空中手指"本能是这个问题在我们的数据中心(西欧)中与网络相关,事实上,在服务仪表板为该区域发出红色的那一天晚些时候发出了相应的消息.(我们的应用程序在门户网站中显示为"健康",但是无法通过我们的cloudapp.net URL访问.此外,我们的应用程序中的线程将sql连接异常记录到我们的存储帐户中,因为它无法联系数据库)
但是,非常奇怪的是,我上面提到的"测试"实例也在同一个数据中心,并且没有问题联系数据库,它的外部端点是完全可用的.
我想问一下社区是否有什么我可以做得更好以避免这种停机时间?我遵守了关于每个角色至少有2个角色实例的指导,但我仍然被烧毁了.我应该转向更可靠的数据中心吗?我应该将应用程序部署到多个数据中心吗?我如何管理我的SQL-Azure数据库位于同一数据中心的事实?
任何建设性的指导都会受到赞赏 - 作为一名技术人员,我从来没有一个更令人沮丧的日子能够无所事事来帮助解决问题.