我正在尝试通过 CDK 部署在打字稿中实现的 lambda。
我能够成功部署 lambda,但是当我测试它时,出现以下错误:
{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'index'\nRequire stack:\n- /var/runtime/index.mjs",
"trace": [
"Runtime.ImportModuleError: Error: Cannot find module 'index'",
"Require stack:",
"- /var/runtime/index.mjs",
" at _loadUserApp (file:///var/runtime/index.mjs:996:17)",
" at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1031:21)",
" at async start (file:///var/runtime/index.mjs:1194:23)",
" at async file:///var/runtime/index.mjs:1200:1"
]
}
Run Code Online (Sandbox Code Playgroud)
lambda 在 CDK 中声明如下:
const postImages = new lambda.Function(scope, utils.prefixed('post_images'), {
runtime: lambda.Runtime.NODEJS_18_X,
handler: 'index.lambdaHandler',
code: lambda.Code.fromAsset('./sd_service/post_images')
})
Run Code Online (Sandbox Code Playgroud)
的内容./sd_service/post_images看起来像这样:
import { Context, APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda';
export …Run Code Online (Sandbox Code Playgroud) 我想用一个类方法实现一个协议,该方法将实现类的数组作为参数.例如这样的事情:
protocol MyProtocol {
static func foo(verticies: [Self]) -> Int
}
class MyClass : MyProtocol {
class func foo(verticies: [MyClass]) -> Int {
return 42
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我收到以下错误:
协议'MyProtocol'要求'foo()'不能被非最终'MyClass'类满足,因为它在非参数非结果类型中使用'Self'
但是如果我使用MyClass类型的对象而不是数组,这可以很好地工作:
protocol MyProtocol {
static func foo(verticies: Self) -> Int
}
class MyClass : MyProtocol {
class func foo(verticies: MyClass) -> Int {
return 42
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这不适用于数组类型,并且有正确的方法吗?
所以我想实现一个自定义控件作为UIViewRepresentable使用绑定正确处理焦点的控件@FocusState。
所以我希望能够像这样管理焦点:
struct MyControl: UIViewRepresentable { ... }
struct Container: View {
@FocusState var hasFocus: Bool = false
var body: some View {
VStack {
MyControl()
.focused($hasFocus)
Button("Focus my control") {
hasFocus = true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我必须实施什么才能MyControl让它正确响应焦点状态?是否有必须实施的协议或其他内容?
我正在尝试编写一个使用模拟JSON响应的单元测试.
基本上,我的意图是将json文件添加到/ res/raw,并使用我在应用程序中使用的相同方法访问它们:
InputStream jsonStream = context.getResources().openRawResource(R.raw.mock_json_response)
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到以下错误:
android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f060001
Run Code Online (Sandbox Code Playgroud)
我正在使用robolectric进行测试 - 我不确定这是否会改变外部文件的访问方式.
我已经尝试将JSON文件放在两者中/app/src/main/res,/app/src/test/res但似乎都不起作用.
是否可以通过这种方式访问测试中的资源?
我正在使用基于AWS示例代码的方法将文件上传到S3存储桶:
http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transfermanager.html
问题是,一旦上传这些文件,查看这些文件的默认权限仅授予S3存储桶的所有者,我希望它们是公开可用的.如何使用iOS SDK 2.0实现此目的?
我正在尝试实现一个textarea,它自动在React中插入紧密的parens,但每当我修改textarea的value属性时,光标会跳转到正在编辑的文本的末尾.
这是我的onChange函数:
//on change
function(event) {
var newText = event.target.value
var cursorPosition = getCursorPosition(event.target)
if(lastCharacterWasParen(newText, cursorPosition)){
newText = newText.slice(0, cursorPosition) + ')' + newText.slice(cursorPosition)
}
this.setProps({text: newText}})
}
Run Code Online (Sandbox Code Playgroud)
这成功插入了paren,但如何保留光标位置?
我有一个用例,其中创建一个类的两个实现非常有用:一个用于 iOS 7 及更低版本,另一个用于 8+。这似乎@available是我正在寻找的工具,但我不知道如何使它工作。
从文档看来,这应该是可能的:
@available(iOS 8.0, unavailable)
class MyCompatabilityClass : NSObject {
//iOS 7 implementation
}
@available(iOS 8.0, *)
class MyCompatabilityClass : ClassOnlyAvailableInIOS8 {
//iOS 8 implementation
}
Run Code Online (Sandbox Code Playgroud)
但是我Expected version number在@available(iOS 8.0, unavailable). iOS 版本高于指定版本的条件类工作正常,但如何指定仅在特定版本号以下编译的类?
我正在尝试部署S3支持的私有docker注册表,当我尝试启动注册表容器时出现错误.我的docker-compose.yml看起来像这样:
registry:
restart: always
image: registry:2
ports:
- 5000:5000
environment:
REGISTRY_STORAGE_S3_ACCESSKEY: myKey
REGISTRY_STORAGE_S3_SECRETKEY: mySecret
REGISTRY_STORAGE_S3_BUCKET: docker.registry.bucket
REGISTRY_STORAGE_S3_ROOTDIRECTORY: registry/data
volumes:
- /home/docker/certs:/certs
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时,sudo docker-compose up -d我收到此错误消息:
registry_1 | panic: multiple storage drivers specified in configuration or environment: s3, filesystem
Run Code Online (Sandbox Code Playgroud)
似乎我在我的环境中缺少明确选择s3的东西,但是从文档中不清楚如何做到这一点.
因此,我尝试在配备 M1 处理器的 Mac 上遵循 Vulkan 教程,但遇到了设备创建问题。
因此,根据教程,我设置设备启用的扩展,如下所示:
const std::vector<const char*> deviceExtensions = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME,
};
VkDeviceCreateInfo createInfo = {};
createInfo.enabledExtensionCount = static_cast<uint32_t>(deviceExtensions.size());
createInfo.ppEnabledExtensionNames = deviceExtensions.data();
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下验证错误:
验证层:验证错误:[VUID-VkDeviceCreateInfo-pProperties-04451]对象0:句柄= 0x11bd84d40,类型= VK_OBJECT_TYPE_PHYSICAL_DEVICE;| 消息 ID = 0x3a3b6ca0 | vkCreateDevice:必须启用 VK_KHR_portability_subset,因为物理设备 VkPhysicalDevice 0x11bd84d40[] 支持它 Vulkan 规范规定:如果 VK_KHR_portability_subset 扩展包含在 vkEnumerateDeviceExtensionProperties 的 pProperties 中,则 ppEnabledExtensionNames 必须包含“VK_KHR_portability_subset”( https://vulkan.lunarg.com/doc/查看/1.3.211.0/mac/1.3-extensions/vkspec.html#VUID-VkDeviceCreateInfo-pProperties-04451)
验证层: vkCreateDevice:尝试从 VkPhysicalDevice 创建 VkDevice,该 VkPhysicalDevice 来自可移植性驱动程序,但未设置 VkInstanceCreateInfo 标志中的 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR 位并启用 VK_KHR_portability_enumeration 扩展。在加载程序的未来版本中,将不会枚举此 VkPhysicalDevice。
所以我尝试添加VK_KHR_portability_subset第一个错误中提到的扩展名:
const std::vector<const char*> deviceExtensions = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME,
"VK_KHR_portability_subset",
}; …Run Code Online (Sandbox Code Playgroud) 我正在实现一个 proc 宏,并在另一个板条箱中进行测试。当我编译客户端包时,proc 宏的调用站点抛出错误:
error: proc macro panicked
--> foo/src/main.rs:17:1
Run Code Online (Sandbox Code Playgroud)
该错误发生在 proc 宏实现中。
这个错误不是很有帮助,因为它没有指出具体失败的地方。可以使用唯一的错误消息来找出它,但是作为跟踪的一部分,在 proc 宏实现中获得错误起源的确切文件和行号会简单得多。
有什么办法可以实现这一点吗?