函数计算,请教下,我使用s deploy 部署自定义容器的函数服务,现在报这个错误“Service role should not be empty, service role should have ACR AliyunContainerRegistryReadOnlyAccess/AliyunContainerRegistryFullAccess access when runtime is custom-container”,应该在哪里加权限?
解决此错误的步骤为:
创建一个自定义权限的RAM角色
例如:
角色名:AliyunFCReadOnlyRole
权限授权:
AliyunContainerRegistryReadOnlyAccess
指定该RAM角色为函数服务的服务角色
通过 -role AliyunFCReadOnlyRole 参数指定
重新部署函数服务
s deploy [-role AliyunFCReadOnlyRole]
具体操作步骤为:
登录RAM控制台
选择"用户和权限" - "RAM角色"
创建一个新的RAM角色,指定上述角色名和权限
回到函数计算控制台,编辑函数服务配置
在"高级配置"一栏下面,指定"服务角色"为您新创建的RAM角色
保存配置,重新部署函数服务(使用s)
s deploy 命令中使用-role参数指定服务角色
在使用 s deploy
部署自定义容器的函数服务时,如果出现错误提示 "Service role should not be empty, service role should have ACR AliyunContainerRegistryReadOnlyAccess/AliyunContainerRegistryFullAccess access when runtime is custom-container",说明在你的函数服务配置中没有指定服务角色,并且自定义容器运行时需要具有访问 Aliyun Container Registry (ACR) 的权限。
要解决这个问题,你需要在函数服务的配置文件中指定一个合适的服务角色,并为该服务角色授予访问 ACR 的权限。以下是一些步骤供你参考:
在你的函数服务配置文件(如 s.yaml
或 template.yml
)中找到服务角色字段。这个字段通常被称为 Role
、ServiceRole
或类似的名称。
如果这个字段为空或不存在,可以通过手动创建一个服务角色并将其指定给函数服务。你可以在阿里云 RAM(Resource Access Management)中创建一个服务角色。确保为这个服务角色添加至少 AliyunContainerRegistryReadOnlyAccess
或 AliyunContainerRegistryFullAccess
的权限,以满足访问 ACR 的要求。
将服务角色的 ARN(Amazon Resource Name)填写到函数服务的配置文件中相应的字段中。
保存并重新运行 s deploy
命令,以确保函数服务配置生效。
通过以上步骤,你应该能够为自定义容器的函数服务分配一个适当的服务角色,并为该角色添加访问 ACR 的权限,从而解决这个错误。
需要给服务配置服务角色 role ,给这个角色授权AliyunContainerRegistryFullAccess权限
https://docs.serverless-devs.com/fc/yaml/readme
此答案来自钉钉群“阿里函数计算官网客户"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。