Oracle Cloud Infrastructureドキュメント

ファンクションを実行するコンテナに付与される権限

Oracle Functionsにデプロイしたファンクションが呼び出されると、コンテナ内で実行されます。 コンテナが実行できる操作は、コンテナの起動時に指定されたユーザーID (UID)およびグループID (GID)によって決まります。 UIDまたはGIDを指定しない場合、コンテナはルート・ユーザーとしてプロセスを実行し、すべてのデフォルト機能を有効にします。

コンテナを起動してファンクションを実行する場合、Oracle Functionsは常に、UIDが1000のfnというユーザーを指定し、グループ名fnをGIDが1000で指定します。 UID 1000およびGID 1000には権限が付与されないため、コンテナ(およびその内部で実行されるファンクション)では、Docker documentationにリストされるデフォルトのファンクションは取得されません。 また、コンテナは権限を取得できません。

そのため、次のようなファンクションは作成およびデプロイしないでください:

  • 使用できない機能によって異なります
  • 権限昇格(susudosetuidなど)に依存

独自のDockerfileを使用している場合は、次の行を含めます:

groupadd --gid 1000 fn && \
adduser --uid 1000 --gid fn fn

例えば:

FROM oraclelinux:7-slim

RUN  yum -y install oracle-release-el7 oracle-nodejs-release-el7 && \
     yum-config-manager --disable ol7_developer_EPEL && \
     yum -y install oracle-instantclient19.3-basiclite nodejs && \
     rm -rf /var/cache/yum && \
     groupadd --gid 1000 fn && \
     adduser --uid 1000 --gid fn fn

WORKDIR /function
ADD . /function/
RUN npm install

CMD exec node func.js